Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2805 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec Header...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec Header...

n°485785
benoleg
Posté le 13-08-2003 à 10:34:25  profilanswer
 

Bonjour,  
 
J'ai un problème avec le développement d'une base de données mysql en PHP.  
J'aimerais insérer des données dans une base "membre" à l'aide d'un formulaire. Jusqu'ici pas de problème. Comme je débute, je m'appuie sur un exemple récupéré sur le web. Mais en changeant les champs de la base, l'insertion d'un nouveau membre ne fonctionne plus. Le message suivant apparait :  
 
" Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\projet1\gkdpro\protec\adduser.php3:2) in c:\program files\easyphp\www\projet1\gkdpro\protec\adduser.php3 on line 61".  
 
La ligne 61 correspond à ceci :  
 
"header("Location:creation_compte.php3?id=$id&pseudo=$new_pseudo" )";  
 
Je ne sais plus du tout comment faire. Quelqu'un pourait-il m'eclairer un peu sur ce message d'erreur???
 
 
Voici le code complet :  
 
<?
require("passe/conf.php3" );
// CONNEXION MYSQL
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link);
 $admin=mysql_result($requete,$i,"passe" );
// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
 {
 // REDIRECTION PAGE ERREUR
 header("Location:$url_erreur" );
 }  
if($admin!=$motdepasse)
 {
 // REDIRECTION PAGE ERREUR
 header("Location:$url_erreur" );
 }
 
switch($action) {
/*-----------------------------------------------------------------*/
/* AJOUT DANS MySQL   */
/*-----------------------------------------------------------------*/
 
case "add";
 
// CONNEXION A LA BASE DE DONNEE
// TEST SUR LES VALEURS SAISIES
if($new_pseudo=="" ){echo "<center>Vous devez saisir un pseudo</center>";exit;}
if($new_password=="" ){echo "<center>Vous devez saisir un mot de passe</center>";exit;}
 
// ON VERIFIE SI CE PSEUDO EXISTE DEJA
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$new_pseudo\"",$db_link);
$num=mysql_num_rows($requete);
if($num!=0)
 {
 echo "<center>Ce pseudo existe déjà, Il faut en choisir un autre</center>";
 }
else
 {
 // CREATION D'UN IDENTIFIANT ALEATOIRE
 $taille = 20;
 $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
 srand(time());
 for ($i=0;$i<$taille;$i++)
  {
  $id2.=substr($lettres,(rand()%(strlen($lettres))),1);
  }
  // ON RECHERCHE L'ID MAXIMUM DE LA TABLE
 $requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link);
 $idmax=mysql_result($requete,0,"max(id_membre)" );
 
 
 
 // INSERTION DANS LA TABLE  
 $idnew=$idmax+1;
 $requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id2\",\"$new_pseudo\",\"$new_password\",\"$titre1\",\"$nom1\",\"$prenom1\",\"$societe1\",\"$email1\",\"$destination1\" )",$db_link);
 
 // REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
 header("Location:creation_compte.php3?id=$id&pseudo=$new_pseudo" );
 
 }

// DECONNEXION MYSQL
mysql_close($db_link);
 
break;
 
default;
echo " <font face=\"Verdana, Arial\" size=\"5\"><center>
 <font size=\"2\">
 <form action=\"adduser.php3?id=".$id."\" method=\"post\">
 Chosissez un pseudo<br>
 <input type=\"text\" name=\"new_pseudo\"><br>
 Chosissez un mot de passe<br>
 <input type=\"password\" name=\"new_password\"><br>
 Titre<br>
 <select name=\"titre1\">
                      <option value=\"Mademoiselle\">Mademoiselle</option>
                      <option value=\"Madame\">Madame</option>
                      <option value=\"Monsieur\">Monsieur</option>
                    </select><br>
 Nom<br>
 <input type=\"text\" name=\"nom1\"><br>
 Prenom<br>
 <input type=\"text\" name=\"prenom1\"><br>
 Société<br>
 <input type=\"text\" name=\"societe1\"><br>
 Email<br>
 <input type=\"text\" name=\"email1\"><br>
 
 Qualité<br>
 <select name=\"destination1\">
                      <option value=\"interne.php\">Agent Team France</option>
                      <option value=\"GKD Duren\">Agent GKD Duren</option>
                      <option value=\"Client\">Client</option>
                    </select><br><br>
 
   
 <input type=\"hidden\" name=\"action\" value=\"add\">
 <input type=\"submit\" value=\"Envoyer\">
 </form></font>
 </center></font>";
 
include ("footer.php3" );
break;
}
?>
           

mood
Publicité
Posté le 13-08-2003 à 10:34:25  profilanswer
 

n°485793
Sh@rdar
Ex-PhPéteur
Posté le 13-08-2003 à 10:37:42  profilanswer
 

rahhh mais merde !!! cette question est posée une fois par jour ici, fais une recherche sur php et header  
 
on ne peut pas modifier un entête HTTP avec la fonction header() si  quelque chose (du code HTML, un espace n'importe quoi) a été envoyé sur la sortie standard (le navigateur)
 
la fonction header doit donc être placé avant tout affichage  
 
désolé de m'être emporté je reprends maintenant mon calme
 
EDIT : dans ton cas l'affichage s'est produit dans le script adduser à la ligne 2
RE-EDIT : la ligne 2 pas 32


Message édité par Sh@rdar le 13-08-2003 à 11:01:10

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°485813
benoleg
Posté le 13-08-2003 à 10:54:43  profilanswer
 

Je ne comprends pas tres bien ce que tu appelles "affichage" et pourquoi, dans l'exemple sur lequel je me base, il n'y a pas de problème alors que le code est identique (excepté pour les valeurs à inserer dans la table.  
Je n'ai rien trouvé qui puisse m'aider en recherchant sur le forum.

n°485819
Sh@rdar
Ex-PhPéteur
Posté le 13-08-2003 à 11:02:34  profilanswer
 

vérifie que tu n'as pas d'espace (considéré comme une sortie) avant <? et ceci pour tous les fichiers inclus avant l'appel à header()
 


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°485824
benoleg
Posté le 13-08-2003 à 11:08:19  profilanswer
 

Merci!!!!!
 
Effectivement, il y avait bien un espace avant <?.
Ca fonctionne tres bien maintenant!
Encore merci Sh@rdar...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec Header...

 

Sujets relatifs
problème de création de tableprobleme de non respect des couleurs sous ie6.0
Petit probleme avec le "DOS" de la console de recup XPproblème bizarre avec les headers
Problème de conversion de format de date....Problème de template
probleme pour permutter 2 entiers par adresse...[PHP] header (problème résolut)
[super newbie inside] problème de header[PHP] Setcookie et header("location:...") Problème???????
Plus de sujets relatifs à : Problème avec Header...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR