[php] pb authentification

Fermé
kacxial Messages postés 16 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 25 janvier 2010 - 19 mars 2006 à 12:36
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 - 24 mars 2006 à 17:37
Bonjour a tous,

Voila je débute dans la programmatin php, html et dans le domaine de la base de donnée MySQL.

je cherche a faire une page (en php) d'authentification. j'ai créer une base de donnée sur MySQL 1.8 (windows) et j'ai créer une table avec 3 champs(1=ID, 2=pass et 3=pseudo) et j'ai rempli le pass et le pseudo.

Est ce que déja ce que j'ai fait c correct?

ensuite voila mon code php mais ca ne marche pas, merci de me corriger, toutes les remarques sont bonnes a prendre pour moi, merci:

une page login:
--------------------------------------------------------------------
<?php
ECHO "Identification\n<br>";
?>

<HTML>

<HEAD>

</HEAD>

<BODY>

<FORM name="login" method="post"action="validation.php">

username:<INPUT type="text" name="user_name"><BR>

password:<INPUT type="password" name="password"><BR>

<INPUT type="submit" value="submit">

</FORM>

</HTML>
-----------------------------------------------------

et une page validation:
--------------------------------------------------
<?php


$db_host="127.0.0.1";
$db_user="root";
$db_pass="";
$database="bddmax";

mysql_connect($db_host,$db_user,$db_pass) or die("Impossible de se connecter à la base de donnée.");
mysql_select_db($database) or die("Impossible de selectionner la base de donnée. La base de donnée n'existe pas... ");

// jusque la ca marche!
//mais la prochaine ligne ne marche pas, y a til une erreur de syntaxe? :

$query = "SELECT * FROM membre WHERE pseudo='$user_name' AND pass='$password'";

$result=mysql_query($query) or die('error making query');


$affected_rows=mysql_num_rows($result);

if($affected_rows ==1){

print 'VALIDE';

//ajoute lutilisateur à une variable de session
$_SESSION['usernamAd']='$user_name';
}
else {
print 'PAS VALIDE';
}

?>
-------------------

Voila, j'espere que vous pouvez maider... je débute dans ce language, et je galere un peu pour les requetes, tou ca...

Merci a vous

kacxial
A voir également:

1 réponse

darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
24 mars 2006 à 17:37
Salut,

Tu veux des remarques alors en voila ;)

En 1er, il faut éviter d'écrire quelque chose avant la balise <HTML>.
Je veux parler du :
ECHO "Identification
<br>";

Et puis vu qu'il n'y à rien de dynamique, tu peux l'écrire directement en HTML
<HTML>
<HEAD><TITLE>Identification</TITLE>
</HEAD>
<BODY>
Identification<br>
<FORM name="login" method="post"action="validation.php">
username:<INPUT type="text" name="user_name"><BR>
password:<INPUT type="password" name="password"><BR>
<INPUT type="submit" value="submit">
</FORM>
</HTML> 


Cependant, cela ne change rien au niveau du fonctionnement.

En 2e:
Je pense que le problème vient du fait que tu utilises des variables $user_name et $password alors qu'elles n'existent pas.
Depuis un bon moment, PHP ne permet pas d'appeler directement les champs d'un formulaire comme ça (pour des raisons de sécurié).

Il faut rajouter ceci au desssus de ta requête:

$user_name = $_POST['user_name'];
$password = $_POST['password'];


$_POST est une variable globale dans laquelle PHP met les valeurs du formulaire (avec method="post").

Tu peux vérifier si la requête SQL est correcte en ajoutant la commande suiavnte le tps des tests :
echo  $query;


Pour le moment, je n'ai que ça à dire en espérant que ça marchera.

a+
0