Probleme condition dont la variable est dans une session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme condition dont la variable est dans une session

par ghalaad » 21 mars 2007, 22:40

resolu ^^

j'ai utilisé ca :
	if($_SESSION['compteur'] >= 1)
pour l'id a 0 c'est normal grace a ca je verifie derriere si l'id est a zero ca veux dire que le compte est bloqué et que l'utilisateur doit faire une demande de reactivation de son compte.

Merci de m'avoir repondu en tout cas :)
Sauf qu'il ne sera pas à 0 mais à vide. De plus, la requête ne sera pas exécutée si tu violes les règles d'intégrité: il est impossible d'avoir plusieurs fois la même clef primaire dans une table; tu ne peux donc pas avoir plusieurs id à 0.

par Truc » 20 mars 2007, 00:44

resolu ^^
Bravo... tu peux donc cliquer sur le bouton prévu à cet effet (en haut à gauche) :)

par Mitsu » 20 mars 2007, 00:32

resolu ^^

j'ai utilisé ca :
	if($_SESSION['compteur'] >= 1)
pour l'id a 0 c'est normal grace a ca je verifie derriere si l'id est a zero ca veux dire que le compte est bloqué et que l'utilisateur doit faire une demande de reactivation de son compte.

Merci de m'avoir repondu en tout cas :)

par ghalaad » 19 mars 2007, 23:38

Effectivement, tester une condition numérique sur des chaines de caractères est une mauvaise idée...
Une chaine a une valeur numérique de 0.
isset() renvoie true ou false.

Donc :
"si true est supérieur à 0 rentrer dans la boucle"... On peut considérer que php n'est pas tatillon et pense que true=1 :p
Alors ? 1>0 ? non.

Je complèterai la solution proposée par :
if(isset($_SESSION['compteur']) && (double)$_SESSION['compteur']>=1)
Histoire d'être bien sûr que c'est un nombre qu'on compare à 1.


De toute façon :
 $query= "UPDATE `membres` SET `id` = '' WHERE nom = 'user_name'"; 
va forcément te générer une erreur si id est la clef primaire de ta table membres.

Re: Probleme condition dont la variable est dans une session

par zeus » 19 mars 2007, 23:30

Merci de bien vouloir m'aider c'est tres urgent c'est un projet que je fait a la FAc et que je dois rendre mercredi :s
Ca, c'est TON soucis, nous n'avonspas à rattraper ton retard ...

Sinon, tu ne peux tester à la fois l'existence et la valeur d'un champ.
isset($_SESSION['compteur']) retourne TRUE ou FALSE, ce qui ne correspond pas à ce que tu veux comparer ;)

De plus, si tu cherches à comparer à un chiffre, pas la peine de mettre des ' autour du chiffre en question
if(isset($_SESSION['compteur']) >= '1')
devient donc
if ( isset($_SESSION['compteur']) && ($_SESSION['compteur'] >= 1) 

Probleme condition dont la variable est dans une session

par Mitsu » 19 mars 2007, 23:19

Bonjour

voila j'ai un probleme avec ma session mais surtout avec le fait de ne pas pouvoir verifier une condition a partir de celle ci. Je vous montre mon code source car je pense que ca sera plus lisible que mes expliquation ^^
<?php
include("variable.php");
	
$db_user = $user_mysql;
$db_pass = $pass_mysql;

$user_name = $_GET['user_name'];
$connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error());
mysql_select_db('utilisateur', $connection) or die(mysql_error());

	if(isset($_SESSION['compteur']) >= '1')
	{

		$refus = $_SESSION['compteur'] + 1;		
		$valeur= $refus;
		
		print(" $valeur ");
		
		print(" $user_name");
		
		if( $valeur >3)
		{
				$query= "UPDATE `membres` SET `id` = '' WHERE nom = 'user_name'";
				$result = mysql_query($query);
		}
		$_SESSION['compteur'] = $valeur;		

	}
	else
	{
	
		$valeur = 1;	
		Print (" valeur 1er cookie : $valeur ");
		/* Envoie du cookie */
		$_SESSION['compteur'] = $valeur;		
		
 		echo 'La variable  existe et vaut: ' . $_SESSION['compteur'];

	}
	

	
?>
En clair ce qu'il devrait ce passer c'est:

L'utilisateur s'identifie ( sur la page precedente) je verif qu'il est bien dans ma base de donée, et si c'est pas le cas c'est la que ce script doit se lancer. Ca ca marche, maintenant afin d'eviter que la personne tente d'essayer plusieur mot de passe je veux limiter a trois tentative.
j'utilise donc ma session en cours pour faire incrementer un compteur.
Lrs de la 1ere visite de cette page pas de pb, je passe par "else", et la variable dans la session prend bien la valeur 1, mais apres ca j'aimerais verifier la condition suivante disant que si la variable contenue dans la session est >= 1, j'applique le code suivant.
Et la c'est le drame ca marche pas je ne rentre pas dans le if. J'ai pourtant regardé pas mal de tuto et ma syntaxe me semble bonne.

Merci de bien vouloir m'aider c'est tres urgent c'est un projet que je fait a la FAc et que je dois rendre mercredi :s