IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Requete SQL et stripslashes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Par défaut [Mail] Requete SQL et stripslashes
    Bonjour j'envoie un mail de confirmation aux nouveaux inscrits, une fois qu'ils ont rentré l'url l'inscription est confirmée dans la base de donnée.

    Maintenant j'ai reussi a faire mon stripslashes et le echo $pseudo marche bien par contre des que je le passe dans la requete sql il me retourne une erreur et seulement la.

    j'ai tenter de mettre dans une variable a côté $Stripseudo ou de mettre le stripslashes dans la requete et même erreur.

    Le stripslashes pas compatible avec les requete sql ?

    require ("admin/conf.php");

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    						if (isset($_GET['pseudo'])) {
    						$pseudo = $_GET['pseudo'];
    						$Stripseudo = stripSlashes($pseudo);
    						$verif = mysql_query("SELECT * FROM `membre`  WHERE Pseudo = '".$Stripseudo."' AND Confirm LIKE 'non' ");
    						$row=mysql_fetch_array($verif);
    						$cle = md5($row['Pseudo'].$row['Passe'].$row['Email']);
     
    						if ($cle == $_GET['cle']) {
    						$valide = "UPDATE membre SET Confirm = 'oui' WHERE Pseudo = '".stripslashes($_GET['pseudo'])."' ";
    						$test = mysql_query($valide) or die("erreur ! ".mysql_error());
    						echo "<b>Inscription finalisée avec succès !<br /><br />
    						 <a href=\"../index.php\">Retour a l'index</a>";
    						}else{
    						echo "lien incorrect : <a href=".$_SESSION['UrlBase']."index.php>Retour a l'index</a>";
    						}
     
    						}else{
    						echo "lien incorrect : <a href=".$_SESSION['UrlBase']."index.php\">Retour a l'index</a>";
    						}

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je pense plutôt qu'il faut les mysql_real_escape_string (voir la FAQ pour une solution portable prenant en compte la fonctionnalité magic_quotes_gpc) plutôt que de stripslashes les données. Le but étant de protéger (échapper) les caractères spéciaux pour le SGBD (MySQL ici).

    Rassurez-moi : vous ne rencontrez ce problème que lorsque les données comportent des caractères spéciaux (principalement ' et ") ? Quelle est l'erreur ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Par défaut
    Citation Envoyé par julp Voir le message
    Je pense plutôt qu'il faut les mysql_real_escape_string (voir la FAQ pour une solution portable prenant en compte la fonctionnalité magic_quotes_gpc) plutôt que de stripslashes les données. Le but étant de protéger (échapper) les caractères spéciaux pour le SGBD (MySQL ici).

    Rassurez-moi : vous ne rencontrez ce problème que lorsque les données comportent des caractères spéciaux (principalement ' et ") ? Quelle est l'erreur ?
    oui uniquement dans ces cas et l'erreur est

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Agité
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
    D'accord, vous faites l'opération inverse de ce que vous devriez faire (stripslashes au lieu de mysql_real_escape_string - traitement à adapter à la valeur de magic_quotes_gpc), ce qui conduit dans ces cas particuliers à une erreur de syntaxe, d'où cette erreur.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Par défaut
    en utilisant votre requete il me rajoute : \\\\\\\ plutôt que d'en enlever, je suis perdu.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Agité
    en utilisant votre requete il me rajoute : \\\\\\\ plutôt que d'en enlever, je suis perdu.
    Je peux l'expliquer parce que magic_quotes_gpc est actif (à vous de confirmer) ! La fonctionnalité magic_quotes_gpc constitue une sorte de "protection" générique (PHP applique en interne avant le début de votre script la fonction addslashes sur toutes les variables externes - méthodes GET, POST, etc) donc ces caractères sont échappés en tout deux fois (une deuxième fois par votre mysql_real_escape_string). Le plus sage, comme je l'ai dit plus haut est d'utiliser une fonctionne comme celle que propose la FAQ.

    Eventuellement, si vous en avez la possibilité, vous pouvez désactiver la fonction magic_quotes_gpc (par fichier htaccess ou directement dans le fichier php.ini).

    Note : elle n'existera plus en PHP 6.

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  3. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  4. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo