PHP auhentification: une page différente s'affiche selon le cas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP auhentification: une page différente s'affiche selon le cas

par zeus » 30 juin 2008, 20:11

Modération :
mapasa, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

katagoto, je t'ai déjà demandé de ne pas faire ce genre de remarque toi-même.
Tu disposes d'un bouton pour signaler les messages de ce type et un modérateur pourra voir si le sujet mérite modération ou non

par katagoto » 30 juin 2008, 19:55

Les modérateurs te dirons :

Clique sur l'image qui ressemble à celle là en haut de ton topic :
Mettre [Résolu]

Merci de mettre ces balise autour de ton code :

Code : Tout sélectionner

[php][/php]
Et derien, n'ésite pas à revenir ^^

par mapasa » 30 juin 2008, 19:49

Bonsoir à Tous et grand merci à "katagoto" et à "sadeq" qui m'ont aidé à corriger mon petit script d'authentification. Le problème est maintenant résolu. Voici ci-dessous la forme finale de mon script d'authentification par login et mot de passe:

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("INDUS");
$Resultat=mysql_query("SELECT * FROM indus WHERE NomVisiteur='".$EDILogin."' AND MotDePasse='".$EDIMotDePasse."'");
if (mysql_numrows($Resultat) ==1)
{
header("Location: http://localhost/INDUS/interface.php");
exit();

}
else
{
header("Location: http://localhost/INDUS/pas_authentifier.php");
}
mysql_close();
?>

Grand merci à vous tous!!
Guyde

par katagoto » 29 juin 2008, 20:01

18, c'est la fin de ta page, tu as dût oublié de fermer un accolade, celle d'une condition, ou alors, ton accolade ouvrante est collé à un else, si c'est le cas, il faut un espace entre les deux...

Si ça ne marche toujous pas montre nous le code en entier avec les balises suivantes pour améliorer la lisibilité :

Code : Tout sélectionner

[php][/php]
Par avance merci :lol:

par sadeq » 29 juin 2008, 20:00

Déplace l'accolade ouvrante { juste après ton if. Sa position actuelle est incorrecte. En suite, enlève les marqueurs <?php et ?> au milieu du code, car tu n'a que du code PHP.

Correction:
<?php 
mysql_connect("localhost", "root", ""); 
mysql_select_db("INDUS"); 
$Resultat=mysql_query(SELECT * FROM `indus` WHERE `NomVisiteur` LIKE '$EDILogin' AND `MotDePasse` LIKE '$EDIMotDePasse';)
if (mysql_numrows($Resultat) ==1) 
{
header("Location: http://localhost/INDUS/interface.php"); 
exit(); 

} 
else 
{ 
header("Location: http://localhost/INDUS/pas_authentifier.php"); 
} 
mysql_close(); 
?> 

par mapasa » 29 juin 2008, 19:07

Merci de votre réponse. J'ai fait la modification comme proposé dans ton mail mais ça ne marche pas. J'ai le message d'erreur ci-dessous:
"e error: syntax error, unexpected T_ELSE in C:\wamp\www\INDUS\authentification.php on line 18
"
Ma ligne 18 c'est le mot "else"
Guyde

par katagoto » 29 juin 2008, 18:45

Bonjour,

Pour des raisons de lisibilités, merci d'utilisé ces balise :

Code : Tout sélectionner

[php][/php]
Ensuite :
<?php 
mysql_connect("localhost", "root", ""); 
mysql_select_db("INDUS"); 
$Resultat=mysql_query(SELECT * FROM `indus` WHERE `NomVisiteur` LIKE '$EDILogin' AND `MotDePasse` LIKE '$EDIMotDePasse';)
if (mysql_numrows($Resultat) ==1) 

header("Location: http://localhost/INDUS/interface.php"); 
exit(); 
{ 
?> 
<?php 
} 
else 
{ 
?> 
header("Location: http://localhost/INDUS/pas_authentifier.php"); 
<? 
} 
mysql_close(); 
?> 
$Resultat=mysql_query(SELECT * FROM `indus` WHERE `NomVisiteur` LIKE '$EDILogin' AND `MotDePasse` LIKE '$EDIMotDePasse';)
C'est incorrecte, essaye ça :
$Resultat=mysql_query("SELECT * FROM indus WHERE NomVisiteur='".$EDILogin."' AND MotDePasse='".$EDIMotDePasse."'");
Personnelement je n'aurait pas fait comme ça, mais bref...

Si tu veux pouvoir utilisé la redirection par les headers (header()), ton bloc de PHP doit être avant toute choses, c'est à dire avant <html>

Voilà quelques pistes...

PHP auhentification: une page différente s'affiche selon le

par mapasa » 29 juin 2008, 18:30

Bonjour à Tous,
Je viens de créer un formulaire d’authentification de membres d'un club lier une base de données mysql. Le membre doit renseigner son login et mot de passe pour accéder à l’espace membre. Un fichier « authentifier.php » vérifie si le membre est présent dans la base de données. Si le membre est présent, la page « interface.php » est affichée sinon c’est la page « pas_authentifier.php » qui s’affiche. Voici le cœur de mon code, mais qui ne fonctionne pas. Merci, par avance à tous ceux qui m’aideront à trouver la solution
<body>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("INDUS");
    $Resultat=mysql_query(SELECT * FROM `indus` WHERE `NomVisiteur` LIKE '$EDILogin' AND `MotDePasse` LIKE '$EDIMotDePasse';)
    if (mysql_numrows($Resultat) ==1)
	
	 header("Location: http://localhost/INDUS/interface.php"); 
	  exit();
      {
    ?>
    <?php
      }
    else
      {
    ?>
	 header("Location: http://localhost/INDUS/pas_authentifier.php"); 
    <?
      }
    mysql_close();
    ?>
  </body>
guyde