Bonsoir,
Ton code ne t'affiche aucune erreur ? As tu xdebug d'activé ?
Essaye de supprimer ton code avant le header, voir si c'est ça qui le fait planter.
Bonsoir,
Je suis en train de me former sous PHP. J'ai comme exercice un minichat à créer, avec possibilité de se créer un compte ou d'enregistrer un message avec un pseudo.
Voici le code index.php :
le code insert du billet
tout se passe correctement sauf le header qui ne me renvoie pas sur mon index.php
Si quelqu'un a une explication, je suis preneur.
Merci.
Bonsoir,
Ton code ne t'affiche aucune erreur ? As tu xdebug d'activé ?
Essaye de supprimer ton code avant le header, voir si c'est ça qui le fait planter.
Bonjour Alexandre,
Non il n'affiche aucune erreur, mes données sont ajouter dans la base, je reste sur la page minichat.php. J'utilise NetBean's 8.02, le xdebug est activé, pour autant j'ai une attente en cours "Waiting for connection (netbeans-xdebug), je n'en connais pas vraiment la raison.
Salut,
Je n'ai pas trouvé d'erreur dans ton code..
As-tu du code html avant ce code php? (vérifie tes messages d'erreurs php on sait jamais..)
Sinon, vérifie que ton code arrive bien jusqu'au bout de l'exécution (avec xdbug ou un simple die()).
Essayer ceci pour afficher toute les erreurs.
Il faut le mettre tout au début de vos fichiers php.
Il ne faut RIEN afficher (pas de code HTML? echo, etc...) avant d'utiliser header() et n'oublie pas un p'tit exit; après aussi (même si là il est en fin de script)
Merci à tous pour votre aide, grace à Carouge10, il y a une erreur dans l'utilisation du header. En début de script j'inclus mes variables, me permettant de me connecter à ma base de données. Le debug m'informe que du html a déjà été généré. J'ai donc mis mes variable directement dans le script et ca fonctionne.
Maglré tout en regardant mon include je ne vois pas de génération de html sauf si le fait d'initialiser des variables via un include est considerer comme de la génération de html.
Mon include d'origine :
le code qui fonctionne
Enlève le chevron fermant du <?php ?> dans ton fichier include.
Si ça ne marche toujours pas, copie-colle nous ton erreur ici ! (xdebug)
En effet, ton chevron fermant pourrait bien t'embêter dans certains cas ;)
Très bon conseil de mes prédécesseur.
Pour justifier ce choix, cela évite les caractères après la balise fermante de php "?>", et oui les espaces ne se vois pas et sont considéré comme des caractères html.
Donc si vous n'avez pas besoin d'ajouter du code html après avoir fermer le php, ne mettez pas la balise, le compilateur le ferra tout seul et vous évitera beaucoup de problème.
Sinon, y'a aussi l'encodage du fichier qui peut déranger si il y a le BOM en début de fichier avant le tag <?php
voilà le message d'erreur : "Cannot modify header information - headers already sent by (output started ...." pointant sur infoconnexion.php.
Après avoir enlever la balise fermante ?> ca fonctionne aussi ... donc il y avait bien un espace créé et comme le dit Carouge10, cela provoque par le compilateur comme un code HTML.
Merci pour votre aide à tous.
Un petit problème m'a appris plein de nouvelles choses. cool !!!
On apprend de nos erreurs ;) bonne continuation à toi l'amis!