Soucis sur une requête sql
9 messages
• Page 1 sur 1
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Soucis sur une requête sql
Bonjour,
J'ai un petit soucis avec la requête suivante qui me permet d'activer une annonce via un lien reçut par email. Si une erreur survient le message "$message" ne s'affiche pas ou si aucun enregistrement n'est trouvé, la redirection n'est pas effectué ??
Ou ai-je merdouillé ??
Merci
J'ai un petit soucis avec la requête suivante qui me permet d'activer une annonce via un lien reçut par email. Si une erreur survient le message "$message" ne s'affiche pas ou si aucun enregistrement n'est trouvé, la redirection n'est pas effectué ??
Ou ai-je merdouillé ??
- Code: Tout sélectionner
$result = mysql_query("
SELECT id
, Compte_Active
, Clef_Activation
FROM RECHERCHE_CLIENTS
WHERE id = '" . $_GET["id"] . "'
AND Clef_Activation = '" . strtolower($_GET["clef"]) . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de l'activation de votre annonce!";
}
else
{
// Si aucun enregistrement n'est trouvé
if(mysql_num_rows($result) == 0)
{
header("Location: index.php");
}
Merci
-

nickargall - WRInaute accro

- Messages: 6468
- Inscription: 13 Juin 2005
Re: Soucis sur une requête sql
@dh, la condition que tu indiques renverra toujours "vrai" ...
@tryan, il manque une parenthèse de fermeture dans ton code ou c'est juste qu'une erreur de copier - coller trop court ?
Sinon, il te faut tester ta requete et voir ce qui en ressort.
@tryan, il manque une parenthèse de fermeture dans ton code ou c'est juste qu'une erreur de copier - coller trop court ?
Sinon, il te faut tester ta requete et voir ce qui en ressort.
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Soucis sur une requête sql
Merci de vos réponses mais ... je n'ai pas tout comprit ^^!
@nickargall : c'est un oublie dans mon copié/collé ^^
J'ai modifié un peut le code d'origine:
en
Comme ça si les paramètres passé en $_GET sont faux j'ai un message d'erreur.
Par contre un peut plus bas dans mon code je valide les données si tout est ok et je souhaiterais afficher de nouveaux un message d'erreur si l'enregistrement à merdé...mais je n'y parvient pas une fois de plus !
merci
@nickargall : c'est un oublie dans mon copié/collé ^^
J'ai modifié un peut le code d'origine:
- Code: Tout sélectionner
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de l'activation de votre annonce!";
}
else
{
// Si aucun enregistrement n'est trouvé
if(mysql_num_rows($result) == 0)
{
header("Location: index.php");
}
}
en
- Code: Tout sélectionner
// Si aucun enregistrement n'est trouvé
if(mysql_num_rows($result) == 0)
{
$message = "Cette annonce n'existe pas!!";
}
Comme ça si les paramètres passé en $_GET sont faux j'ai un message d'erreur.
Par contre un peut plus bas dans mon code je valide les données si tout est ok et je souhaiterais afficher de nouveaux un message d'erreur si l'enregistrement à merdé...mais je n'y parvient pas une fois de plus !
- Code: Tout sélectionner
// Activation du compte utilisateur
$result = mysql_query("
UPDATE RECHERCHE_CLIENTS
SET Compte_Active = '1'
WHERE id = '" . $_GET["id"] . "'
AND Clef_Activation = '" . strtolower($_GET["clef"]) . "'
");
// Si une erreur survient (c'est la que je séche ^^)
if(!$result)
{
$message = "Une erreur est survenue lors de l'activation de votre annonce!";
}
else
{
$message = "Votre annonce a correctement été activé!";
}
merci
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Soucis sur une requête sql
Tu mets des trucs dans $message, mais tu l'affiches quelque part?
A part ça, un point très important: ne passe JAMAIS des arguments reçus dans un $_GET (ou $_POST ou $_SERVER ou $_COOKIES, bref, n'importe quoi qui vient de l'utilisateur) dans une requête SQL sans vérifier et escaper tout ça. Sinon tu ouvres ton code à des injections SQL qui permettent de faire n'importe quoi avec ta base de données.
Jacques.
A part ça, un point très important: ne passe JAMAIS des arguments reçus dans un $_GET (ou $_POST ou $_SERVER ou $_COOKIES, bref, n'importe quoi qui vient de l'utilisateur) dans une requête SQL sans vérifier et escaper tout ça. Sinon tu ouvres ton code à des injections SQL qui permettent de faire n'importe quoi avec ta base de données.
Jacques.
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Soucis sur une requête sql
@jcaron : c'est un fragment de mon code qui est posté. Il va de soit que ma variable $message est ensuite affiché dans ma page en fonction du résultat ^^. Pour ce qui est des injections, les arguments reçus dans $_GET sont vérifiés au préalable soit :
-pour l'id -> doit être un chiffre obligatoirement
-pour la clef -> 8 chiffres ou lettres obligatoirement
Ensuite je vérifie que ces 2 arguments existent avant enregistrement.
@KOogar : merci
-pour l'id -> doit être un chiffre obligatoirement
-pour la clef -> 8 chiffres ou lettres obligatoirement
Ensuite je vérifie que ces 2 arguments existent avant enregistrement.
@KOogar : merci
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google API : guide de développement de l'API Google - 20-09-2002
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Informations sur l'infrastructure technique de Google - 01-11-2004
- Google met à jour sa recherche locale - 15-09-2004
- Google indexe le Flash - 28-04-2004
- Bingbot : le nom officiel du robot de Bing - 29-06-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


