Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:49) in /srv/web/plateforme-immo/connexion.php on line 49
j'ai regardé et je n 'au aucun espace ou probleme a cet endroit du cocede, je vous le met pour confirmer.
> Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:49) in /srv/web/plateforme-immo/connexion.php on line 49
En l'absence de codes complets, je traduis le message d'erreur mais ce n'est pas comme s'il y en avait plein le forum : la fonction dite d'entête (header/set(raw)cokie/session_start) située à la ligne 49 du script /srv/web/plateforme-immo/connexion.php ne peut pas fonctionner car le script /srv/web/plateforme-immo/header.php (inclus) a produit avant une sortie (echo ou n'importe quoi en dehors des balises PHP) à sa ligne 49.
Bref, tu affiches/envoies quelque chose au client avant une fonction d'entête quand tu ne dois pas le faire. Vu les chemins, ça semble être en production donc j'espère que tu testes avant tes scripts sur un environnement de développement dédié où output_buffering est configuré à off pour voir ce genre d'erreur de conception (on fait sa petite cuisine interne avant d'afficher - ou non - quoi que ce soit).
Ca ne correspond en rien : le message d'erreur parlait d'une fonction d'entête en ligne 49 et d'une sortie en ligne 49 aussi (mais fichier différent) or des codes donnés, il n'y a aucune fonction d'entête à la ligne 49 et le code HTML commence à la ligne 8 pas 49 (si encore c'était lui cette sortie, ce qui reste à déterminer).
PS : tu ne devrais pas terminer tes fichiers par ?> (celui avec ta connexion surtout vu que tu vas le require partout), s'il y a le moindre caractère après la balise de fin, tu es justement susceptible rencontrer cette erreur. D'autant que sur Unixoïde les éditeurs ont tendance à rajouter un \n à la fin du fichier quand il n'y en a pas.
Mais vous cherchez quoi ? Parce que tout est indiqué dans le message d'erreur et die mettra difficilement en évidence une erreur de ce genre.
J'attendais les codes complets des deux fichiers mentionnés dans l'erreur mais visiblement c'est trop demander. Vous noterez qu'il(elle) a évoqué la fonction header mais qu'il n'y en a aucun dans tout ce qu'il(elle) a donné jusqu'à présent.
Sinon reconfigurer PHP pour passer l'output_buffering à on et on passe à autre chose même si ce serait la pire chose à faire mais visiblement ça convient à beaucoup.
> ce n'est pas autre chose que header() qui pourrait provoquer cette erreur??
Il n'y a que celles-là à émettre des entêtes HTTP :
> [...] la fonction dite d'entête (header/set(raw)cokie/session_start) [...]
Il suffit de suivre le message d'erreur et regarder ce qui se trouve à la ligne 49 de /srv/web/plateforme-immo/connexion.php pour savoir laquelle c'est, bien que c'est l'autre partie de ce message d'erreur qu'il faille considérer pour corriger cette sortie (sauf que ça peut ne pas être trivial en demandant une réorganisation du code). La fonction d'entête concernée, en elle-même, n'a pas d'importance.
Je vous donne les codes car j'ai toujours l’erreur et toujours perdu
J' ai creer un fichier php que j'ai appelé test.
Voici le message d'erreur:
Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:80) in /srv/web/plateforme-immo/test.php on line 3
Voici son contenu:
<?php include 'header.php';
header('location:contact.php');
die(); ?>
C'est normal : tu balances du code HTML (lignes 33 à 90 du second script) au client alors que tu veux faire une redirection après quand tu ne devrais pas (ne rien afficher avant). Il faudrait refactoriser le code pour ne rien afficher avant cette redirection.
Il y a vraiment besoin de tout ça dans ce header.php ? (PHPMailer est utilisé par tous tes scripts ? Pourquoi l'identification est gérée par header.php et non un script spécifique ?) Tu devrais scinder cet header.php en 2 avec d'un côté la partie PHP et de l'autre HTML, ainsi, test.php ne devrait inclure que la partie PHP, pas HTML (ici).
Le code contient de multiples erreurs :
password_verify renvoie un booléen et vérifie si un hash (que tu ne donnes pas) correspond à un mdp
il y a une injection SQL via $email vu que la requête n'est pas préparée
if ($donne == false){ est vraie si la requête plante, pas si elle ne renvoie rien / pas de "fetch" pour récupérer ce que renvoie la requête ? Sans peupler $_SESSION non plus ?
à quoi sert le second SELECT en espèce de fallback ? Attribuer le premier compte qui se présente ?!?
Sauf qu'on ne sait pas à quel fichier correspond le second code ni où et comment il intervient (include). Et il manque surtout le script avec le header de redirection.
Bref, il faudrait redonner codes (avec le nom/chemin du fichier correspondant) et message d'erreur également, s'il y a toujours une sortie mais qu'elle n'était vraiment plus produite par le code HTML, ça pourrait être tout et n'importe quoi (d'un BOM en début de fichier à un espace/saut de ligne situé en fin d'un script inclus avant par exemple)
et voici le fichier appelant le header qu j' ai nomé: /test.php
<?php include 'header.php';
header('location:contact.php');
die();
?>
Message d'erreur:
Warning: Cannot modify header information - headers already sent by (output started at /srv/web/plateforme-immo/header.php:5) in /srv/web/plateforme-immo/test.php on line 3
au risque de répéter ce qu'ont dit les autres : tu ne dois *pas* avoir de HTML avant ta fonction header('Location'). Ici tu en as puisque header.php en contient, et que tu appelles la fonction header() après.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Il y en aurait une, mais ce n'est pas considéré comme propre, et suivant les navigateurs cela ne fonctionnera pas. Il est plus courant d'appliquer la logique avant d'afficher, parce que la logique devrait permettre de savoir si on doit afficher quelque chose, si oui quoi, et le cas échéant rediriger ailleurs au lieu d'afficher quelque chose.
Très bien, je vous remercie tous pour vos réponses et votre aide.
En effet ma page test en ne mettant pas de HTML la redirection se fait bien.
pour moi le sujet est résolu.
Encore merci pour les détails et d'avoir pris le temps pour m'aider.
Cordialement
Probleme avec header
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
yasakani no magatama
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
yasakani no magatama
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
yasakani no magatama
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Pas d'aide concernant le code par MP, le forum est là pour ça :)