Page 1 sur 1

Probleme de session

Posté : 19 sept. 2008, 09:07
par bugalez
bonjour

Voila j'ai installer un script php qui fonctionnait bien, j'ai voulue y ajouter une conditions et il ne fonctionnait plus ,je suis donc revenus au script d'origine mais je n'arrive plus a le faire fonctionner il revient en permanence sur la page index.html, la 1er des conditions n'a pas l'air d'etre remplis pourquoi????
Pourriez-vous m'expliquer ou est l'erreur merci .
<?php
if ($_post)
{
	/*
	 si les champs de login et de mot de passe ne sont pas vides
	  on insère l'utilisateur.
	*/

	if($_POST["login"] != "" && $_POST["pass"] != "")
	{
	 $login     = $_POST["login"] ;
	 $pass      = md5($_POST["pass"]) ;
 
	//connexion au serveur
	$cnx = mysql_connect(adresse, login, mot de passe) ;
	//sélection de la base de données
	$db  = mysql_select_db(pnpn22) ;
	
	//création de la requête SQL
	 $sql = "SELECT * FROM membres WHERE login = '".$login."' AND pass = '".$pass."'"	;
	 //exécution de la requête SQL
	 $requete = @mysql_query($sql, $cnx) 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: choix.php") ;

		 }//fin if object

   

	}//fin if 2eme $_POST

ECHO "veulliez remplir tout les champs !!!!";
}//fin du 1er if


?>
<form method="SESSION" action="index.php">
   <p>
       <label for="login">Votre pseudo :</label>
       <input type="text" name="login" value="<?ECHO "$login"?>" />
       
       <br />
       <label for="pass">Votre mot de passe :</label>
       <input type="password" name="pass" id="pass" />
	   <br />
	   
		<input type="submit" value="Valider" />
   </p>
</form>

</body>
</html>
merci

Posté : 19 sept. 2008, 10:09
par Maitrepylos
Bonjour, la méthode du Form doit être POST


Remplacer :

<form method="SESSION" action="index.php"> 
Par
<form method="POST" action="index.php"> 

Posté : 19 sept. 2008, 10:11
par Calimero
En PHP les noms de variables sont sensibles à la casse. Ce qui veut dire que :
if ($_post) 
ne risque pas de marcher. Pourquoi ne pas avoir utilisé de majuscules comme partout ailleurs dans le script ?

Posté : 19 sept. 2008, 10:12
par zeus
Essaye de faire un
var_dump($_POST);
pour voir si tu récupères bien tes données en POST

Sachant que le

Code : Tout sélectionner

<form method="SESSION" action="index.php">
me surprendrais s'il fonctionnais ;)
Non seulement l'attribut "method" ne permet que "GET" ou "POST", mais en plus, si cet attribut est manquant ou invalide (ce qui est ton cas), les données sont transmises en GET, ce qui expliquerais pourquoi ton $_POST est toujours vide ;)

Posté : 19 sept. 2008, 10:55
par bugalez
Merci pour vos réponse rapide
bon j'ai modifié
method="SESSION" par method="POST" et if ($_post) par if ($_POST) .
ensuite j'aifait un
var_dump($_POST);
voila ce que sa me retourne

Code : Tout sélectionner

array(2) { ["login"]=> string(6) "popoti" ["pass"]=> string(6) "azerty" } veulliez remplir tout les champs !!!!
C'etait le
if ($_POST)
qui posait problème . je les supprimé et nikel sa fonctionne .

Donc merci pour votre aide les gars et a bientot surement car je debute en php . :D