Page 1 sur 1

requete sql via php

Posté : 31 mars 2010, 04:34
par manuchao
bonjours a tous !

voila je suis entrain de bossé sur une application php / mysql ! j'ai un bon niveau d'sql mais je débute avec php ! ! et la je galère avec une page d'authentification dont voici le code :
<?php
$login = $_POST['login'];
$pass = $_POST['pass'];

$db = mysql_connect('localhost', 'root', '');

mysql_select_db('rh',$db);

$sql = "SELECT pass, login FROM employe WHERE departement= 'Administration' ";


$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

mysql_close(); 

while($data = mysql_fetch_assoc($req))
{

   if($login == $dataset['login'] && $pass == $dataset['pass']){ 
    
   header("Location:../admin/index_admin.php" );
   } 

   else {
	   echo "Mauvaise identification";
	   
	   }
	   }

?> 
a chaque fois quand je rentre des valeurs dans mon formulaire je reçoit toujours la redirection !! pas d'erreur ! donc je crois que c'est un problème de condition j'ai essayé de réglé le problème mais j y arrive pas :(

Merci d'avance pour votre aide !!
++

Re: requete sql via php

Posté : 31 mars 2010, 08:19
par Patriboom
Puisque $dataset n'est pas défini, c'est bien sûr que ses déclinaisons seront == '' (rien)
En chargeant la page directement, sans parvenir d'un formulaire POST, toutes les déclinaisons de $_POST seront aussi == '' (rien)

Il n'y a rien d'étonnant que tu obtiennes une redirection à tous coups, puisque (rien) == (rien)

Re: requete sql via php

Posté : 31 mars 2010, 14:05
par manuchao
merci pour ta reponse patriboom !

j'ai essayé de définir dataset en ajoutant cette ligne :
 $dataset = mysql_query($sql); 
mais rien encore maintenant c'est le contraire j'ai que la page erreur qui s'affiche :(

merci pour votre aide !

Re: requete sql via php

Posté : 31 mars 2010, 15:09
par macgawel
Bonjour.

1. Penses à gérer le cas où on arrive directement sur la page - $_POST vide.

2. Penses à sécuriser les données reçues.

3. Il vaut mieux stocker les mots de passes chiffrés - c'est plus sûr.
Au moment de l'INSERT/UPDATE, tu encodes le mot de passe.
Et ici, tu compares le encode(mot de passe envoyé) au mot de passe encodé que tu as stocké.
Pour ça, tu peux utiliser md5() ou (mieux) sha1().

4. Je ne sais pas combien tu as d'enregistrements dans ta table, mais c'est inutile de tout sélectionner, vu que tu ne veux qu'un enregistrement précis.
Je te conseillerais d'ajouter à la clause WHERE de ta requête le login et le mot de passe (chiffré). ensuite, il te suffit de regarder si la requête renvoie bien un enregistrement...

5. Le mysql_close() est inutile (voir le manuel de PHP).

6. Dans ton WHILE, tu boucles sur $data et tu testes la valeur de $dataset...

Re: requete sql via php

Posté : 31 mars 2010, 17:18
par manuchao
re !

Merci pour votre aide les gars, j'ai réussi a résoudre la page d'authentification c'était un problème de récupération de variable depuis mon formulaire !

Maintenant j’aimerai afficher le nom de la personne qui viens de se loguer dans la page redirection

par exemple : ‘bienvenu’ $user1

quelqu’un a une idée ?

Merci encore ;)

Re: requete sql via php

Posté : 31 mars 2010, 17:57
par Patriboom
Puisque tu as déjà fait un fetch, tu peux passer cette informations en $_GET comme suit:

Code : Tout sélectionner

header("Location:../admin/index_admin.php?qui=".$requ['Nom'] );
puis, dans ta page index_admin.php tu fais

Code : Tout sélectionner

echo 'Bonjour '.$_GET['Nom'];

Re: requete sql via php

Posté : 31 mars 2010, 19:01
par manuchao
re patriboom !

merci pour ton aide man !!

enfaite j'ai réussi a créer une variable de session :) j'ai galérer toute l'aprem mais la je respire :)

Merci encore amigos !!

++

Re: requete sql via php

Posté : 31 mars 2010, 19:04
par Patriboom
Il serait bon d'indiquer "Résolu" en cliquant sur l'icône verte.

Re: requete sql via php

Posté : 31 mars 2010, 19:37
par AB
Il y a un tuto qui répondait à toutes tes questions ici faq-tutoriels/inscription-connexion-dan ... 42539.html

Tu devrais peut-être aller y faire un tour pour voir si tu n'as rien oublié, style par exemple afficher echo 'Bonjour '.$_GET['Nom']; est un trou de sécurité.
Et puis si le visiteur est enregistré correctement tu dois pouvoir avoir son nom en session donc pas besoin de passer par l'url pour l'afficher...