Requete mysql (soustraction)

Fermé
raff-ael Messages postés 8 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 11 octobre 2014 - 4 juil. 2014 à 19:36
raff-ael Messages postés 8 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 11 octobre 2014 - 4 juil. 2014 à 20:02
Bonsoir,
Je débute en mysql et je voudrais réaliser une requête de soustraction via un boutton, mais impossible, ai'je oublié quelque chose ?

Voici le code:

payer 5 000 euros.
<form><input type="submit" name="Envoyer" value="Envoyer" /></form>
<?
if(isset($_POST['Envoyer'])){
$sql='UPDATE login SET euros=euros-5000 WHERE pseudo="'.$_SESSION['pseudo'].'"';
if ($sql) {
die('Requête invalide : ' . mysql_error());
}
else{

echo 'Vous avez payé';
}
}
?>

Merci :)

2 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
4 juil. 2014 à 19:55
'lut, ta requête SQL est bonne, mais encore faudrait-il la lançer ;)
$sql='UPDATE login SET euros=euros-5000 WHERE pseudo="'.$_SESSION['pseudo'].'"';
$req = mysql_query(); // <--- ceci
if ($req) {
	die('Requête invalide : ' . mysql_error());
} else {
	echo 'Vous avez payé';
}

Autrement, sache que l'extension PHP mysql et ses fonctions
mysql_*
sont obsolètes depuis PHP 5.5 et sont vouées a disparaitre dans les versions futures. Arrête d'apprendre avec
mysql_*
et passe à PDO.
De plus ton code a un potentiel risque d'injection SQL (pouvant modifier ou détruire ta base):
$_SESSION['pseudo']
peut contenir
"; UPDATE login SET euros=99999999; "
, qui effectivement se lancera en tant que commande et mettra tous les compteur d'argent a 99999999.
PDO possède des requêtes préparées, qui empêchent ça.
0
raff-ael Messages postés 8 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 11 octobre 2014
4 juil. 2014 à 20:02
ah mince, l'erreur bête ... ^^''

merci :)

Merci du conseil je vais m'y mettre de-suite alors x)
0