Probleme fonction udapte

Résolu/Fermé
fredadidodu Messages postés 2 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 14 avril 2008 - 14 avril 2008 à 17:22
fredadidodu Messages postés 2 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 14 avril 2008 - 14 avril 2008 à 20:07
Bonjour,
Je suis en train de programmer un site depuis quelques temps et pour une fois je suis tombé sur une erreur que je n'ai pas su résoudre ,si vous pouviez m'aider
Voici mon code :

<?php
if(isset($_GET['activation_id']))
{
$_GET['activation_id'] = intval(htmlentities($_GET['activation_id'], ENT_QUOTES));
mysql_connect("localhost", "??", "??");
mysql_select_db("LAbdd");
$verif=mysql_query('SELECT * FROM membresgg WHERE id=\'' .$_GET['activation_id'].'\'') or die(mysql_error());
$statut=mysql_fetch_array($verif);

if ($statut['statut'] == 'desactive')
{
$membre='membre';
mysql_query("UPDATE membresgg SET statut='" . $membre . "', WHERE id='" . $_GET['activation_id'] . "'");
echo "Votre compte a bien été activé, vous pouvez désormais vous connectez pour accéder aux jeux Gamez Games";
}
else
{
echo 'Erreur';
}

}
else
{
echo "Erreur! Votre compte n'existe pas";
mysql_close();
}
?>

C'est l'activation par e-mail des comptes, seulement le statut des membres ne change pas avec la requête , j'ai déjà vérifié le nom de la bdd, de la table , du champ statut, $_GET['activation_id'] s'affiche correctement,et le message "Votre compte a bien été activé, vous pouvez désormais vous connectez pour accéder aux jeux Gamez Games" aussi .
Il n'y a aucun message d'erreur.

2 réponses

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
14 avril 2008 à 17:45
J'ai fait trois modifications dans ton script :

1. commande update : suppression d'une virgule
2. ajout de l'affichage de la requête lancée : utile pour déboguer
3. ajout de die(...) : il est normal que dans ces circonstances tu n'ais pas de message d'erreur

<?php
if( isset( $_GET['activation_id'] ) )
	{
	$_GET['activation_id'] = intval(htmlentities($_GET['activation_id'], ENT_QUOTES));
	mysql_connect("localhost", "??", "??");
	mysql_select_db("LAbdd");
	$query = "SELECT * FROM membresgg"
		. " WHERE id='" . $_GET['activation_id'] . "'"
	$verif=mysql_query( $query ) or die(mysql_error());
	$statut=mysql_fetch_array($verif);
	
	if ($statut['statut'] == 'desactive')
		{
		$membre='membre';
// ligne suivante : virgule supprimée 
		$query = "UPDATE membresgg SET statut='" . $membre . "' WHERE id='" . $_GET['activation_id'] . "'"
//	ligne suivante : ajoutée
		echo '<br>...' . $query;
//	ligne suivante : appel de die ajouté
		mysql_query( $query ) or die( mysql_error() );
		echo "Votre compte a bien été activé, vous pouvez désormais vous connectez pour accéder aux jeux Gamez Games";
		}
	else
	echo 'Erreur';	
	}
else
	{
	echo "Erreur! Votre compte n'existe pas";
	mysql_close();
	}
?> 
0
fredadidodu Messages postés 2 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 14 avril 2008
14 avril 2008 à 20:07
C'était la virgule en trop
merci beaucoup tu m'a bien aidé.
0