Rechercher : dans
Par :

[PHP] Problème Header

Dernière réponse le 19 déc 2008 à 11:40:31 onurb07, le 24 jui 2006 à 10:42:55 
 Signaler ce message aux modérateurs

Bonjour à tous,

J'ai une fonction qui fait l'envoi de mail. J'utilise un header pour renvoyer vers une page de remerciement. J'ai vu beaucoup de choses la-dessus sur le net, pourtant je n'arrive pas à résoudre ce problème dans mon code.

Warning: Cannot modify header information - headers already sent by (output started at /mnt/128/free.fr/d/0/proplan/formmail.php:5) in /mnt/128/free.fr/d/0/proplan/formmail.php on line 6


Voici mon code :

<body><?php
Header("Location: http://proplan.free.fr/merci.php");
$TO = "proplan@free.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);


?>

</body>

Pourriez-vous m'aider ?

Merci à tous

Meilleures réponses pour « [PHP] Problème Header » dans :
[PHP] Headers already sent by..... Voir Lorsque vous utilisez une fonction PHP qui manipule les en-têtes HTTP comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où...
[PHP] Fonction mail() VoirLa fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
PHP - Les cookies et les en-têtes HTTP VoirLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Darshu, le 24 jui 2006 à 11:15:22

Salut. C'est l'erreur classique des header() : il faut le mettre AVANT tout code HTML, c'est la toute première chose à faire.

Donc ton code c'est plutôt

<? header("location:http://proplan.free.fr/merci.php"); ?>
<HTML>
<HEAD>
....


T'as pensé à regarder sur Google avant de poser ta question ? 

Répondre à Darshu

2

bowbow13, le 27 mai 2007 à 14:13:41

Moi je comprend pas c'est la meme erreur pourtant mon header est placé avant voici un bout du code source :
<?
function redirect($url)
{
header("location:$url");
}
?>
<html>
<?
$saut="<br/><br/>";
/*formulaire d identification pour administrateur et client*/
echo("<form name=\"formulaire\" action=\"identification.php\" method=\"get\">");
echo("Login :$saut");
echo("<input type=\"text\" name=\"login\"/>$saut");
echo("Mots De Passe :$saut");
echo("<input type=\"password\" name=\"mdp\"/>$saut");
echo("<input type=\"submit\" value=\"validation\"/>");

?>
<?
..... interrogation de la base de donné et recupération des infos
..... verification des infos et enfin la function
if($affiche[0]=="a" || $affiche[0]=="A")
{
$lien="./administration.php";
redirect($lien);

}
else
{
$lien="produits.php";
}
}
else
{
$lien="erreur.php";
}
}
else
{
$lien="erreur.php";
}
}

/*verification de du pseudo*/
}
echo("</form>");
mysql_close($connectServer);

?>
</body>
</html>

Répondre à bowbow13

3

Herbert Jonere, le 22 aoû 2007 à 12:39:03
  • +2

Non, en fait la fonction "redirect" qui appelle ton header n'est exécutée que bien plus tard, alors que de nombreuses balises html ont déjà été affiché.
Utiliser une fonction pour retarder l'appel de l'header ne marchera pas.

Répondre à Herbert Jonere

4

Alain42, le 22 aoû 2007 à 13:36:50

Tu peux peut $etre t'en sortie en "passant" toput le code php avant les balises <html> comme ceci:

SVP utilises les tags php normalisés <?php ?>

<?php
function redirect($url)
{
header("location:$url");
}
//..... interrogation de la base de donné et recupération des infos
//..... verification des infos et enfin la function
if($affiche[0]=="a" || $affiche[0]=="A"){
	$lien="./administration.php";
	redirect($lien);
}else{
	$lien="produits.php";
}

else
{
$lien="erreur.php";
}
}
else
{
$lien="erreur.php";
}
}

/*verification de du pseudo*/
}
?>
<html>
<body>
<?php
$saut="<br/><br/>";
/*formulaire d identification pour administrateur et client*/
echo("<form name=\"formulaire\" action=\"identification.php\" method=\"get\">");
echo("Login :$saut");
echo("<input type=\"text\" name=\"login\"/>$saut");
echo("Mots De Passe :$saut");
echo("<input type=\"password\" name=\"mdp\"/>$saut");
echo("<input type=\"submit\" value=\"validation\"/>");


echo("</form>");
mysql_close($connectServer);

?>
</body>
</html>


sinon tu peux aussi lancer une page php par du Javascript en mettant où tu veux dans ta page, donc dans des test if / else

<script language="javascript">document.location.href="ton_script.php"; </script>

Répondre à Alain42

5

abside, le 23 jan 2008 à 05:55:14

Si tu veux régler le problème des balises HTML APRES le header, tu peux toujours utiliser ob_start(); et ob_end_flush; ça bufferise ton code, autrement dit c'est comme si tu plaçai dans une variable au lieu de faire des echo, avant de l'afficher en dernier, et donc après les header et les session_sart() (cf manuel)

Répondre à abside

6

 mec perdu , le 19 déc 2008 à 11:40:31

Merci

mais, j'ai un autre problème, a partir de la condition if ($nbLigne==0)

voici mon code :

<?php include("session.php");?>


<?php

include('connex.php');

$identifiant = $_POST["identifiant"];
$passwd =$_POST["password"];

$sql = "SELECT login FROM adherant WHERE login = '$identifiant' AND password = '$passwd'";
$result = mysql_query($sql);

while ($ligne = mysql_fetch_array($result))
{
$identifiant = $ligne['login'];
$passwd = $ligne['password'];
}

$nbLigne=mysql_num_rows($result);

if ($nbLigne==0)
{

}
else
{

$_SESSION['identifiant']= $identifiant;
$_SESSION['password']= $passwd;
header("Location: index.php?identifiant=$identifiant");
}

?>

Répondre à mec perdu