Comparer une variable a un résultat Mysql

Eléphanteau du PHP | 39 Messages

30 janv. 2011, 17:20

Salut a tous,

J'ai fais pour mon site une petite page d'échange de bannière, avec la possibilité de se créer un espace spécifique pour les gérer par la suite.

Le problème qui se pose c'est que j'ai un premier fichier : gerer.php avec deux input nom et motdepasse qui me renvoie sur gerer2.php jusque la pas de soucis.

Voici le contenu de la seconde page : gerer2.php
<?php
//Déclaration des variables qui ont été poster
$nom = $_POST['nom'];
$motdepasse = $POST['motdepasse'];

//Vérification si le pseudo n'est pas vide avant d'envoyer la requète mysql
if ($nom!=""){

include ('../connexion.php');
//Requete sql
$requete = "SELECT * FROM banniere WHERE pseudo = '$nom'" ;
$req = mysql_query($requete);
while( $result = mysql_fetch_object( $req ) )
    {
	echo ('PSEUDO OK');
	$id = $result->pseudo; //Création de $id1 contenant le pseudo
	$id2 = $result->motdepasse; //Création de $id2 contenant le mot de passe
	} 
mysql_close(); //Fermeture de Mysql
}
if ($motdepasse === $id) {
echo ('MOT DE PASSE OK'); //Si mot de passe OK
}
else {
echo ('PAS BON'); //Si erreur de pseudo ou de mot de passe
}
?>
Je ne sais pas si l'erreur est au niveau de la variable mysql ou au niveau de la vérification...

Merci par avance

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2011, 17:49

La fonction mysql_num_rows() te renverra le nombre d'enregistrements retourné par ta requête.
Cela te permettra de vérifier que ta requête renvoie bien quelque chose.

Eléphanteau du PHP | 39 Messages

30 janv. 2011, 18:15

J'arrive a passer la première étape a savoir sélectionner l'neregistrement mysql contenant le pseudo.
Je pense que c'est la suite qui dois bugger.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 janv. 2011, 18:52

while( $result = mysql_fetch_object( $req ) )
{
echo ('PSEUDO OK');
$id = $result->pseudo; //Création de $id1 contenant le pseudo
$id2 = $result->motdepasse; //Création de $id2 contenant le mot de passe
}
mysql_close(); //Fermeture de Mysql
}
if ($motdepasse === $id) { <=== ça c'est pas bon d'après le contenu du while
echo ('MOT DE PASSE OK'); //Si mot de passe OK
}
else {
echo ('PAS BON'); //Si erreur de pseudo ou de mot de passe
}
?>

d’ailleurs le while est inutile puisque le résultat est normalement unique !

donc comme l'indique xTG
1/ requete
2/ mysql_num_rows
3/ si un résultat => mysql_fetch_object
si psa de resultat message d'erreur
4/ vérification du mot de passe.

à la limite tu peux faire la vérification des deux dans la requete SQL.

tu devrais utiliser mysql_real_escape_string pour sécuriser tes requetes !

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 39 Messages

30 janv. 2011, 23:42

Exacte l'erreur venez de
if ($motdepasse === $id)

id retournez le pseudo et non le mot de passe

Jai modifier mes variable pour les passer a la moulinette "mysql_real_escape_string " :D

Merci a vous tous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 janv. 2011, 01:21

de rien !


@+
Il en faut peu pour être heureux ......

ahmed1325
Invité n'ayant pas de compte PHPfrance

11 déc. 2012, 18:32

c'est quoi le probleme svp
    $sql = "select pseudo,motdepasse from compte " ;
        $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
             
                while( $result = mysql_fetch_object( $requete) )
    {	
  
      
		
		  if	($result->pseudo=='admin' )
 {
	echo("heloooooooooooooooooooooooooooooooooo");
	?>
  <div id="wrapper">
	<div id="menu-wrapper">
		<div id="menu" class="container">
			<ul>
				<li class="current_page_item"><a href="index.html">Homepage</a></li>
				<li><a href="emplo.html">Employee</a></li>
				<li><a href="chantier.php">Chantier</a></li>
				<li><a href="bemtic.php">Travaux</a></li>
			
				<li><a href="#">Nouvel utilisateur</a></li>
			</ul>
		</div>
	</div>
	<div id="logo" class="container">
		<IMG SRC="images/img01.jpg"

 TITLE="Texte à afficher">
	</div>

 <?php 
 }}?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 déc. 2012, 23:42

bonjour,


Merci d'ouvrir un thread a toi pour que l'on s'y retrouve.



Sans message d'erreur nous ne pouvons t'aider (hors mis la syntaxe).

Si tu n'as pas de message d'erreur vérifie la valeur du paramètre error_reporting dans un phpinfo(); il doit être à E_ALL (modifiable dans un php.ini).


@+
Il en faut peu pour être heureux ......

ahmed1325
Invité n'ayant pas de compte PHPfrance

12 déc. 2012, 12:16

Le problème c qu'il ne voit pas la condition if

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2012, 12:37

crée toi un sujet A TOI et ne pollue pas celui ci (qui date d'un an).


Si la condition if échoue il faut que tu vérifie le contenu des variables qui composent la condition (print_r, var_dump utiliser un débogueur).


@+
Il en faut peu pour être heureux ......