[Résolu] PHP - blocage sur Select * Where *

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 : [Résolu] PHP - blocage sur Select * Where *

Re: PHP - blocage sur Select * Where *

par Kathy » 07 oct. 2011, 16:34

Merci pour les explications!
Effectivement, ça change tout! Le code fonctionne correctement maintenant! :) Un tout grand merci pour cette aide précieuse et si rapide!

Re: PHP - blocage sur Select * Where *

par xTG » 07 oct. 2011, 16:21

$idform est une variable, une variable que tu utilises au sein de simple quote. La variable n'est donc pas interprétée, ce n'est qu'une chaîne de caractère. ;)

Ta requête doit donc être enserrée entre DOUBLE quote, et pour garder le côté correct pour le sgbd tu dois enserrer la variable entre simple quote (on n'utilise d'ailleurs jamais de double quote pour des strings dans une requête sql à ce qu'il me semble).

Re: PHP - blocage sur Select * Where *

par Kathy » 07 oct. 2011, 16:15

Merci pour cette réponse rapide xTG!

Par contre, je ne vois pas où cela pourrait causer problème dans mon code, le simple quote ou double.
C'est p-ê à force d'avoir le nez dedans depuis des heures que je ne le vois pas :? :)

Re: PHP - blocage sur Select * Where *

par xTG » 07 oct. 2011, 15:59

Simple quote = aucune interprétation des variables
Double quote = interprétation des variables
^^
$test = "ok";
echo 'Test = $test'; // Test = $test
echo "Test = $test"; // Test = ok

[Résolu] PHP - blocage sur Select * Where *

par Kathy » 07 oct. 2011, 15:46

Bonjour,

Je suis en train de faire un formulaire dans lequel j'aimerais intégrer les infos de l'utilisateur enregistré.
J'utilise le code suivant mais j'ai un soucis que je suppose venir de la ligne de code:
$sql = 'SELECT lastname,firstname,cb_telephone FROM jom16_comprofiler WHERE user_id = "$idform"';
<?php
$db = mysql_connect('*******', '*******', '*******'); 
mysql_select_db('*******',$db);

$user =& JFactory::getUser();
$idform = $user->id;
$sql = 'SELECT lastname,firstname,cb_telephone FROM jom16_comprofiler [color=#FF0000]WHERE user_id = "$idform"[/color]'; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$data = mysql_fetch_assoc($req);
 
if (!$user->guest) {

  echo 'Vs êtes connecté(e) en tant que ';
  echo '<b>' .$user->username . '</b><br/>';
  echo ' Nom: '.$data['lastname'].'<br>'; 
  echo ' Prénom: '.$data['firstname'].'<br>'; 
  echo ' Téléphone: '.$data['cb_telephone'].'<br>'; 
  echo ' Email: '.$user->email. '<br/>';
  echo 'n° utilisateur : ' . $user->id. '<br>';

  mysql_close();
}
?>
Comme résultat, j'obtiens:

Vs êtes connecté(e) en tant que username OK
Nom: champs vide ??
Prénom: champs vide ??
Téléphone: champs vide ??
Email: email OK
n° utilisateur : n° OK

Il n'arrive donc apparemment pas à interpréter la variable $idform car lorsque je remplace celle-ci par un numéro id, il me donne toutes les infos demandées.

Je vous remercie d'avance pour toute l'aide que l'on pourrait m'apporter!