Rediriger après session_start(), comment faire ?

Bonjour tout le monde :slight_smile:


			// Envoi du mail
			if (mail($cible, $objet, $message, $headers))
			{
				//echo '<p>'.$message_envoye.'</p>'."\n";
			header('Location: http://www.domaine.tld/index.php?page=message_envoye');
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>'."\n";
			};

Avant ce morceau de code j’ai un session_start() donc je ne peux pas faire de redirection à la place d’echo en PHP (erreur headers already sent by…)

Ma question est la suivante : comment faire cette redirection ?

Merci d’avance :wink:
Edité le 10/08/2010 à 21:13

Je viens de trouver une solution, mais est-ce propre ?

J’ai remplacé le texte dans la variable message_envoye par :


<meta http-equiv='refresh' content='0;URL=http://www.domaine.tld/site/index.php?page=message_envoye'>

Edité le 10/08/2010 à 21:38

A efffacer
Edité le 10/08/2010 à 21:12

Hum, pour moi le session_start() ne fait pas de sortie, et le header() devrait fonctionner… sauf si bien sûr tu as laissé trainer des echo/print/truc hors <?php ?>. Accessoirement, la solution du meta, n’est pas top je trouve -> autant envoyer sur la bonne page directement dans le formulaire, et afficher un message “propre” en fonction du cas (envoi OK, envoi KO).

Tout a fait, header ne gène pas le session start. Faut vérifier si tu ne fait pas appel à header avant

Il y a une solution sinon, c’est d’utiliser la fonction de gestion de temporisation de sortie de php :
php.net…