Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 07/01/2011, 15h10   #1
Invité de passage
 
medyo rezzouq
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : medyo rezzouq

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 0
Points : 0
Par défaut probleme apres l'inscription d'un membre

je recois le code ci-dessus lorsque j'appuie sue le button de valider les champs du formulaire le membre s'enregistre dans la base de donnéé mais le probleme que je ressois cet erreur en haut et le membre ne ce redirecté pas vers la page login.php :

Code :
1
2
 
Warning: Cannot modify header information - headers already sent by (output started at /home/clicdown/public_html/st/inscription.php:1) in /home/clicdown/public_html/st/inscription.php on line 63

voila le code d ajout des champs de formulaire dans la table membres

Code :
1
2
3
4
5
6
					try{$req =$bdd ->prepare('insert into membres(utilisateur,motdepasse,email,nom,sexe,prenom,ville,pays,datenaiss) values(?,?,?,?,?,?,?,?,?)');
					    $req->execute(array($_POST['utilisateur'],$_POST['motdepasse'],$_POST['email'],$_POST['nom'],$_POST['sexe'],$_POST['prenom'],$_POST['ville'],$_POST['pays'],$dat));}
					   catch(exception $messag){
					  die('errur : '.$messag->getMessage());}
 
					header("location: login.php");
4systemation est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 02h48   #2
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 302
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 302
Points : 4 480
Points : 4 480
si tu as une erreur "header already sent" c'est que t'as redirection arrive alors qu'une message est déjà affiché.

donc soit il est mal placé soit y a un autre soucis avant ta redirection.
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 23h59   #3
Invité de passage
 
medyo rezzouq
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : medyo rezzouq

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 0
Points : 0
Citation:
Envoyé par Vil'Coyote Voir le message
si tu as une erreur "header already sent" c'est que t'as redirection arrive alors qu'une message est déjà affiché.

donc soit il est mal placé soit y a un autre soucis avant ta redirection.

voila tous le code j'esper que vous m'aidiez


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 <?php      
 if(isset($_COOKIE['id']) and isset($_cookie['utilisateur']) and isset($_COOKIE['motdepasse']) ){$hiden =true; header("location : login.php");}   
    else{$message ='Page d\'inscription :';
	     $message1 ='';
	     $hiden = false;
		  $head ='Source Info > Inscription';
 
		   if(isset($_POST["envoyer"])){
			   //verification du formulaire
			    //verification du formulaire
				 //verification du formulaire
			   if(  strlen($_POST['utilisateur'])<4 or strlen($_POST['utilisateur'])>20 or !preg_match('#^[a-z0-9]+$#i', $_POST['utilisateur']))
			   { $message1 .='le nom d\'utilisateur ne doit pas comporter des caractères speciales, le nombre des caractères et chiffres doit etre entre 4 et 20<br>'; }
 
			if($_POST['motdepasse'] != $_POST['motdepasse1']){$message1 .='';$message1 .='la repitition du mot de passe est incorrecte<br>';}
			  else if(strlen($_POST['motdepasse'])<6 or strlen($_POST['motdepasse'])>15 or !preg_match('#^[a-z0-9]+$#i', $_POST['motdepasse']))
			  { ;$message1 .='le mot de passe doit comporter au moin 6 caractères et ne de passe pas 15,evitez des caractères speciales<br>';}
 
 
			   if(  strlen($_POST['prenom'])<2 or strlen($_POST['nom'])<2 or strlen($_POST['nom'])>20 or strlen($_POST['prenom'])>20  or !preg_match('#^[a-z]+$#i', $_POST['nom']) or !preg_match('#^[a-z]+$#i', $_POST['prenom']) )
			   { $message1 .='le nom ou prenom doit compris entre 4 et 20 caractere, evitez des caractères speciales<br>'; }
 
 
			if( strlen($_POST['ville'])<2 or strlen($_POST['pays'])<2 or strlen($_POST['ville'])>20 or strlen($_POST['pays'])>20  or !preg_match('#^[a-z]+$#i', $_POST['ville']) or !preg_match('#^[a-z]+$#i', $_POST['pays']) )
			   { $message1 .='la ville ou pays sont incorrect<br>'; }
 
			   if(!preg_match('/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $_POST['email']))
			   { $message1 .='l\'email est incorrect<br>'; }
 
			if( $_POST['jour']>31 or $_POST['mois']>12 or $_POST['annee']>2011 or $_POST['annee']<1900  or !preg_match('#^[0-9]+$#i', $_POST['jour']) or !preg_match('#^[0-9]+$#i', $_POST['mois']) or !preg_match('#^[0-9]+$#i', $_POST['annee']) )
			   { $message1 .='la date naissance est incorrecte<br>'; }
 
 
 
 
          if (strlen($message1)<10){ $dat = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'];
			   //////////////////
			   //////////////////
			   include('config.php');
 
 
			     try{$req = $bdd->prepare('select * from membres where utilisateur=? or nom =? or email=?');  
			        $req->execute(array($_POST['utilisateur'],$_POST['nom'],$_POST['email']));
			        $compt = $req->rowCount();}
					catch(exception $messag){
					  die('erreur : '.$messag->getMessage());}
 
					if($compt>0){ 
					     while($row = $req->fetch()){
					           if($_POST['utilisateur']== $row['utilisateur']){$message1="le nom utilisateur deja utilisé";}
							   else if($_POST['nom']== $row['nom']){$message1="le nom est deja utilisé";}
							   else if($_POST['email']== $row['email']){$message1="l'email est deja utilisé";}
					     }
 
					}
 
					else{ 
					try{$req =$bdd ->prepare('insert into membres(utilisateur,motdepasse,email,nom,sexe,prenom,ville,pays,datenaiss) values(?,?,?,?,?,?,?,?,?)');
					    $req->execute(array($_POST['utilisateur'],$_POST['motdepasse'],$_POST['email'],$_POST['nom'],$_POST['sexe'],$_POST['prenom'],$_POST['ville'],$_POST['pays'],$dat));}
					   catch(exception $messag){
					  die('errur : '.$messag->getMessage());}
 
					header("location: login.php");}
 
 
 
 
 
 
			$bdd = null;
 
 
		    }}
 
 
 
	    }     
 
 
 
       if($hiden == true){header('location: profil.php');}
	   else if($hiden != true){
	   $valeur = '<div class="data"><div class="auter"><b>'.$message1.'</b></div><br><br><form action="inscription.php" method="post">
          <p>
          <div class="val1">  <span class="bold1">votre Nom d\'utilisateur :<br></span>
			<span class="bold1">votre Mot de passe :<br></span>
			<span class="bold1">Répeter Le Mot de passe :<br></span>
			<span class="bold1">votre Nom : <br></span>
			<span class="bold1">votre Prénom : <br></span>
			<span class="bold1">Sexe:<br> </span> 
			<span class="bold1">votre ville : <br></span>
			<span class="bold1">votre pays :<br></span>
			<span class="bold1">votre email :<br></span>
			<span class="bold1">Date Naissance :<br></span>
			<span class="bold1">Lien d\'une photo :<br></span>
			<br><input type="submit" value="Valider"  name="envoyer"/></div>
 
			<div class="val2"><input type="text" name="utilisateur" /><br>
			<input type="password" name="motdepasse" /><br>
			<input type="password" name="motdepasse1" /><br>
			<input type="text" name="nom" /><br>
			<input type="text" name="prenom" /><br>
			<input type="radio" name="sexe" value="male" checked="checked" /> Male:   <input type="radio" name="sexe" value="femelle" />  Femelle<br>
			<input type="text" name="ville" /><br>
			<input type="text" name="pays" /><br>
			<input type="text" name="email" /><br>
			Jour : <input type="text" name="jour"size=2  /> Mois : <input type="text" name="mois" size=2 /> Année : <input type="text" name="annee" size = 6 /><br>
			<input type="text" name="photo" /><br>
			</div>
 
 
          </p>
     </form></div>'; require('index.php');}
 
	  ?>
4systemation est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 11h01   #4
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

Evites les messages en gras et rouge, ca peut être mal interprêté par la communauté.

En ce qui concerne ton code, j'ai repéré une erreur :

Code :
1
2
 
{ ;$message1 .='le mot de passe doit comporter au moin 6 caractères et ne de passe pas 15,evitez des caractères speciales<br>';}
Comme tu vois, il y a un point-virgule en début de traitement de condition.
PHP doit te renvoyer une erreur de syntaxe, d'où une chaine avant le header.

C'est peut-être autre chose aussi.

Pour bien débugger un code, il faut passer par des echo et autre print_r afin de savoir ce qui se passe avant d'enchaîner sur un header.

j'espère que ca pourra t'aider.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 11h32   #5
Invité de passage
 
medyo rezzouq
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : medyo rezzouq

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 0
Points : 0
Citation:
Envoyé par anthony89 Voir le message
Bonjour,

Evites les messages en gras et rouge, ca peut être mal interprêté par la communauté.

En ce qui concerne ton code, j'ai repéré une erreur :

Code :
1
2
 
{ ;$message1 .='le mot de passe doit comporter au moin 6 caractères et ne de passe pas 15,evitez des caractères speciales<br>';}
Comme tu vois, il y a un point-virgule en début de traitement de condition.
PHP doit te renvoyer une erreur de syntaxe, d'où une chaine avant le header.

C'est peut-être autre chose aussi.

Pour bien débugger un code, il faut passer par des echo et autre print_r afin de savoir ce qui se passe avant d'enchaîner sur un header.

j'espère que ca pourra t'aider.

j ai supprimer le ; mais meme sa le probleme reste j'espere que vous m'aidiez svp
4systemation est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 11h51   #6
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Manifestement tu as soit une erreur PHP ou une erreur gérée par ton code.

Il faudrait que tu ré-exécute ton code mais en commentant ton header en ligne 63 :

Code :
1
2
 
//header("location: login.php");}
A mon avis tu auras des choses d'affichées...
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 16h00   #7
Invité de passage
 
medyo rezzouq
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : medyo rezzouq

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 0
Points : 0
Citation:
Envoyé par anthony89 Voir le message
Manifestement tu as soit une erreur PHP ou une erreur gérée par ton code.

Il faudrait que tu ré-exécute ton code mais en commentant ton header en ligne 63 :

Code :
1
2
 
//header("location: login.php");}
A mon avis tu auras des choses d'affichées...
je sais que le probleme et generé par la fonction header
mais je peut pas l'eleminer il faut que je redirecte l'utilisateur apres son inscription y a til d autre solution??
4systemation est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 19h38   #8
Invité de passage
 
medyo rezzouq
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : medyo rezzouq

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 0
Points : 0
vraiment c un probleme personne ne m a aider de le resolu meme si j ai met le code de la page entiere
4systemation est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h48.


 
 
 
 
Partenaires

Hébergement Web