Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2007, 16h22   #1
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Par défaut Erreur bête d'entêtes que je n'arrive pas à résoudre

Bonjour,

J'ai une eurreur Warning: Cannot modify header information - headers already sent by dans ma page mais je voie pas du tous comment la résoudre sachant qu'il me dit que un fichier que j'inclue a déjà envoyé un header.

Fichier inclu mail.php :

Code :
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
<?php 
function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from ,$piece_jointe = NULL) 
{ 
		$frontiere = '------' . md5(uniqid(mt_rand())); 
		$entete = "Reply-to: $from\n";
		$entete .= "From:$from\n";
		$entete .= "Date: ".date("l j F Y, G:i")."\n";
		$entete .= "MIME-Version: 1.0\n";
		$entete .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
 
 
		//Le message en texte simple pour les navigateurs qui
		//n'acceptent pas le HTML
		$msg .= "--".$frontiere."\n";
		$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
		$msg .= "Content-Transfer-Encoding: 8bit\n\n";
		$msg .= $messtxt."\n\n";
 
		//le message en html original
		$msg .= "--".$frontiere."\n";
		$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
		$msg .= "Content-Transfer-Encoding: 8bit\n\n";
		$msg .= "
      <html>
       <head>
          <title>Un titre ici</title>     
       </head>
       <body>
            ".$messhtml." 
       </body>
      </html>\n\n";
 
    $msg .= "--".$frontiere."--\n";
 
		mail($destinataire, $sujet, $msg, $entete);
}
 
function MailGo($destinataire,$titre_mail)
{
  $messtxt = '
      Message bien recu !!!
  ';
 
  $messhtml = '
  <h1>Message bien recu !!</h1>
  ';  
 
  mail_html($destinataire,$titre_mail,$messtxt, $messhtml, 'admin@admin.com' );
}
?>
Le fichier ou est afficher l'erreur index.php :

Code :
1
2
3
4
5
6
7
<?php 
include("mail.php");
 
MailGo('mail@developpez.com','Titre');
 
header("location: ok.php");
?>
Merci de votre aide.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 16h33   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonjour,

C'est tout à fait normal. Si tu veux que ton header("location: ok.php"); passe, il faut que rien ne puisse être renvoyé en HTML, donc aucun affichage avant!!

Et ton include("mail.php"); affiche bien un résultat sous forme html, ce que le header("location: ok.php"); n'apprécie pas

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 16h51   #3
Membre confirmé
 
Inscription : janvier 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 242
Points : 245
Points : 245
rajoute a la premiere ligne de ton code
ob_start();

Puis avant de faire ton header location, un petit ob_clean();
chaced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 17h09   #4
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
nickel ca marche y a juste a mettre ob_start(); pas besoin de ob_clean();

Merci de ton aide.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 17h14   #5
Membre confirmé
 
Inscription : janvier 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 242
Points : 245
Points : 245
Citation:
Envoyé par Shandler Voir le message
nickel ca marche y a juste a mettre ob_start(); pas besoin de ob_clean();

Merci de ton aide.
Oui, heureusement que les headers ne sont pas pris en compte par ob...
chaced est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h58.


 
 
 
 
Partenaires

Hébergement Web