Session php

Petit nouveau ! | 2 Messages

25 avr. 2009, 09:25

Bonjour à tous,

Après plusieurs mois sans prog j'ai bien vite perdu la main. Habituellement débrouillard pour trouver une solution à mes problèmes sur le vaste réseau de la toile, il subsiste un problème sur lequel je planche depuis 2 jours maintenant et sans résultat satisfaisant. (note : j'aime comprendre le code et prog a ma manière, le copier/coller n'ai pas mon ami, donc les truc tout fait non merci)

Dans mon cas je n'arrive pas à récupérer une valeur "true" de la variable $identificationOK

tout le coding qui va suivre se trouve dans un page index.php.

index.php

<?php
session_start();
// je parts du principe inverse, quand on lance la page, on est pas identifie
$identificationOK == false;
// etant une page teste j'incremente les chariots $_POST, chose qui disparaitra a l'aboutissement
$_POST['login'] = $login;
$_POST['password'] = $password;
$login = 'admin';
$password = '123456';
// je verifie si les variables sont Ok (chose sure dans ce cas car je les fait moi meme juste avant)
if ( isset($login) && isset($password) ) {
	// include : ouverture de la DB
	include ('scp_authdb.php');
	// je selection mon tableau + addslashes($login) pour les /'
	$sql = "SELECT * FROM members WHERE login = '".addslashes($login)."'";
	$req = mysql_query($sql) or die('Erreur SQL : <br>'.$sql);
	// j'incremente $teste_rows pour voir s'il trouve un resultat dans la DB
	$teste_rows = mysql_num_rows($req);
	// condition si row > 0 continuer
	if (mysql_num_rows($req) > 0) {
		// incrementation de la variable $data des variables du tableau de la DB
		$data = mysql_fetch_assoc($req);
		// condition si la varialbe du tableau de la DB password == $password, soit $_POST['password']
		if ($data['password'] == $password) {
			// identification mode OK et incrementation des variable $data de la DB
			$identificationOK == true;
			$_SESSION['login'] = $data['login'];
			$_SESSION['name'] = $data['name'];
			$_SESSION['surname'] = $data['surname'];
			$_SESSION['mail'] = $data['mail'];
			$_SESSION['level'] = $data['level'];
			}
	// condition si row = 0 identification mode NO 
	} else {$identificationOK == false;}
}
// ajout de mes variblas perso (actuelement vide)
include ('scp_variables.php');
?>
<head>
<title>
</title>
</head>
<body>
<?
echo $teste_rows.'<br>';
// me donne 1 donc jusque tout va bien
if ( $identificationOK == true ) { echo 'Identification ok <br>'; }
if ( $identificationOK == false ) { echo 'Identification invalide <br>'; }
// c'est ici qu'il y a un pobleme, il me donne dans tous les cas $identificationOK == false
echo 'teste variable $data base password : '.$data['password'];
// j'ai donc verifier si les valeur sorti de la db était correcte, il me donne bien 123456
?>
</body>
</html>
<?
mysql_close($db)
?>
voilà tout est là.

Ma question est donc pourquoi dans le cas présent le script me retourne pas un valeur "true".

Merci d'avance et à bientôt.

ViPHP
ViPHP | 5924 Messages

25 avr. 2009, 09:54

Jette un oeil sur les lignes 4, 26 et 36…

Petit nouveau ! | 2 Messages

25 avr. 2009, 10:42

Je mérite une petite tape...

L'incrémentation de $identificationOK de la valeur "true" ou "false" se fait avec qu'un "=".

Merci Sékiltoyai

Pour les fan des copier/coller voici un script d'ouverture de session, si vous voulez plus de détail /pm en privé.

Coding fini :

index.php

<?php
session_start();
$identificationOK = false;
$_POST['login'] = $login;
$_POST['password'] = $password;
// ----------------------------------------------
// à supprimer lors de la finition du site
$login = 'fadmin';
$password = '123456';
// ----------------------------------------------
if ( isset($login) && isset($password) ) {
	include ('scp_authdb.php');
	$sql = "SELECT * FROM members WHERE login = '".addslashes($login)."'";
	$req = mysql_query($sql) or die('Erreur SQL : <br>'.$sql);
	if ( mysql_num_rows($req) > 0 ) {
		$data = mysql_fetch_assoc($req);
		if ( $password == $data['password'] ) {
			$identificationOK = true;
		} else { $identificationOK = false; }
	} else { $identificationOK = false; }
} else { $identificationOK = false; }
if ( $identificationOK == true ) {
	$_SESSION['login'] = $data['login'];
	$_SESSION['name'] = $data['name'];
	$_SESSION['surname'] = $data['surname'];
	$_SESSION['mail'] = $data['mail'];
	$_SESSION['level'] = $data['level'];	
} else {
	$_SESSION['login'] = 'Invité';
	$_SESSION['name'] = '_';
	$_SESSION['surname'] = '_';
	$_SESSION['mail'] = '[email protected]';
	$_SESSION['level'] = '1';
}
include ('scp_variables.php');
?>
<head>
<title>
</title>
</head>
<body>
<?
echo $_SESSION['login'].' ¤ '.$_SESSION['name'].' ¤ '.$_SESSION['surname'].'<br>';
echo $_SESSION['mail'].' ¤ level : '.$_SESSION['level'].'<br>';		
?>
</body>
</html>
<?
mysql_close($db)
?>
Cio à tous et merci encore.

ViPHP
ViPHP | 5924 Messages

25 avr. 2009, 13:07

L'incrémentation de $identificationOK de la valeur "true" ou "false" se fait avec qu'un "=".
Euh, on dit affectation :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 avr. 2009, 22:13

Modération :
aandre84, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
[/quote]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer