Page 1 sur 1

PHP ne rentre pas dans une boucle fetch() !

Posté : 15 avr. 2010, 13:17
par Simax150
Bonjour à tous !
Mon script d'inscription marche bien, à un prblème :
le code qui suit permet l'activation d'un compte. Il compare la clef que le membre à recu dans un mail avec celui ajouté à la bdd lors de son inscription.
Voilà ce qui est affiché :
4
Notice: Undefined variable: trouve in ...
include("includes/connexion_mysql.php");//On se connecte à la base sql

if (isset($_GET['hasard']))
	{
		$clef = $_GET['hasard'];//on récupere la clef d'activation dans une variable si elle existe
		$clefabs = false;
	}

else
	{
		$clefabs = true;//sinon, la variable clef est fausse
	}


$activation = $bdd->query("SELECT * FROM info_utilisateurs"); //On récupère le champs activation, pour le comparer avec la clef d activation du $_GET

if ($clefabs == false)//si la variable clef n'est pas fausse :
{
	while ($abc = $activation->fetch())
		{echo('2');
			if (in_array ($clef, $abc['activation']) == true)//si la clef est trouvée dans l'array :
			{
				echo('3');
				$trouve = true;//la variable trouve est juste
			}
			
			else
			{
				echo('3.5');
				$trouve = false;
			}
		
		}
echo('4');
$activation->closeCursor();
}
Merci d'avance !

Re: PHP ne rentre pas dans une boucle fetch() !

Posté : 15 avr. 2010, 13:29
par stealth35
pourquoi tu va chercher tout les utilisateurs ?
autant faire une requête style :
SELECT * FROM info_utilisateurs WHERE activation = '$clef'

Re: PHP ne rentre pas dans une boucle fetch() !

Posté : 15 avr. 2010, 15:50
par SinBert
Bonjour,

si tu ne souhaites que tester si l'utilisateur dont la clé est $cle le mieux est de faire ceci :
SELECT COUNT(*) AS nbre_utilisateur FROM info_utilisateur WHERE actication = '$cle'
Si l'utilisateur avec la clé $cle existe, la requête te retournera 1 sinon, 0.
Ton script sera par conséquent beaucoup plus simple que se que tu nous présente là.
De plus, il ne chargera pas tous les champs de ta table qui sont assez inutile dans ce script.

Bonne fin de journée. ;)

Re: PHP ne rentre pas dans une boucle fetch() !

Posté : 15 avr. 2010, 15:55
par stealth35
ouai et tu feras pas "query" mais "exec"

Re: PHP ne rentre pas dans une boucle fetch() !

Posté : 16 avr. 2010, 17:40
par Simax150
Merci beaucoup pour vos réponses qui m'ont bien aidé. :D :D
Il ne me reste qu'un dernier problème :| :
$membre = $activation = $bdd->query("SELECT COUNT(*) AS abc FROM info_utilisateurs WHERE activation = ".$clef."");
echo ($membre.'Y ');
Ce bout de code qui renvoie 1 ou 0 me permet de savoir si un membre de la table info_utilisateurs a en champs d'activation la variable $clef.
Mais il me renvoie :
Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp\www\alea\activation.php on line 23
Le retour de cette requette n'est pas du texte ? Je ne peux pas l'utiliser tel quel ?
Merci d' avance pour vos réponses ! :D

Re: PHP ne rentre pas dans une boucle fetch() !

Posté : 16 avr. 2010, 17:44
par stealth35
soit tu fais

$membre = $activation->fetch();

soit tu utilise exec a la place de query (solution que je te conseil, puisque que c'est fait pour)