requete sql via php

Eléphanteau du PHP | 13 Messages

31 mars 2010, 04:34

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 !!
++

Mammouth du PHP | 881 Messages

31 mars 2010, 08:19

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)
Soyez artisans de paix

Eléphanteau du PHP | 13 Messages

31 mars 2010, 14:05

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 !

Mammouth du PHP | 672 Messages

31 mars 2010, 15:09

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...

Eléphanteau du PHP | 13 Messages

31 mars 2010, 17:18

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 ;)

Mammouth du PHP | 881 Messages

31 mars 2010, 17:57

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'];
Soyez artisans de paix

Eléphanteau du PHP | 13 Messages

31 mars 2010, 19:01

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 !!

++

Mammouth du PHP | 881 Messages

31 mars 2010, 19:04

Il serait bon d'indiquer "Résolu" en cliquant sur l'icône verte.
Soyez artisans de paix

ViPHP
AB
ViPHP | 5818 Messages

31 mars 2010, 19:37

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...