Problème d'injection sql
vagner
Messages postés
17
Statut
Membre
-
le père -
le père -
Bonjour,
J'essais sans relache depuis plus d'un jour cette requette sql :
Mais php me retourne :
Pourant une requete du même type marche sur un autre de mes sites, que faire ?
J'essais sans relache depuis plus d'un jour cette requette sql :
if (empty($_POST["joureven"]))
else
{
$retour = mysql_query("SELECT * FROM evenements WHERE debut LIKE ("$_POST['joureven']%") ORDER BY debut DESC");
}
Mais php me retourne :
Parse error: syntax error, unexpected T_VARIABLE in /homez.109/poocovtn/www/calendrier/index.php on line 39
Pourant une requete du même type marche sur un autre de mes sites, que faire ?
A voir également:
- Problème d'injection sql
- Logiciel sql - Télécharger - Bases de données
- Tectro sre 703 injection notice - Forum Matériel & Système
- Sql (+) - Forum Programmation
- Notice d utilisation d un tectro sre703 injection - Forum PDF
- Requete sql pix - Forum PHP
7 réponses
Pardon...
$retour = mysql_query("SELECT * FROM evenements WHERE debut LIKE '$_POST[joureven]%' ORDER BY debut DESC");
pas d'apostrophes autour des index de tableaux à l'intérieur de chaînes entre double quotes
$retour = mysql_query("SELECT * FROM evenements WHERE debut LIKE '$_POST[joureven]%' ORDER BY debut DESC");
pas d'apostrophes autour des index de tableaux à l'intérieur de chaînes entre double quotes
Bonjour
$retour = mysql_query("SELECT * FROM evenements WHERE debut LIKE '$_POST['joureven']%' ORDER BY debut DESC");
Ta chaîne de requête commençait par ", elle finissait donc par le premier " , celui qu'il y avait avant $_POST...
Ce qu'il y avait après ne voulait plus rien dire
$retour = mysql_query("SELECT * FROM evenements WHERE debut LIKE '$_POST['joureven']%' ORDER BY debut DESC");
Ta chaîne de requête commençait par ", elle finissait donc par le premier " , celui qu'il y avait avant $_POST...
Ce qu'il y avait après ne voulait plus rien dire
Hum j'ai encore un petit soucis :
Me retourne ça :
dur : (
$retour = mysql_query("SELECT * FROM evenements WHERE valide='1' AND debut LIKE '$_POST[joureven]%' ORDER BY debut DESC";
while ($donnees = mysql_fetch_array($retour))
{
Me retourne ça :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
dur : (
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il devrait surtout te dire qu'il te manque une parenthèse après le DESC" mais je suppose que c'est une faute de recopie...
Ajour or die (mysql_error()) à la fin :
$retour = mysql_query("SELECT * FROM evenements WHERE valide='1' AND debut LIKE '$_POST[joureven]%' ORDER BY debut DESC") or die (mysql_error());
Ça ne va pas réparer le problème, mais ça va sortir un message d'erreur qui nous donnera quelques précisions sur la cause.
Ajour or die (mysql_error()) à la fin :
$retour = mysql_query("SELECT * FROM evenements WHERE valide='1' AND debut LIKE '$_POST[joureven]%' ORDER BY debut DESC") or die (mysql_error());
Ça ne va pas réparer le problème, mais ça va sortir un message d'erreur qui nous donnera quelques précisions sur la cause.
Hum alors voila en plus claire ce que j'essais :
et mysql me renvoit :
$query = 'SELECT * FROM evenements WHERE valide=1 AND debut LIKE $_POST[joureven]% ORDER BY debut DESC'; $retour = mysql_query($query) or die (mysql_error());
et mysql me renvoit :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[joureven]% ORDER BY debut DESC' at line 3
Encore un qui n'a rien compris à la différence entre les chaînes entre " et les chaînes entre ' en PHP
Si tu mets ta requête entre ', le $_POST[joureven] à l'intérieur NE REPRESENTE PAS la variable $_POST['joureven'], il représente juste la suite de caractères $,_,P,_ etc...
Il FAUT le mettre entre " pour qu'il soit considéré comme une variable.
De plus, au passage tu as fait disparaitre les ' qui entouraient la valeur du LIKE, ce qui va te donner une autre cause d'erreur.
Si tu mets ta requête entre ', le $_POST[joureven] à l'intérieur NE REPRESENTE PAS la variable $_POST['joureven'], il représente juste la suite de caractères $,_,P,_ etc...
Il FAUT le mettre entre " pour qu'il soit considéré comme une variable.
De plus, au passage tu as fait disparaitre les ' qui entouraient la valeur du LIKE, ce qui va te donner une autre cause d'erreur.
Merci la syntaxe est correct et mon script fonctionne,
bonne soirée !