probleme d'entete

Mammouth du PHP | 601 Messages

15 sept. 2009, 15:38

Bonjour,
J'ai un message d'erreur mais je ne comprend pas ?

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /home/web/6tnline.com/ftp/www/inscription/class/class.pdo.php:129) in /home/web/6tnline.com/ftp/www/inscription/requete.php on line 35
<?php include("class/class.pdo.php");
$connection = new Connection();
$pseudo=$_POST['pseudo'];
$mail=$_POST['mail'];
$nom=$_POST['nom'];
$motDePasse=$_POST['motDePasse'];
$motDePasse2=$_POST['motDePasse2'];
$prenom=$_POST['prenom'];
//echo 'tot';
if (
	isset($pseudo) && !empty($pseudo) &&
	isset($mail) && !empty($mail) &&
	isset($nom) && !empty($nom) &&
	isset($motDePasse) && !empty($motDePasse) &&
	isset($motDePasse2) && !empty($motDePasse2) &&
	isset($prenom) && !empty($prenom)
	) 
	 {
		if($motDePasse2 != $motDePasse)
		{
			$message="vos mot de passe doivent être identiques";
			header('Location:inscription.php?message='.urlencode($message));
		}
		else
		{
			$motDePasse=md5($motDePasse);
			$sql="
				INSERT INTO inscription (id, pseudo, mail, nom, prenom, motDePasse, activationCompte)
				VALUES (NULL , '$pseudo', '$mail', '$nom', '$prenom', '$motDePasse', 0);";
			$result= $connection->select($sql);
			$sql="SELECT id FROM inscription order by id asc";
			$result= $connection->select($sql);
			foreach ($result as $variable) {$idActivationCompte= $variable['id'];}
			
		    $entetes='Content-Type: text/html; charset="iso-8859-1"'."\n";
		    $entetes.='Content-Transfer-Encoding: 8bit';
		    $messageMail ='<html><head><title>activation de votre compte</title></head>
		    <body>
		    	Bonjour,
		    	<p>
		    		Pour activer cotre compte il est impératif de la valider en cliquant  sur ce lien :
		    	</p>
		    	<p>
		    		<a href="http://'.$_SERVER['HTTP_HOST'].'/inscription/activationCompte.php&versus='.$idActivationCompte.'"
		    		 title="activer votre compte">Activez votre compte</a>
		    	</p>
		    	<p>
		    		merci
		    	</p>
		    </body></html>';
			mail($mail, 'inscription', $messageMail, $headers);
			$message="Votre inscription à été prise en compte, vous devez vous connectez";
			header('Location:/inscription/index.php?message='.$message);
Merci
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Eléphant du PHP | 369 Messages

15 sept. 2009, 16:04

Salut,
Bonjour,
J'ai un message d'erreur mais je ne comprend pas ?

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /home/web/6tnline.com/ftp/www/inscription/class/class.pdo.php:129) in /home/web/6tnline.com/ftp/www/inscription/requete.php on line 35
<?php include("class/class.pdo.php");
$connection = new Connection();
$pseudo=$_POST['pseudo'];
$mail=$_POST['mail'];
$nom=$_POST['nom'];
$motDePasse=$_POST['motDePasse'];
$motDePasse2=$_POST['motDePasse2'];
$prenom=$_POST['prenom'];
//echo 'tot';
if (
	isset($pseudo) && !empty($pseudo) &&
	isset($mail) && !empty($mail) &&
	isset($nom) && !empty($nom) &&
	isset($motDePasse) && !empty($motDePasse) &&
	isset($motDePasse2) && !empty($motDePasse2) &&
	isset($prenom) && !empty($prenom)
	) 
	 {
		if($motDePasse2 != $motDePasse)
		{
			$message="vos mot de passe doivent être identiques";
			header('Location:inscription.php?message='.urlencode($message));
		}
		else
		{
			$motDePasse=md5($motDePasse);
			$sql="
				INSERT INTO inscription (id, pseudo, mail, nom, prenom, motDePasse, activationCompte)
				VALUES (NULL , '$pseudo', '$mail', '$nom', '$prenom', '$motDePasse', 0);";
			$result= $connection->select($sql);
			$sql="SELECT id FROM inscription order by id asc";
			$result= $connection->select($sql);
			foreach ($result as $variable) {$idActivationCompte= $variable['id'];}
			
		    $entetes='Content-Type: text/html; charset="iso-8859-1"'."\n";
		    $entetes.='Content-Transfer-Encoding: 8bit';
		    $messageMail ='<html><head><title>activation de votre compte</title></head>
		    <body>
		    	Bonjour,
		    	<p>
		    		Pour activer cotre compte il est impératif de la valider en cliquant  sur ce lien :
		    	</p>
		    	<p>
		    		<a href="http://'.$_SERVER['HTTP_HOST'].'/inscription/activationCompte.php&versus='.$idActivationCompte.'"
		    		 title="activer votre compte">Activez votre compte</a>
		    	</p>
		    	<p>
		    		merci
		    	</p>
		    </body></html>';
			mail($mail, 'inscription', $messageMail, $headers);
			$message="Votre inscription à été prise en compte, vous devez vous connectez";
			header('Location:/inscription/index.php?message='.$message);
Merci
Normal, le header *ne peut* se trouver qu'en tête de fichier.
Rien devant sinon ca marche pas. (j'entends pas la: aucun accès server)

Autrement dit header("Locat...") ne peut, en aucun cas foctionner tel que positionné ainsi dans ton script.

@+ ;)

EDIT: Tu peux, en revanche, utiliser JS... mais pense au fait que tous le monde ne la pas d'activé.
Modifié en dernier par FuZZyLine le 15 sept. 2009, 16:24, modifié 2 fois.

Mammouth du PHP | 2937 Messages

15 sept. 2009, 16:19

Vérifie si le fichier inclus au tout début ne comporte pas une ligne vierge à la fin.

Mammouth du PHP | 991 Messages

15 sept. 2009, 16:26

Vérifie si le fichier inclus au tout début ne comporte pas une ligne vierge à la fin.
Ou au début , ou alors le caractère BOM.

VB te parle d'un retour chariot après (ou avant) le <?php et ?>

Bye Hawk
DevOps, Symfony4, Hoa