[PHP] Problème Include renvoyant sur Header
Fermé
neo673
-
7 sept. 2007 à 00:16
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 - 7 sept. 2007 à 17:37
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 - 7 sept. 2007 à 17:37
A voir également:
- [PHP] Problème Include renvoyant sur Header
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- 400 bad request request header or cookie too large - Forum Windows
- Php alert ✓ - Forum PHP
- ALERT en php ✓ - Forum PHP
7 réponses
neojick
Messages postés
167
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
30 mars 2009
99
7 sept. 2007 à 08:17
7 sept. 2007 à 08:17
Habituellement, quand tu as une erreur php, ton navigateur affichage une page blanche ou une erreur ? Parce qu'il affiche une page blanche, on peut supposer que tu as le message habituel de l'erreur sur un header. Il ne faut pas un seul morceau de code autre que php dans une page ou tu va faire un header ensuite, même pas un simple espace entre le début de ton fichier et la balise d'ouverture <?php
Ce qui est logique, si on fait un header, c'est qu'on n'a rien à afficher sur cette page.
Après, si ton navigateur affiche habituellement les erreurs php, c'est un autre problème... et là, il faut nous dire quelle adresse est dans l'url quand il y a page blanche : page1.php ou page2.php ?
Ce qui est logique, si on fait un header, c'est qu'on n'a rien à afficher sur cette page.
Après, si ton navigateur affiche habituellement les erreurs php, c'est un autre problème... et là, il faut nous dire quelle adresse est dans l'url quand il y a page blanche : page1.php ou page2.php ?
mon navigateur affiche habituellement les erreurs PHP.
l'url quand il y a page blanche indique index.php, c'est bizarre.
Voici mon code (je vous mets juste les infos nécessaires car sinon ca ferait bcp trop de code:
INDEX.PHP
INSCRIPTION1.PHP (en complet)
Quand je valide sur le formulaire Inscription1.php, j'ai page blanche et l'url s'affiche comme ceci : http://127.0.0.1/PROJET/new_design/index.php
J'espère que vous saurez m'aider. merci :)
l'url quand il y a page blanche indique index.php, c'est bizarre.
Voici mon code (je vous mets juste les infos nécessaires car sinon ca ferait bcp trop de code:
INDEX.PHP
<?PHP session_start(); if(isset($_GET['page'])){ $page=$_GET['page']; } ?> <html> <body> <table> <tr> <td align="center" bgcolor="#336185" class="fondlien"><span class="stylemenu"><a href="index.php?page=inscription1">Inscription</a></span></td> </tr> </table> <!-- ensuite plus bas j'ai cela --> <table border='0' cellpadding='0' cellspacing='0' width='840' align='center'> <tr> <td> <?PHP if(isset($page)){ include('pages/'.$page.'.php'); } ?> </td> </tr> </table>
INSCRIPTION1.PHP (en complet)
<?PHP if(isset($_REQUEST['Submit1'])){ require("protec/passe/conf.php"); if ( isset($_REQUEST) && (!empty($_REQUEST['nom'])) && (!empty($_REQUEST['prenom']))&& (!empty($_REQUEST['AnneeEntree'])) ) { //Récupération du formulaire d'inscriptions $nom = strip_tags(substr($_REQUEST['nom'],0,32)); $prenom = strip_tags(substr($_REQUEST['prenom'],0,32)); $AnneeEntree = strip_tags(substr($_REQUEST['AnneeEntree'],0,4)); // CONNEXION MYSQL $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd); $requete=mysql_db_query($sql_bdd,"SELECT NoUtilisateur,Nom,Prenom,AnneeEntree,ActifOrNot FROM utilisateurs WHERE Nom='$nom' AND Prenom='$prenom' AND AnneeEntree='$AnneeEntree'",$db_link)or die("Erreur de requête: ". mysql_error()); $num=mysql_num_rows($requete); if($num!=0) { while($data = mysql_fetch_assoc($requete)){ $ActifOrNot = $data['ActifOrNot']; $IDUser = $data['NoUtilisateur']; } if($ActifOrNot == 0) { //Mise en place des variables de sessions pour l'étape 2 de l'inscriptions. $_SESSION['acces'] = "ok"; $_SESSION['ID'] = $IDUser; //REDIRECTION VERS LE FORMULAIRE D'INSCRIPTION : ETAPE 2/3 header("Location:inscription2.php"); // DECONNEXION MYSQL mysql_close($db_link); } else{ // UTILISATEUR DEJA ENREGISTRE echo "Vous êtes déjà enregistré, merci de vous rendre sur la page de récupération de mot de passe si vous avez perdu ou oublié votre compte."; } } else { echo "<center>Vous ne faites pas partie des utilisateurs pouvant s'inscrire. Merci de prendre contact avec l'<a href='mailto:$email_admin'>administrateur</a></center>"; } }else{ echo "Vous devez remplir les champs !"; } } ?> <html> <head> <title>Inscriptions 1/3</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" /> </head> <body> <div id="title">Formulaire d'inscription : Etape 1/3</div> <hr width ="75%" noshade color="black"> <br> <form method="post" name="inscription" action="<?PHP echo $_SERVER['PHP_SELF'];?>"> <div> <table border=0> <tr> <td>Nom :</td> <td><input type="text" size=15 maxlength=32 name="nom"></td> </tr> <tr> <td>Prénom :</td> <td><input type="text" size= 15 maxlength=32 name="prenom"></td> </tr> <tr> <td>Année d'entrée à l'ESVIG : </td> <td><input type="text" size=3 maxlength=4 name="AnneeEntree"></td> </tr> <tr> <td colspan=2> <br> <center><input type="submit" name="Submit1" value="Envoyer" class="input"></center> </td> </tr> </table> </div> </form> </body> </html>
Quand je valide sur le formulaire Inscription1.php, j'ai page blanche et l'url s'affiche comme ceci : http://127.0.0.1/PROJET/new_design/index.php
J'espère que vous saurez m'aider. merci :)
neojick
Messages postés
167
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
30 mars 2009
99
7 sept. 2007 à 12:03
7 sept. 2007 à 12:03
Je vois, ton header est dans inscription1.php qui est 'includé' dans index. Ce qui fait qu'à l'arrivée, ta fonction header se retrouve dans index.php, et comme tu as du code html dedans, le header plante (cf mon explication au dessus).
PS : désolé pour le temps de réponse
PS : désolé pour le temps de réponse
J'ai pu trouvé l'origine, de l'erreur, en fait c'était simplement que mon :
La solution est donc de faire ceci :
<form method="post" name="inscription" action="<?PHP echo $_SERVER['PHP_SELF']."?page=inscription1";?>">
Cependant maintenant 2ème problème c'est que j'ai une erreur de Header vu que le code suivant :
est inclus dans index.php
Comment pourrais-je rediriger inscription1.php vers inscription2.php vu que je dois passer par index.php (qui est mon design du site web donc qui a forcément du code HTML avant le header:location) ???
Merci pour votre aide !
<form method="post" name="inscription" action="<?PHP echo $_SERVER['PHP_SELF'];?>">était inclus dans index.php, et donc faisait un PHP_SELF de index.php et non de inscription1.php, d'où l'erreur.
La solution est donc de faire ceci :
<form method="post" name="inscription" action="<?PHP echo $_SERVER['PHP_SELF']."?page=inscription1";?>">
Cependant maintenant 2ème problème c'est que j'ai une erreur de Header vu que le code suivant :
//REDIRECTION VERS LE FORMULAIRE D'INSCRIPTION : ETAPE 2/3 header("Location:inscription2.php");
est inclus dans index.php
Comment pourrais-je rediriger inscription1.php vers inscription2.php vu que je dois passer par index.php (qui est mon design du site web donc qui a forcément du code HTML avant le header:location) ???
Merci pour votre aide !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
neojick
Messages postés
167
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
30 mars 2009
99
7 sept. 2007 à 12:42
7 sept. 2007 à 12:42
Sépare le code php de ta page inscription1.php
Tu fais une page genre action.php qui sera appelée à la soumission du formulaire, dans cette page tu mets tout le traitement à effectuer dont le header.
Et veille donc à ne pas mettre le moindre morceaux d'hmtl (même espace) dans cette page.
Tu fais une page genre action.php qui sera appelée à la soumission du formulaire, dans cette page tu mets tout le traitement à effectuer dont le header.
Et veille donc à ne pas mettre le moindre morceaux d'hmtl (même espace) dans cette page.
Oui mais la le problème sera inverse, le header fonctionnera mais les messages d'erreurs au cas où les données d'inscriptions sont fausses ne s'afficheront pas
Car mon header fait partie d'une série de If - else qui testent si ce que l'utilisateur à rentrer est correct, et si tel est le cas, il le renvoie sur la page d'inscription suivante.
Alors si l'utilisateur fait des erreurs j'ai des echo et il n'est donc pas redirigé.
Car mon header fait partie d'une série de If - else qui testent si ce que l'utilisateur à rentrer est correct, et si tel est le cas, il le renvoie sur la page d'inscription suivante.
Alors si l'utilisateur fait des erreurs j'ai des echo et il n'est donc pas redirigé.
neojick
Messages postés
167
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
30 mars 2009
99
7 sept. 2007 à 17:37
7 sept. 2007 à 17:37
Tu peux mettre des messages dans des variables de sessions pour les afficher plus loin