Utiliser header

Résolu/Fermé
Raltard - 23 nov. 2015 à 18:53
 Raltard - 24 nov. 2015 à 13:55
Bonsoir, je vous fait un copier coller de mon script de ma page de connexion.
Mon problème est que j'ai ce message au moment ou je me connecte et ou il est censé me rediriger vers ma page de membre.php j'ai ce message:
MERCI d'avance pour vos réponses.
"Warning: Cannot modify header information - headers already sent by (output started at /mnt/129/sdb/a/3/cdvoiture/login.php:12) in /mnt/129/sdb/a/3/cdvoiture/login.php on line 41"

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Connection</title>
</head>

<body>
<?php
if(isset($_POST['submit']))
{
$username = htmlspecialchars(trim($_POST['username']));
$password = htmlspecialchars(trim($_POST['password']));
if(empty($username))
{
echo"Veuiilez saisir votre pseudo</br>";
}
if(empty($password))
{
echo"Veuiilez saisir votre mot de passe";
}

mysql_connect('mabase','login','mdp');
mysql_select_db('la table');
include_once('cookielog.php');
$password = sha1($password);
$login = mysql_query("SELECT * FROM membres WHERE username = '$username' AND password = '$password'");
$rows = mysql_num_rows($login);

if($rows == 1)
{
if(isset($_POST['remember']))
{
setcookie('pseudo',$username,time()+365*24*3600, null, null, false, true);
setcookie('mot de passe',$password,time()+365*24*3600, null, null, false, true);
}
$_SESSION['username'] = $username;
header('Location:membre.php');
}else echo "Pseudo ou mot de passe incorect";
}
?>
<h1>CONNECTION</h1>

<form method="POST" action="">
<p>Votre pseudo:</p>
<input type="text" name="username"></br>
<p>Votre Mot de passe:</p>
<input type="password" name="password" ></br>
<p><input type="checkbox" name="remember" id="remmemberme" /><label for="remmemberme">Se souvenir de moi</label></p>
<p><a href="mdpoublie.php">Mot de passe oublier</a></p>
<p> <input type="submit" name="submit" value="Se connecter" /></p>
<p>Pour abandonner cliquez sur <a href="index.html"title="Acceuille">retour a l'index du site</a></p>
</form>

</body>
</html>

3 réponses

Utilisateur anonyme
23 nov. 2015 à 20:17
Salut, il ne doit avoir aucun code html, ni aucun echo avant le header. Assure-toi aussi que ce soit le cas dans cookielog.php et qu'il n'y ait pas d'espace avant et après les balises php.
https://www.php.net/manual/fr/function.header.php
1
Utilisateur anonyme
24 nov. 2015 à 04:29
haha oui absolument! tu dois déplacer tout ton bloc php au-dessus du html, soit sous session_start()!, et puis retirer les echo pour les placer sous header(). L'important il me semble, c'est que rien ne soit envoyé au client avant la fonction.
1
Merci pour cette info mais si je fait sa par exemple:
<?php
session_start();
header('location:membre.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
il va me rediriger avant de me connecter? Merci d'avance pour votre réponse.
0
duvalkede Messages postés 37 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 16 janvier 2016
24 nov. 2015 à 12:56
j'ai le même probléme que toi , ducoup j'utilise :
echo '<meta http-equiv="Refresh" content="0;url= index.php">';
sa redirige vers la page index.php la par exemple au bout de 0 seconde.

je n'ai pas réellement compris votre solution. si queulqu'un peut mexpliquer.
0
Raltard > duvalkede Messages postés 37 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 16 janvier 2016
24 nov. 2015 à 13:55
ok je te remercie pour ta réponse qui sera la plus simple à mon gout.et je remercie également Sunr pour tes réponses.
0