par
Truc » 10 sept. 2005, 17:37
$sql = "SELECT * FROM admin WHERE passwd = '". $passwd ."'";
$result = mysql_query($sql,$connection) or die(mysql_error());
//get the number of rows in the result set
$num = mysql_num_rows($result);
//print a message or redirect elsewhere, based on result
if ($num == 1 )
{
while($ligne = mysql_fetch_assoc($result))
{
if($login == $ligne['login'])
{
$_SESSION['login'] = $login;
$_SESSION['admin'] = "autorise";
?>
<p>Welcome <?php echo($login); ?></p>
<a href="index.php?menu=logout" name="logout">LogOut</a><br>
<a href="index.php?menu=MyAdmin&page=page1">Next</a>
<?php
}
}
}
else
{
?>
<p>You're not granted to acceed here : Go out</p>
<a href="index.php" name="retour_accueil" title="Retour à la page d'accueil">Page d'accueil</a>
<?php
}
Je suis d'accord avec toi de lui fournir un nouveau code mais il me semble un peu bizarre quant meme, je m'explique (tu me dira si je me trompe ou pas

):
1. la requete tu la fait que sur le mot de "passe", ensuite tu fait un
$num = mysql_num_rows($result) et tu teste le nombre de ligne pour continuer il faut que le nombre de ligne soit égal a 1 MAIS si, par le plus grand des hasard, plusieurs personne ont le MEME mot de passe $num sera égal a 2 dc tous les deux ne pourront plus se connecter !!
2.Ensuite tu fait une boucle "while($ligne = mysql_fetch_assoc($result))" qui est inutile puisqu'a ce stade on sait qu'il n'y a qu'une ligne dans le résultat de la requete (grace au if précédent), dc il suffirait de faire,
"$ligne = mysql_fetch_assoc($result);"
Je sais que c'est pas mon post à la base mais merci de m'éclairer sur ces point

[quote="Cyrano"]
[php]
$sql = "SELECT * FROM admin WHERE passwd = '". $passwd ."'";
$result = mysql_query($sql,$connection) or die(mysql_error());
//get the number of rows in the result set
$num = mysql_num_rows($result);
//print a message or redirect elsewhere, based on result
if ($num == 1 )
{
while($ligne = mysql_fetch_assoc($result))
{
if($login == $ligne['login'])
{
$_SESSION['login'] = $login;
$_SESSION['admin'] = "autorise";
?>
<p>Welcome <?php echo($login); ?></p>
<a href="index.php?menu=logout" name="logout">LogOut</a><br>
<a href="index.php?menu=MyAdmin&page=page1">Next</a>
<?php
}
}
}
else
{
?>
<p>You're not granted to acceed here : Go out</p>
<a href="index.php" name="retour_accueil" title="Retour à la page d'accueil">Page d'accueil</a>
<?php
}[/php] [/quote]
Je suis d'accord avec toi de lui fournir un nouveau code mais il me semble un peu bizarre quant meme, je m'explique (tu me dira si je me trompe ou pas :wink:):
1. la requete tu la fait que sur le mot de "passe", ensuite tu fait un
$num = mysql_num_rows($result) et tu teste le nombre de ligne pour continuer il faut que le nombre de ligne soit égal a 1 MAIS si, par le plus grand des hasard, plusieurs personne ont le MEME mot de passe $num sera égal a 2 dc tous les deux ne pourront plus se connecter !!
2.Ensuite tu fait une boucle "while($ligne = mysql_fetch_assoc($result))" qui est inutile puisqu'a ce stade on sait qu'il n'y a qu'une ligne dans le résultat de la requete (grace au if précédent), dc il suffirait de faire,
"$ligne = mysql_fetch_assoc($result);"
Je sais que c'est pas mon post à la base mais merci de m'éclairer sur ces point :D