Php sessions

Bonjour,

<?
$serveur="localhost";
$login="root";
$mdp="";
$bd="jav";

/*
si les champs de login et de mot de passe ne sont pas vides
on insère l'utilisateur.
*/
if($_POST["id"] != "" && $_POST["mdp"] != "")
{
$id = $_POST["id"] ;
$mdp = md5($_POST["mdp"]) ;

$con_base=mysql_connect("$serveur", "$login","") or die ("erreur de connexion");
mysql_select_db($bd,$con_base);

//création de la requête SQL
$sql = "SELECT * FROM utilisateur WHERE id = '".$id."' AND mdp = '".$mdp."'" ;
//exécution de la requête SQL
$requete = @mysql_query($sql, $con_base) or die($sql."<br>".mysql_error()) ;
//on récupère le résultat
$result = mysql_fetch_object($requete) ;
//si la requête s'est bien passée
if(is_object($result))
{
//début de la sessions
session_start() ;
//enregistrement d'une variable de session, ici le login de l'utilisateur
$_SESSION["login"] = $login ;

header("Location: competition.html") ;
}//fin if
//sinon on retourne à la page d'inscription
else
{
header("Location: competition.html") ;
}//fin else
}//fin if
/*
sinon on retourne à la page d'inscription
*/
else
{
header("Location: competition.html") ; ===> ligne 99
}//fin else
?>

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\alex4\bddlog.php:16) in c:\program files\easyphp1-8\www\alex4\bddlog.php on line 99
Configuration: Windows XP
Firefox 3.0.10

7 réponses

  1. ben c'est quelle ligne la 99 ?
    0
    1. j'ai rien dit
      0
  2. mets <?php au lieu de <?

    ensuite tu mets //on insérer l'utilisateur alors que tu fais une requette SELECT ??

    ensuite ton warning dit que l'on ne peut pas faire Header Location...

    par ce que tu as du envoyer déja du HTML avant

    donc verifies bien que avant le coode que tu nous a donné tu n'ai pas de html

    Même pas une ligne vide ou un espace
    0
    1. Plus aucune erreur mais le problème vient de la condition, elle me renvoie toujours sur le même page que le mdp soit faux ou pas ! Elle renvoie toujours à la page médias.html

      <?php

      $serveur="localhost";
      $login="root";
      $mdp="";
      $bd="jav";

      /*
      si les champs de login et de mot de passe ne sont pas vides
      on insère l'utilisateur.
      */
      if($_POST["id"] != "" && $_POST["mdp"] != "")
      {
      $id = $_POST["id"] ;
      $mdp = md5($_POST["mdp"]) ;

      $con_base=mysql_connect("$serveur", "$login","") or die ("erreur de connexion");
      mysql_select_db($bd,$con_base);

      //création de la requête SQL
      $sql = "SELECT * FROM utilisateur WHERE id = '".$id."' AND mdp = '".$mdp."'" ;
      //exécution de la requête SQL
      $requete = @mysql_query($sql, $con_base) or die($sql."<br>".mysql_error()) ;
      //on récupère le résultat
      $result = mysql_fetch_object($requete) ;
      //si la requête s'est bien passée
      if(is_object($result))
      {
      //début de la sessions
      session_start() ;
      //enregistrement d'une variable de session, ici le login de l'utilisateur
      $_SESSION["id"] = $id ;

      header("Location: competition.html") ;
      }//fin if
      //sinon on retourne à la page d'inscription
      else
      {
      header("Location: medias.html") ;
      }//fin else
      }//fin if
      /*
      sinon on retourne à la page d'inscription
      */
      else
      {
      header("Location: club.html") ;
      }//fin else
      ?>
      0
      1. testes plutot comme ça:

        <?php
        $serveur="localhost";
        $login="root";
        $mdp="";
        $bd="jav";
        
        /*
        si les champs de login et de mot de passe ne sont pas vides
        on recherche l'utilisateur.
        */
        if($_POST["id"] != "" && $_POST["mdp"] != "")
        {
        	$id = mysql_escape_string($_POST["id"]) ; //mysql_escape_string protège des attaques par injection mysql
        	$mdp = md5($_POST["mdp"]) ;
        
        	$con_base=mysql_connect("$serveur", "$login","") or die ("erreur de connexion");
        	mysql_select_db($bd,$con_base);
        
        	//création de la requête SQL
        	$sql = "SELECT * FROM utilisateur WHERE id = '".$id."' AND mdp = '".$mdp."'" ;
        	//exécution de la requête SQL
        	$requete = mysql_query($sql, $con_base) or die($sql."<br>".mysql_error()) ;
        	//on récupère le résultat
        	$result = mysql_num_rows($requete) ; //retourne le nombre de réponses trouvées
        	//si l'utilisateur a été trouvé
        	if($result==1)
        	{
        		//début de la session
        		session_start() ;
        		//enregistrement d'une variable de session, ici le login de l'utilisateur
        		$_SESSION["id"] = $id ;
        
        		header("Location: competition.html") ;
        		}//fin if
        		//sinon on retourne à la page d'inscription
        	else
        	{
        		header("Location: medias.html") ;
        	}//fin else
        }//fin if
        	/*
        	sinon on retourne à la page d'inscription
        	*/
        else
        {
        	header("Location: club.html") ;
        }//fin else
        ?>
        0
        1. Toujours le même problème, elle renvoie toujours à la page médias.html
          0
          1. Fais un echo($result); Pour voir ce qu'il t'affiche !

            Sinon tu peux apprendre à faire un espace membre en vidéo ici :

            http://tutoriels-video.net/php-niv-intermediaire/espace-membre-securise-en-php-224

            Bye !
            0