Page 1 sur 1

Poblème if/else

Posté : 19 oct. 2011, 21:46
par marocri
Bonjour, enfet ma table a deux champs , le premier est un champ incrémanté, le deuxieme est un champ qui contient le pseudo du membre $_POST['pseudo']: or il prend a chaque fois la valeur 0

Voici le code:
[php$actif=$bdd->prepare('INSERT INTO code_actif(code,id) VALUES ("",:id)');
$actif->execute(array('id'=>$_POST['pseudo']));
$actif->closeCursor();

][/php]

Merci de m'aider

Bonne soirée

Re: Poblème if/else

Posté : 19 oct. 2011, 21:48
par marocri
Scuce me pour la balise de code:
$actif=$bdd->prepare('INSERT INTO code_actif(code,id) VALUES ("",:id)');
$actif->execute(array('id'=>$_POST['pseudo']));
$actif->closeCursor();

]

Re: Poblème if/else

Posté : 20 oct. 2011, 09:16
par macgawel
Bonjour.

1. Au lieu de faire un nouveau message tu peux éditer le premier, ça simplifie les choses...
Entre autres, ça nous évite de croire que tu as eu une réponse :wink:

2. Ne JAMAIS utiliser les données reçues directement dans une BDD.
Il y a de gros risques d' injection SQL.
Une recherche google (ou ici) sur "injection sql" devrait te donner des solutions...

3. Avant tout :
Juste avant ta requête, affiche le contenu du POST, histoire de vérifier :
print_r($_POST);
Et vérifie dans ta table que tu utilises bien les bons champs (code = champs auto-incrémenté, id=pseudo)

Re: Poblème if/else

Posté : 20 oct. 2011, 09:59
par xTG
2. Ne JAMAIS utiliser les données reçues directement dans une BDD.
Il y a de gros risques d' injection SQL.
Une recherche google (ou ici) sur "injection sql" devrait te donner des solutions...
Ce n'est pas le cas des requêtes préparées qui échappent les variables. ;)

Re: Poblème if/else

Posté : 20 oct. 2011, 10:48
par moogli
Ce n'est pas le cas des requêtes préparées qui échappent les variables.
oui mais pas toujours bien na :)

franchement dire on ne fait que des requêtes préparer on risque rien c'est comme dire on file BM a tous le monde y aura moins mort c'est forcément vrai :)

pour aider à la question de base :
- peux tu nous fournir le create table de la table code_actif histoire que l'on puisse voir ce qui ce passe ?
le coup du zéro me fait penser a une valeur par défaut.

si non a tu testé le point 3 de macgawel ? ;)

@+

Re: Poblème if/else

Posté : 20 oct. 2011, 14:53
par xTG
Ce n'est pas le cas des requêtes préparées qui échappent les variables.
oui mais pas toujours bien na :)

franchement dire on ne fait que des requêtes préparer on risque rien c'est comme dire on file BM a tous le monde y aura moins mort c'est forcément vrai :)
Il me semble avoir lu que la foncton PDO::quote est utilisée dans le prepare, donc cela revient exactement au même selon moi. :)
A moins que PDO décide aléatoirement de ne pas protéger telle ou telle variable. 8-)

Re: Poblème if/else

Posté : 20 oct. 2011, 14:56
par moogli
essai d'utiliser une requête préparé avec un paramètre du where que tu fournit dans le where tu va voir si ça fonctionne au poil :)

telle quelle ta requête préparée "quote" tout comme si c'est une chaine de caractère et c'est pas toujours bon. Les sgbd sont parfois sympa en castant des '2' ou '1.2' en entier / réel mais c'est pas le cas partout :)

@+

Re: Poblème if/else

Posté : 20 oct. 2011, 16:01
par xTG
essai d'utiliser une requête préparé avec un paramètre du where que tu fournit dans le where tu va voir si ça fonctionne au poil :)
Je sais qu'on dérive, mais pourrais-tu m'illustrer cet exemple ? Je n'arrive pas à me le représenter.

Re: Poblème if/else

Posté : 20 oct. 2011, 16:12
par stealth35
de toute façon avec PDO les requete préparée sont déactive par défaut , et en mode émuler il échappe tout les valeurs, y compris le type int :(