IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

include + header = bug


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut include + header = bug
    Bonjour,
    j'ai un problème avec mon script!
    je pense qu'il y a un rapport avec mon include que je mets au début dema page...
    sui vous avuez une solution siouplait!
    alors voilà mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Liste des entreprises</title>
    </head>
    <body>
     
    <?php
    include ('connection.php');
    //On envoit les données sur mysql
     
    $requete = "UPDATE utilisateur SET valid='1' WHERE id_user='$id' ";
    $result = mysql_query ($requete,$idConnexion);
     
     
     
    //envoi d'un mail si mail il y a 
     
    $query= "select * from utilisateur WHERE id_user=". $id ;
    $res= mysql_query ($query,$idConnexion);
    $email=mysql_result($res,0,'email');
    $login=mysql_result($res,0,'login');
    $passe=mysql_result($res,0,'passe');
     
     
        if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || $email!=0)
        {// message à la boite 
    require "../log/mime_mail.class.php"; 
     
    $mail = new mime_mail(); 
    $mail->to = "$email"; // Adresse email de reception 
    $mail->subject = "Validation du CFA"; // Sujet 
    $mail->body = "Validation "; // Corps du message 
    $mail->from = "noreply@stagemploi.org"; // Adresse email de l'expediteur (optionnel) 
    $mail->headers = "esther@info.com"; // Return-Path (optionnel)
    $mail->send(); // envoi du message
     
    	}
     
    header('Location: gestion_jeunes.php?deb=0');
     
    ?>
    et
    le message d'erreur:
    Warning: Cannot modify header information - headers already sent by (output started at /home/cfabtpoi/www/admin/valider.php:9) in /home/cfabtpoi/www/admin/valider.php on line 44
    -> l.44c'est le header!

    info -> cela seulement quad je suis sur le serveur car en local ça marchait impec... :/


    merci de vos réponses!

  2. #2
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    L'erreur vient du faite que ton header se trouve après ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Liste des entreprises</title>
    </head>
    <body>
    Alors qu'il doit se trouver avant tout chose qui apparait à l'écran, ici avant le doctype.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    merci d'avoir répondu!

    j'ai lu la doc de php et de dev. donc j'ai vu qu' on ne devait pas mettre de code avant header et tout ça et tout ça mais alors pourquoi en local ça marchait?
    et comment je fais pour exécuter un code puis retourner sur une page si je ne peux pas faire header ???

  4. #4
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    tu te sert du header pour rediriger l'utilisateur ?

    si c'est le cas, ce n'est pas mais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    header('Refresh: 10; url=http://www.mysite.com/otherpage.php');
    echo 'You will be redirected in 10 seconds';
    ?>
    et ceci a la premiere ligne de ton script, rien avant
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    oui mais si je veux d'abord enregister des données dans ma bdd???
    comment je peux faire?

    en tout cas merci d'avoir répondu!

  6. #6
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    et bien il n'y a pas de probleme avec le refresh, vu qu'il va finir la page et au bout des 10 secondes en charger une nouvelle
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    j'ai essayé avec le refresh mais j'ai le même problème..
    :/

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Tu peux faire tout ce que tu veux comme traitement avant ton header('location...'); tant qu'il ne s'agit pas d'affichage ou d'envoi de headers.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    merci Sylvain71 c'est bien ce que je pensais donc normalement je peux enregistrer dans ma bdd sans que cela gêne si j'ai bien compris??
    -> en fait en local ou sur un serveur avec easyphp ça marchait mais maintenant que je suis sur ovh problème!
    -> j'ai demandé si ils avaient déjà eu des prob avec les includes et la réponse est non..
    -> donc il faut que je regarde du coté du .ini mais en fait
    1)aucune idée de comment changer le .ini sur ovh(par 1 .htaccess..oui j'veux bien mais ça veut dire quoiiiii )
    2) que changer ds le .ini pour que ma redirection se fasse!!!


    si vous savez svp!

    merci!

    -> je sais pas si le fait que je parle d'ovh soit 1 problème si oui dites le moi j'éditerais!
    merci !

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Non non tu ne réagis pas comme il faut.

    Ton code n'est pas bon mais il marche sur certaines configurations à cause du laxisme de de PHP. Se reposer là dessus ne t'apportera que des problèmes. La preuve ...

    Ce qu'il faut faire c'est corriger ton code pour ne plus avoir de header qui se ballade n'importe où (commencer par séparer traitements et mise en page) et coder avec les options de configuration les plus stricts possibles.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    bon ok alors là j'm'y perds..
    pas que je soit de mauvaise volonté hein!
    mais bon...
    comment je peux faire pour que ma page soit rediriger sachant que là actuellement quand dans une page j'ai
    -include('connection.php');
    -requête sql
    -redirection par header

    1 mes données s'enregistrent
    2 ma redirection plante

    qu'est ce qu'il faut que je change dans mon code pour que ce *%&$£$ () de site soit actif???

    encore une fois merc de vos réponses!!

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Pour ne pas que la fonction header plante (ou plutôt t'envoie un warning), il ne faut pas que le moindre affichage soit fait avant elle. Affiche ça veut dire : une balise html, un echo php, un espace, un saut de ligne en début de fichier ...

    En fait je dirais même ta page ne sert carrément à rien là.
    Tu vas facilement comprendre l'absurdité de ce bout de code avec cette question :
    Pourquoi tu affiches de l'html sachant que tu rediriges tout de suite après et que l'utilisateur ne le verra pas ?

  13. #13
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    bon bah sinon n'utilise pas les header PHP, mais les header html
    comme ca plus de soucis




    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <META HTTP-EQUIV="Refresh" CONTENT="3; URL=./gestion_jeunes.php?deb=0">
    <title>Liste des entreprises</title>
    </head>
    <body>
     
    <?php
    include ('connection.php');
    //On envoit les données sur mysql
     
    $requete = "UPDATE utilisateur SET valid='1' WHERE id_user='$id' ";
    $result = mysql_query ($requete,$idConnexion);
     
     
     
    //envoi d'un mail si mail il y a 
     
    $query= "select * from utilisateur WHERE id_user=". $id ;
    $res= mysql_query ($query,$idConnexion);
    $email=mysql_result($res,0,'email');
    $login=mysql_result($res,0,'login');
    $passe=mysql_result($res,0,'passe');
     
     
        if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || $email!=0)
        {// message à la boite 
    require "../log/mime_mail.class.php"; 
     
    $mail = new mime_mail(); 
    $mail->to = "$email"; // Adresse email de reception 
    $mail->subject = "Validation du CFA"; // Sujet 
    $mail->body = "Validation "; // Corps du message 
    $mail->from = "noreply@stagemploi.org"; // Adresse email de l'expediteur (optionnel) 
    $mail->headers = "esther@info.com"; // Return-Path (optionnel)
    $mail->send(); // envoi du message
    	
    	}
    ?>
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    et bien je n'affiche pas de l'html.. :/
    enfin là maintenant dans mon code j'ai enlevé tout ce qui était meta et tout et tout..
    tout ce qui me reste c'est
    <?php
    include('connection.php');
    //puis mes requetes sql
    /puis mon header

    ?>

    il est où le problème??

  15. #15
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    et bien je n'affiche pas de l'html.. :/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Liste des entreprises</title>
    </head>
    <body>
     
    <?php
    include ('connection.php');
    :')


    tout ce qui me reste c'est
    <?php
    include('connection.php');
    //puis mes requetes sql
    /puis mon header

    ?>
    Es tu sûr qu'il n'y a aucun espace, saut de ligne, rien du tout avant ton <?php ??

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    oui euh...
    depuis mon premier post je les avais enlevé aprés avoir lu le manuel..
    et pour les espaces nan le <?php
    est juste au tout tout tout au début de ma page...

  17. #17
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Fait un copier coller de ton code entier parce que là du coup on sait plus trop ce qu'il reste.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    include('connection.php3');
     
    						$datedujour=date("j/m/Y");
    						$nom_entreprise = addslashes($nom_entreprise);
    						$contact = addslashes($contact);
    						$adresse = addslashes($adresse);
    						$ville = addslashes($ville);
    						$email = addslashes($email);
    						$formation = addslashes($formation);
    						$experience = addslashes($experience);
    						$salaire = addslashes($salaire);
    						$horaires = addslashes($horaires);
    						$info = addslashes($info);						
     
     
    		$requete = "INSERT INTO offres ( date, nom_entreprise, contact, adresse , code_postal, ville, tel, email, fap, qualification, experience, permis, date_debut, salaire, horaires, type_contrat, info) VALUES('$datedujour', '$nom_entreprise', '$contact', '$adresse', '$code_postal', '$ville', '$tel', '$email', '$fap', '$formation', '$experience', '$permis', '$date_debut',  '$salaire', '$horaires', '$type_contrat', '$info' )";
    		$result = mysql_query ($requete,$idConnexion);
    		$resultat_sql3 = mysql_query("select * from fap  where classe='$fap' ",$idConnexion);
            $name = mysql_result($resultat_sql3,0,"lib_fap");
     
     
    		$query = mysql_query( "INSERT INTO entreprise ( date, nom_entreprise, contact, adresse, code_postal, ville, tel, email,fap) VALUES('$datedujour', '$nom_entreprise', '$contact', '$adresse', '$code_postal', '$ville', '$tel', '$email','$fap')"); 
     
     
    				// recuperation de l'email du conseiller
    	$resultat_texte = mysql_query("select email_conseiller from parametrage where statut='1' ",$idConnexion);
    	$i = 0;
    	$mail_user = mysql_result($resultat_texte,$i,"email_conseiller");
    				// message à la boite 
    	require "mime_mail.class.php"; 
    	$mail = new mime_mail(); 
    	$mail->to = "$mail_user"; // Adresse email de reception
    	$mail->subject = "Nouvelle offre d'une entreprise publiée sur le site"; // Sujet 
    	$mail->body = "OFFRE D'EMPLOI\n\n Structure: $nom_entreprise\n Famille de métier concernée: $name "; // Corps du message 
    	$mail->from = "noreply@cfa.fr"; // Adresse email de l'expediteur (optionnel) 
    	$mail->headers = "esther@pulsar-informatique.com"; // Return-Path (optionnel)
    	$mail->send(); // envoi du message
     
     
     header ('Location: fin_offre.php');
     
    ?>
    voilà le code tout entier!

    et si vraiment vous êtes à fond dedans l'adresse est ici
    vous m'êtez n'importe quoi et là quand vous appuyez sur envoyer c'est sur la page du dessus qu'on atterit!


    franchement merci beaucoup de prendre tout ce temps !!

  19. #19
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Comme très souvent, la solution est dans le message d'erreur
    Cannot modify header information - headers already sent by (output started at /home/cfabtpoi/www/connection.php3:6)

    connection.php3 : ligne 6 : affichage de quelque chose

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    oui mais non car j'ai fait une page test pour voir si justement le problème ne venait pas de mes identifiants de connection et donc avec mon code de connection.php3 je peux créer une page...
    maispar contre je suis en train de me demander si le php3 ne pourrait pas les gêner??
    mais bon j'ai plein de fichier qui plante et pourtant le fichier est en .php...
    alors bon..
    j'vais changer le .php3...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2008, 19h02
  2. Fichier WMP(HD Photo) avec miniature intégré, probleme de header ? Bug étrange ?
    Par archimed111 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 08/08/2008, 12h57
  3. include headers c dans un prog en c++
    Par grabriel dans le forum C++
    Réponses: 17
    Dernier message: 24/04/2008, 16h33
  4. Un include qui bug
    Par kevinf dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2007, 19h34
  5. [compil] #include <header> ou #include <head
    Par guejo dans le forum MFC
    Réponses: 5
    Dernier message: 02/06/2004, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo