Redirection php

Bonjour,
J'ai le script suivant :
<?php
header("Location: merci.html");
$TO = "adresse@yahoo.fr";
$h  = "From: " . $TO;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);

?>

Mais la redirection vers la page merci.html ne se fait pas, quelqu'un peut-il m'aider?
Configuration: Windows XP
Firefox 2.0.0.14

5 réponses

  1. Je ne peux pas te dire pourquoi le header() ne marche pas mais dans tous les cas tu peux toujours rajouter du javascript à la fin de tons script php :
    <script language="javascript" type="text/javascript">
    <!--
    window.location.replace("merci.html");
    -->
    </script>
    

    :)
    1. Ah oui, la redirection marche avec le java script merci!! mais mon mail ne s'envoie pas, sauriez-vous pourquoi?
    2. @didy_gwatinikSi je me souviens bien il faut d'abord configurer le serveur SMTP dans le fichier php.ini...
    3. @Sh@tterOuh la la! Vous pouvvez m'expliquer un peu plus svp?
  2. Pourquoi elle ne ce fais pas, y a une erreur ? ton mail est bien envoyé quand même ?

    Dans tous les cas tu devrai faire le header après l'envoi du mail
    1. J'ai mis le header juste avant ?> mais toujours ni mail, ni redirection.
  3. 1- le header en dernier
    envoi ton mail et ensuite tu rediriges

    2- ensuite ton serveur authorise peut etre uniquement des adresses lie a ton domaine (from)
    3- test email

    $TO = "adresse@yahoo.fr";
    $h = "From: " . $TO;
    $message = "";
    while (list($key, $val) = each($HTTP_POST_VARS)) {
    $message .= "$key : $val\n";
    }
    mail($TO, $subject, $message, $h);
    1. Ce script la serait bon?
      <?php

      $TO = "adresse@yahoo.fr";
      $h = "From: " . $TO;
      $message = "";
      while (list($key, $val) = each($HTTP_POST_VARS)) {
      $message .= "$key : $val\n";
      }
      mail($TO, $subject, $message, $h);
      header("Location: merci.html");
      ?>

      Comment savoir si le serveur n'autorise peut etre uniquement des adresses lie. J'ai pas compris
    2. @didy_gwatinikJe ne sais pas si ça peut t'aider mais je sais que je devais initialiser le SMTP lorsque je voulais envoyer un mail. Par exemple sur free je rajoutais en début du script :
      <?php
      ini_set('SMTP','smtp.free.fr');
      ?>
      

      Tu peux toujours essayer on ne sait jamais ^^
  4. J'obtiens une erreur mais je ne comprends strictement rien au php.ini je ne sais même pas comment on fait pour y accéder. A l'aide par pitié lol
    de la ligne 67 a 71 :
    while (list($key, $val) = each($HTTP_POST_VARS)) 
    {
      $message .= "$key : $val\n";
    }
    mail($TO, $subject, $message, $h);
    ?>


    Warning: Variable passed to each() is not an array or object in C:\Program Files\EasyPHP 2.0b1\www\recup.php on line 67
    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\recup.php on line 71