Aller au contenu

problème header


schats

Sujets conseillés

bonjour,

j'ai un petit problème avec le header .

l'erreur:

Warning: Cannot modify header information - headers already sent by (output started at /data/users/t/toutetrien/menu.php:6) in /data/users/t/toutetrien/menu.php on line 94

la ligne 94 et environs


<?php

?><br/><br/><br/><br/><br/><br/><br/>
<img src="http://toutetrien.redby.info/image/mascote.jpeg" border="0" width="150" height="150" alt="" >

<?php
mysql_connect("sql.redby.info","toutetrien3","874419666");
mysql_select_db("toutetrien3");
if ($_SESSION['logged'] === false)
{
if (isset($_COOKIE['pseudo'], $_COOKIE['pass']))
{
//Vérification du pseudo.
$pseudo = htmlspecialchars($_COOKIE['pseudo']);
$pass = htmlspecialchars($_COOKIE['pass']);

//Requête comptant le nombre de pseudos $_POST['pseudo']
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");

//Si le pseudo existe.
if (mysql_result($sql,0,'nb_pseudo') == 1)
{
//Vérification du mot de passe
//Information sur le compte du membre.
$sql_infos = mysql_query("SELECT id, pass, confirmation FROM membres WHERE pseudo='".$pseudo."'") or die (mysql_error());
$donnees = mysql_fetch_array($sql_infos);

//Comparaison du mot de passe et vérification que le compte est confirmé.
if ($pass == $donnees['pass'] && $donnees['confirmation'] == 1)
{
//Tout est bon, on connecte le membre.
$_SESSION['logged'] = true;

//Création de 2 variables de sessio, contenant des informations sur le membre.
$_SESSION['id'] = $donnees['id']; //Id du membre.
$_SESSION['pseudo'] = $pseudo; //Pseudo du membre.

//Redirection vers la page membre.
header("location: toutetrien.redby.info/espace_membre/index.php");
}
}
}
}

//Si la variable $_POST['connexion'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
if (isset($_POST['connexion']) && $_SESSION['logged'] === false)
{
//Vérification des autres variables.
if (!empty($_POST['pseudo']) && !empty($_POST['pass']))
{

//Vérification du pseudo.
$pseudo = htmlspecialchars($_POST['pseudo']);
$pass = htmlspecialchars($_POST['pass']);

//Requête comptant le nombre de pseudos $_POST['pseudo']
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'")or die (mysql_error());

//Si le pseudo existe.
if (mysql_result($sql,0,'nb_pseudo') == 1)
{
//Vérification du mot de passe
//Information sur le compte du membre.
$sql_infos = mysql_query("SELECT id, pass, confirmation FROM membres WHERE pseudo='".$pseudo."'")or die (mysql_error());
$donnees = mysql_fetch_array($sql_infos);

//Hashage du mot de passe.
$passhash = md5(sha1($_POST['pass']));

//Comparaison du mot de passe.
if ($passhash == $donnees['pass'])
{
//On vérifie que le compte est confirmé.
//Si $donnees['confirmation'] vaut 1.
if ($donnees['confirmation'] == 1)
{
if (isset($_POST['souvenir']) && $_POST['souvenir'] == 'on')
{
mysql_query("UPDATE membres SET statut ='1' WHERE id=".$donnees_info['id']."") OR die(mysql_error());
//Temps d'expiration des cookies (1 an).
$expire = time() + 3600 * 24 * 365;

setcookie('pseudo', $pseudo, $expire);
setcookie('pass', $passhash, $expire);
}

//Tout est bon, on connecte le membre.
$_SESSION['logged'] = true;

//Création de 2 variables de session, contenant des informations sur le membre.
$_SESSION['id'] = $donnees['id']; //Id du membre.
$_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
//Redirection vers la page membre.
header("location: toutetrien.redby.info/espace_membre/index.php");
}
else
echo 'Erreur : le compte n\'est pas confirmé !';
}
else
echo 'Erreur : le mot de passe est incorrect !';
}
else
echo 'Erreur : le pseudo n\'existe pas !';
}
else
echo 'Erreur : veuillez remplir tous les champs !';
}
?>
<div id="menu">
<div class="element">
Le site Web

<form method="post" action="">
<label>Pseudo : <input type="text" name="pseudo" /></label><br/>
<label>Mot de passe : <input type="password" name="pass" /></label><br/>
<input type="submit" name="connexion" value="Se connecter" /><br/>
<input type="checkbox" name="souvenir" > se souvenir de moi
</form>



<li><a href="inscription.php" target="_top">inscription</a></li>

<li><a href="index.html" target="_top">accueil</a></li>

<li><a href="forum.php" target="_top">le forum</a></li>

<li><a href="tchat.html" target="_top">le tchat</a></li>

<li><a href="livreor.php" target="_top"> le livre d'or</a></li>
<li><a href="reference.php" target="_top"> vous aimmez se site faite le partager ici</a></li>
</ul>
Les espaces

merci de me répondre

s'il vous manque des informations merci de me le dire par la messagerie personel ou en répondant aux forum

Lien vers le commentaire
Partager sur d’autres sites

La commande php header(); doit etre la premiere a etre envoyer.

Sit tu envoit du html le php envoit les header apres il envoit ton html.

A ce moment la il est impossible d'envoyer les headers ils sont deja clos.

Tu peut utiliser la commande headers_sent() pour savoir si les headers

ont ete envoyer ou pas.

http://www.php.net/manual/fr/function.headers-sent.php

if (!headers_sent())
{
header("location: toutetrien.redby.info/espace_membre/index.php");
exit;
} else
{
/* On ne peut plus rediriger la page les headers sont envoyer */
echo '<a href="toutetrien.redby.info/espace_membre/index.php">Cliquer Ici</a>';
exit;
}

Mais le mieux je crois serait d'envoyer ton code dans le haut de la page

en premier. N'envoye aucun html ou espace, aucun caractere, fait le test

de sessions et envoye tes headers, apres tu t'occupe du html.

Modifié par theonlydrayk
Lien vers le commentaire
Partager sur d’autres sites

Mais le mieux je crois serait d'envoyer ton code dans le haut de la page

en premier. N'envoye aucun html ou espace, aucun caractere, fait le test

de sessions et envoye tes headers, apres tu t'occupe du html.

Tu penses juste ! ;)

Il ne faut AUCUNE sortie vers le navigateur avant d'envoyer une entête ou un cookie, sinon on a ce type d'erreur.

Un seul caractère, même un espace ou un retour chariot, provoque l'envoi d'entêtes automatiques. C'est ce qui donne ensuite le message d'erreur "headers already sent" :)

Dan

Lien vers le commentaire
Partager sur d’autres sites

mouai le seul problème c'est que mes header sont obliger d'être la .... car sinon .... ben sa l'enverra sur la page même s'il n'est pas membre

les session marche car quand je vais sut http://toutetrien.redby.info/espace_membre/index.php ben ça me met les bonne donner et l'acess est accepter .... ( quand je suis connecter bien sur )

Lien vers le commentaire
Partager sur d’autres sites

ça marche mais comment faire pour le code html qu'il y avait avant ...... je le met juste après le php ou plutôt dans le css ???

désoler pour le double post

Modifié par schats
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Juste un commentaire au passage, la fonction setcookie() nécessite aussi d'être placé avant la sortie du navigateur.

Place ton code html après le php ;)

Cordialement,

Mikiman

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...