Probleme erreur php
Résolu
maxime
-
maxime -
maxime -
Bonjour,
je suis en train de faire un site web
je veux le proteger par un unique identifiant et un mot de passe.
voici ce que j'ai mis dans ma page d'accueil
<h1><?php include('login.php3'); ?></h1>
jusque là ca va.
le fichier login.php3 contient :
<?php
if ($Message == "Invalide")
{ print ("<B><CENTER><FONT COLOR=RED>
</FONT></CENTER></B>\n");
}
print ("<FORM ACTION=\"Log.php3\" METHOD=POST>\n");
print ("Login : <INPUT TYPE=TEXT NAME=Utilisateur SIZE=10><BR>\n");
print ("Password : <INPUT TYPE=PASSWORD NAME=Mdp SIZE=7><BR>\n");
print ("<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Go\">\n");
?>
Jusque la ca marche le formulaire apparait et je peux le remplir le problème et lors de la vérification dans le fichier log.php3, ce dernier contient :
<?php
if (($Utilisateur == "maxime") && ($Mdp == "max"))
{ header ("Location: index.php3");
exit;
}
else
{ header ("Location: login.php3?Message=Invalide");
exit;
}
?>
Lorsque je suis suis sur le site internet déja en ligne, et que je rentre les bons ou les mauvais identifiants, une page d'erreur s'ouvre.
il doit avoir un probleme dans le fichier log.php3 mais je ne trouve pas.
Je vous serais trés reconnaissant de me trouver et de me reparer l'erreur.
D'avance merci
Maxime
je suis en train de faire un site web
je veux le proteger par un unique identifiant et un mot de passe.
voici ce que j'ai mis dans ma page d'accueil
<h1><?php include('login.php3'); ?></h1>
jusque là ca va.
le fichier login.php3 contient :
<?php
if ($Message == "Invalide")
{ print ("<B><CENTER><FONT COLOR=RED>
</FONT></CENTER></B>\n");
}
print ("<FORM ACTION=\"Log.php3\" METHOD=POST>\n");
print ("Login : <INPUT TYPE=TEXT NAME=Utilisateur SIZE=10><BR>\n");
print ("Password : <INPUT TYPE=PASSWORD NAME=Mdp SIZE=7><BR>\n");
print ("<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Go\">\n");
?>
Jusque la ca marche le formulaire apparait et je peux le remplir le problème et lors de la vérification dans le fichier log.php3, ce dernier contient :
<?php
if (($Utilisateur == "maxime") && ($Mdp == "max"))
{ header ("Location: index.php3");
exit;
}
else
{ header ("Location: login.php3?Message=Invalide");
exit;
}
?>
Lorsque je suis suis sur le site internet déja en ligne, et que je rentre les bons ou les mauvais identifiants, une page d'erreur s'ouvre.
il doit avoir un probleme dans le fichier log.php3 mais je ne trouve pas.
Je vous serais trés reconnaissant de me trouver et de me reparer l'erreur.
D'avance merci
Maxime
Configuration: Windows 7 Internet Explorer 7.0
15 réponses
-
La fonction header() ne peut plus être utilisée lorsque les entêtes HTTP sont envoyées au client, c'est-à-dire avant que le premier caractère (espace compris) soit envoyé.
En gros il ne peut y avoir aucun caractère avant le "<?php" et aucun echo avant header()-
Bonjour et merci de preter attention à mon cas.
Si j'ai bien compris le probleme viendrait du fait que lorsque le fichier log.php3 s'execute une page html est déjà ouverte.
Peux tu me dire comment faire pour résoudre ce problème, ca fait 2 jours que je cherche sur le web la réponse et je n'y arrive pas.
D'avance merci
-
-
Bonjour,
pour le header, il faut qu'il n'y ait AUCUNE BALISE HTML ou caracter avant
hors tu mets:
<h1><?php include('login.php3'); ?></h1>
donc il y a un <h1> avant
d'ailleurs je ne voit pas l'interet de ce h1
mets tout simplment
<?php include('login.php3'); ?>
et attention il faut que cette ligne soit bien au début de t page, pas de ligne vide ou d'espace avant -
Il y a aussi que pour récupérer les valeurs de ton form qui est en mode post, tu dois faire $_POST['Utilisateur'] et pas $Utilisateur
-
Retirer le <h1> ne résoudra pas le problème car normalement il y a encore du texte avant comme le doctype, l'entête HTML (<head>, qui contient les meta, le CSS, les scripts JS, le titre, ...) et les autres éléments de la page.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
D'aprés vous je devrais remplacer la ligne:
if (($Utilisateur == "maxime") && ($Mdp == "max"))
par
if (($_POST['Utilisateur']=="maxime" )&&($_POST['MDP']=="max"))
Il est normal qu'il y ai de fois le sigle==?
J'essaye ca et je vous tiens au courant.
Merci
Maxime -
C'est bien ça. Par contre, ça, ça sera encore mieux :
if($_POST['Utilisateur'] == "maxime" && $_POST['MDP'] == "max")
Et sans majuscules ça serait encore mieux.
Pour les deux "=", c'est normal. -
On avance,
J'ai incorporé la ligne donnée.
Maintenant lorsque je rentre identifiant et mdp et au lieu , c'est le texte du code de la page log.php s'affiche. ( je sais pas si c'est trés clair).
maxime -
je recommence:
j'ai changé la ligne de commande par celle que tu m'as proposée.
Une fois sur le site lorsque je mais des identifiants et mdp bon ou mauvais, avant j'avais un message d'erreur maintenat c'est le code du fichier log.php3 qui s'affiche, mais il ne "s'execute" pas.
Une idée??
merci
maxime -
La ligne est correcte, ça ne vient pas de là.
Tu as peut-être oublié de fermer un guillemet ou un apostrophe. -
J'ai vérifié je n'ai rien trouvé qui cloche.
Peux tu verifier pour moi voici les 2 fichiers
login.php: ( a priori celui là doit etre bon)
<?php
if ($Message == "Invalide")
{ print ("<B><CENTER><FONT COLOR=RED>
!</FONT></CENTER></B>\n");
}
print ("<FORM ACTION=\"log.php3\" METHOD=POST>\n");
print ("Login : <INPUT TYPE=TEXT NAME=Utilisateur SIZE=10><BR>\n");
print ("Password : <INPUT TYPE=PASSWORD NAME=Mdp SIZE=7><BR>\n");
print ("<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Go\">\n");
?>
log.php:
<?php
if($_POST['Utilisateur'] == "maxime" && $_POST['Mdp'] == "max")
{header ("Location: $accueil.php");
exit;
}
else
{header ("Location: login.php3?Message=Invalide");
exit;
}
?>
Merci de regarder.
maxime -
header ("Location: $accueil.php");Où est définie $accueil ? -
le fichier accueil est situé dans le meme dossier.
a quoi sert le symbole $ ?
il y avait un probleme de majuscule entre login.php et log.php
Maintenant, lorsque je rentre les identifianst et mdp sur le site, le site veut que je télécharge le fichier log.php3.
je me dis qu'il y a une commande dans le code login.php qui me "dis" de le télécharger et non pas de l'executer.
Voici le code:
<?php
if ($Message == "Invalide")
{ print ("<B><CENTER><FONT COLOR=RED>Le Login et Password ne sont pas valide !</FONT></CENTER></B>\n");
}
print ("<FORM ACTION=\"log.php3\" METHOD=POST>\n");
print ("Login : <INPUT TYPE=TEXT NAME=Utilisateur SIZE=10><BR>\n");
print ("Password : <INPUT TYPE=PASSWORD NAME=Mdp SIZE=7><BR>\n");
print ("<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Go\">\n");
?>
Il y a t-il qqchose dans ce gout là??
Merci -
Retire le "$" si tu as un fichier nommé accueil.php
Est-ce que ton hébergeur supporte le PHP ? -
je ne sais pas mais ton fichier accueil c'est un fichier .php ?? et sinon pourquoi log.php3
-
merci à tous de votre aide, j'ai finis finalement à trouver un autre script sur le net et en le modifiant un peu j'ai réussi à faire ce que je voulais.