Problème avec Header... - PHP - Programmation
Marsh Posté le 13-08-2003 à 10:37:42
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
Marsh Posté le 13-08-2003 à 10:54:43
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.
Marsh Posté le 13-08-2003 à 11:02:34
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()
Marsh Posté le 13-08-2003 à 11:08:19
Merci!!!!!
Effectivement, il y avait bien un espace avant <?.
Ca fonctionne tres bien maintenant!
Encore merci Sh@rdar...
Marsh Posté le 13-08-2003 à 10:34:25
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;
}
?>