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 :

la fonction header ne marche pas [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut la fonction header ne marche pas
    Bonjour, je recupere des donnees avec un formulaire puis je traite les données avec le fichier traitement.php donc voici le code ci dessous.
    Je n'arrive pas à faire marcher le header à la fin du code (j'aimerais que lorsque le traitement est fait il affiche la page indiquer. Dans mon cas il affiche une page blanche.

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    <?php
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement 
    remplis :<br/><br/>";
    $msg_ok = "Votre demande a bien été prise en compte.";
    $message = $msg_erreur;
    define('MAIL_DESTINATAIRE','accueil@ressources-territoires.com'); // remplacer par votre email
    define('MAIL_SUJET','Bulletin Inscription pour la formation');
     
    // vérification des champs
    if (empty($_POST['civilite'])) 
    $message .= "Votre civilité<br/>";
    if (empty($_POST['situation']))
    $message .= "Votre situation<br/>";
    if (empty($_POST['nom'])) 
    $message .= "Votre nom<br/>";
    if (empty($_POST['prenom']))
    $message .= "Votre prenom<br/>";
    if (empty($_POST['fonction']))
    $message .= "Votre fonction<br/>";
    if (empty($_POST['adresse'])) 
    $message .= "Votre adresse<br/>";
    if (empty($_POST['code_post']))
    $message .= "Votre code postal<br/>";
    if (empty($_POST['ville']))
    $message .= "Votre ville<br/>";
    if (empty($_POST['email']))
    $message .= "Votre email<br/>";
    if (empty($_POST['tel_pro']))
    $message .= "Votre numero de telephone professionnel<br/>";
    if (empty($_POST['tel_perso']))
    $message .= "Votre numero de telephone personnel<br/>";
    if (empty($_POST['organisme']))
    $message .= "Votre organisme<br/>";
    if (empty($_POST['email_orga']))
    $message .= "Email de l'organisme<br/>";
    if (empty($_POST['nom_responsable']))
    $message .= "Le nom du responsable<br/>";
    if (empty($_POST['opca']))
    $message .= "Opca<br/>";
    if (empty($_POST['remboursement']))
    $message .= "Demande de remboursement<br/>";
     
    if (empty($_POST['comments'])) 
    $message .= "Votre message<br/>";
     
    if (empty($_POST['dejeuner']))
    $message .= "Vous dejeuner<br/>";
     
    if (empty($_POST['recevoir']))
    $message .= "Vous dejeuner<br/>";
     
     
    // si un champ est vide, on affiche le message d'erreur et on stoppe le script
    if (strlen($message) > strlen($msg_erreur)) {
       echo $message; die();
    }
     
    // sinon c'est ok => on continue
    foreach($_POST as $index => $valeur) {
      $$index = stripslashes(trim($valeur));
    }
     
     
    //Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From: {$_POST['nom']} "."<{$_POST['email']}>\r\n";
    $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    // préparation du corps du mail
     
     
    $mail_corps  = "Message de : $civilite $nom $prenom\n";
    $mail_corps .= "Situation : $situation\n";
    $mail_corps .= "Fonction : $fonction\n";
    $mail_corps .= "Adresse : $adresse,$code_post $ville\n";
    $mail_corps .= "Email : $email\n";
    $mail_corps .= "Telephone professionnel : $tel_pro\n";
    $mail_corps .= "Telephone personnel : $tel_perso\n";
    $mail_corps .= "Organisme : $organisme\n";
    $mail_corps .= "Organisme : $email_orga\n";
    $mail_corps .= "Nom du responsable : $nom_responsable\n";
    $mail_corps .= "Dejeuner au self du CNFPT : $dejeuner\n";
    $mail_corps .= "Recevoir les actualites du programme : $recevoir\n";
    $mail_corps .= "Type de formation: $comments\n";
     
    // envoi du mail
    if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
      //Le mail est bien expédié
      echo $msg_ok;
    } else {
      //Le mail n'a pas été expédié
      echo "Une erreur est survenue lors de l'envoi du formulaire par email";
    }
     
     
    header('Location: http://www.ressources-territoires.com/bulletin-inscription.php');
     
    ?>

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    la gestion des erreurs est elle activée ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    on ne t'as jamais dit qu'il ne fallait rien écrire avant un header ?
    pour la page blanche, vérifie la gestion des erreurs comme l'a dit syl 2095, mais regarde aussi dans le code source de la page html. quelquefois, ça ne s'affiche pas bien en fonction du code html qui est autour ...

    Sinon, il faut savoir qu'il ne faut jamais mettre, ni un session_start, ni un header après un code html.

    si l'on veux, on peu utiliser les fonctions de temporisation (voir les fonctions ob_start(à, ob_flush(), ob_clear() etc.), mais c'est un remède bancal ...

    a+

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut
    Oui la gestion des erreurs est activée enfin je crois!

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 500
    Billets dans le blog
    1
    Par défaut
    mais c'est un remède bancal
    Pourquoi bancal ? Moi, je trouve ça très pratique...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'ignores si ce php est complet, ou pire s'il est include.
    Mais de toute façon, tu vois sur ce que tu nous montres,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
      //Le mail est bien expédié
      echo $msg_ok;
    } else {
      //Le mail n'a pas été expédié
      echo "Une erreur est survenue lors de l'envoi du formulaire par email";
    }
     
    header('Location: http://www.ressources-territoires.com/bulletin-inscription.php');
    Avant ton header tu envoie un texte au visiteur, donc du html,
    donc un header, et tu ne peux donc plus en envoyer un autre !

  7. #7
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Pourquoi bancal ? Moi, je trouve ça très pratique...
    Moi aussi je trouve cela très pratique, et je l'utilise encore d'ailleurs
    Mais a ce qu'il paraît, ce n'est pas le top niveau performances ...
    Ce n'est pas moi qui le dit, "on" me l'a dit. selon cette personne, ce n'est pas trop grave si on code en procédural (= pas en POO). (et cette personne étant un fan de la POO, le codage en procédural pour lui c'est une horreur )

    en bref, ce n'est pas très académique, mais après, on fait ce qu'on veux ... pour ma part, le principal c'est que ça marche bien et que ce soit pratique, donc j’utilise encore (beaucoup) ces fonctions.

    J'ai dit "bancal" parce que ce n'est en fait qu'un dépannage, et qu'il vaut mieux faire tout de suite bien ... mais quand on a pas envie de tout refaire, la bufferisation de sortie est très (très) pratique

    amicalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction qui ne marche pas
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/07/2007, 18h41
  2. "header()" ne marche pas
    Par Golork dans le forum Langage
    Réponses: 3
    Dernier message: 04/03/2007, 16h51
  3. Fonction qui ne marche pas sous FireFox
    Par Foudébois dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2006, 14h35
  4. [Forum] Fonction mail() ne marche pas chez OVH ?
    Par quanou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/11/2005, 13h11
  5. redirection header ne marche pas!!!
    Par duga dans le forum Langage
    Réponses: 4
    Dernier message: 01/10/2005, 11h58

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