Probleme redirection login

Résolu
lore -  
 lore -
Bonjour,
j essaye de faire un formulaire de login et j ai un probleme. si je me login avec un nom et mot de passe enregistre dans la bdd j atteri sur une page blanche.

si je fais une erreur de login mes erreurs sont bien affichees.
si j utilise le formulaire d inscription j arrive bien sur ma page membres.

c est donc vraiment un probleme de redirection en cas de login correct et je ne vois pas ou.

voici mon code:

<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

		include("code.php");
		
		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$data = mysql_fetch_array($req);

		mysql_free_result($req);
		mysql_close();

		if ($data[0] == 1) {
			session_start();
			$_SESSION['login'] = $_POST['login'];
			header('Location: membre.php');
			exit();
		}
		elseif ($data[0] == 0) {
			$erreur = 'Compte non reconnu.';
		}
		else {
			$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
		}
	}
	else {
		$erreur = 'Au moins un des champs est vide.';
	}
}
?>
<html>
<head>
<title>Accueil</title>
</head>

<body>
Connexion à l'espace membre :<br />
<form action="login.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<?php
if (isset($erreur)) echo ''.$erreur .'</br></br>';
?>
<a href="inscription.php">Vous inscrire</a>

</body>
</html>


quelqu un peu m aider?

6 réponses

  1. le père
     
    Je m'en doutais...
    Dans ton fichier code2.php, ligne 2, tu envoies déjà des données au client. Derrière, plus question de session_start() ni de header()
    Tu peux montrer les premières lignes de code2.php ? Et si tu ne vois rien, il s'agit peut être simplement d'un espace ou d'une ligne vide qui précède le premier <?php
    1
  2. bissdebrazza Messages postés 2886 Statut Contributeur 712
     
    Salut!
    on peut voir ce que contient membre.php?
    0
  3. lore
     
    voila la page membre.php

    <?php
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: index.php');
    	exit();
    }
    ?>
    
    <html>
    <head>
    <title>Espace membre</title>
    </head>
    
    <body>
    Welcome : <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
    <a href="deconnexion.php">disconnection</a>
    </body>
    </html>
    0
  4. le père
     
    Bonjour

    Ajoute un error_reporting (E_ALL); au début de ton script login.php pour voir si tu n'aurais pas un message qui te dit que les headers ont déjà été envoyés.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lore
     
    voila la reponse:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/24/d364812003/htdocs/greenzulus2/code2.php:2) in /homepages/24/d364812003/htdocs/greenzulus2/login.php on line 16

    Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d364812003/htdocs/greenzulus2/code2.php:2) in /homepages/24/d364812003/htdocs/greenzulus2/login.php on line 18
    0
  7. lore
     
    c etait effectivement une ligne vide avant le <?php
    (j aurai pu chercher encore longtemps sans ton aide)

    ca fonctionne nickel maintenant

    merci beaucoup pour ton aide, et merci pour ton error_reporting, je m en resservirai
    0