Erreur dans mon programme php
Bonjour,
J'essaie de mettre en place tant bien que mal une page réservée en programmant avec php. Mais quand je soumets le login et mot de passe une erreur s'affiche à la ligne 50 relatif à mon fichier login.php sans que je puisse comprendre les motifs. Pouvez-vous s'il vous plaît m'éclairer. Merci pour votre aide : Voici le code :
<?php
/*programme : login.php
*description : Programme de login pour la section à accès réservé
*du site. Il propose une option de
*s'identifier par un couple nom de login et mot de passe
*identificateur et mot de passe sont conservés dans une base
*/
session_start();
include("nova.inc");
switch (@$_post['do'])
{
case"login":
$cxn=mysqli_connect($host,$user,$password,$database)
or die ("Connexion impossible au serveur dans case login");
$sql="SELECT loginName FROM adherents
WHERE loginName='$_POST[fusername]'";
$result=mysqli_query(cxn,$sql)
or die ("Requête en échec 1.");
$num=mysqli_num_rows($result);
if ($num>0) // loginName non trouvé
{
$sql="SELECT loginName FROM adherents
WHERE loginName='$_POST[fusername]'
AND password=md5('$_POST[fpassword]')";
$result2=mysqli_query($cxn,$sql)
or die("Requête en échec 2.");
$num2=mysqli_num_rows($result2);
if (num2>0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname']=$logname;
$today=date("Y-m-d h:i:s");
$sql="INSERT INTO Login (loginName, loginTime)
VALUES ('$logname','$today')";
$result=mysqli_query($cxn,$sql)
or die("INSERT en échec.");
header("location:membre_page.php");/***** *****/
}
else // mot de passe incorrect
{
$message="Le nom de Login '$POST(fusername)'
existe, mais le mot de passe ne
va pas ! Réessayez.<br>";
include("login_form.inc");
}
}
elself ($num==0) // Nom de login introuvable
$message="Le nom de login que vous avez saisi n'existe pas. Essayez encore.<br>";
include("login_form.inc");
}
?>
J'essaie de mettre en place tant bien que mal une page réservée en programmant avec php. Mais quand je soumets le login et mot de passe une erreur s'affiche à la ligne 50 relatif à mon fichier login.php sans que je puisse comprendre les motifs. Pouvez-vous s'il vous plaît m'éclairer. Merci pour votre aide : Voici le code :
<?php
/*programme : login.php
*description : Programme de login pour la section à accès réservé
*du site. Il propose une option de
*s'identifier par un couple nom de login et mot de passe
*identificateur et mot de passe sont conservés dans une base
*/
session_start();
include("nova.inc");
switch (@$_post['do'])
{
case"login":
$cxn=mysqli_connect($host,$user,$password,$database)
or die ("Connexion impossible au serveur dans case login");
$sql="SELECT loginName FROM adherents
WHERE loginName='$_POST[fusername]'";
$result=mysqli_query(cxn,$sql)
or die ("Requête en échec 1.");
$num=mysqli_num_rows($result);
if ($num>0) // loginName non trouvé
{
$sql="SELECT loginName FROM adherents
WHERE loginName='$_POST[fusername]'
AND password=md5('$_POST[fpassword]')";
$result2=mysqli_query($cxn,$sql)
or die("Requête en échec 2.");
$num2=mysqli_num_rows($result2);
if (num2>0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname']=$logname;
$today=date("Y-m-d h:i:s");
$sql="INSERT INTO Login (loginName, loginTime)
VALUES ('$logname','$today')";
$result=mysqli_query($cxn,$sql)
or die("INSERT en échec.");
header("location:membre_page.php");/***** *****/
}
else // mot de passe incorrect
{
$message="Le nom de Login '$POST(fusername)'
existe, mais le mot de passe ne
va pas ! Réessayez.<br>";
include("login_form.inc");
}
}
elself ($num==0) // Nom de login introuvable
$message="Le nom de login que vous avez saisi n'existe pas. Essayez encore.<br>";
include("login_form.inc");
}
?>
6 réponses
-
Bonsoir,
Commence par donner l'erreur affichée. -
Contributeurne manquerait-il pas une accolade ?
elself ($num==0) // Nom de login introuvable
{
$message="Le nom de login que vous avez saisi n'existe pas. Essayez encore.<br>";
include("login_form.inc");
} -
Il manque 2 accolades, une d'ouverture et une de fermeture :
ca donnerais :} elself ($num==0) // Nom de login introuvable { $message="Le nom de login que vous avez saisi n'existe pas. Essayez encore.<br>"; include("login_form.inc"); } } -
"elseIf" serait mieux que "elself"
-
-
Bonjour bien que les problèmes précédents soient résolus un autre vient se présenter lorsque je soumets un login et un mot de passe pour tester mon code : le message suivant s'affiche à son tour :
Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in C:\Program Files\EasyPHP-5.3.2i\www\login_form.inc on line 77
Pouvez-vous m'éclairer s'il vous plaît ? Merci et si vous ne pouvez pas ce n'est pas grave et merci quand même.
Voici la partie concerné pour la ligne 77 du fichier cité :
<table border="1" cellspading="5" cellspacing="0">
<tr><td colspan="3" class="grey_banner">
Membres uniquement</td></tr>
<tr><td width="33%" valign="top" class="bold_large">
Etes-vous membres ?
<!--pour les logins des nouveaux membres-->
<form action="Login.php" method="POST">
<p><table border="0">
<?php
if (isset($message))
{
echo"<tr><td style='color:red' /* ligne 77 */
colspan="2">$message <br/></td></tr>";
}
?>
<tr><td class="bold_right">Identifiant</td>
<td><input type="text" name="fusername"
sieze="20" maxsize="20"></td></tr>
<tr><td class="bold_right">Mot de passe</td>
<td><input type="password" name="password"
size="20" maxisize="20"></td></tr>
<input type="hidden" name="do"
value="login">
<tr><td style="text-align:center" colspan="2">
<br/><input type="submit" name="log"
value="identifiez-vous"></td></tr>
</table>
</form>
-
-
bonjour,
il faut faire attention aux cotes. De plus pour afficher le contenu de ta variable $message, utilise la concaténation comme ceci :
echo "<tr><td style='color:red' colspan='2'>".$message."<br/></td></tr>";
ca devrait marcher comme ca. -
Si tu as un problème avec ta syntaxe PHP, utilise un bon éditeur simple. Moi, personnellement j'utilise Notepad++. Quand tu selection une accolade ou une parenthèse, il est capable de détecter l'autre parenthèse ou accolade rataché. Alors si il y en a une qui est rataché à rien, tu le sauras!