WW : sqlite_query(): unrecognized token: "!!"

Résolu/Fermé
mmoussouni Messages postés 269 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 21 juillet 2011 - Modifié par mmoussouni le 21/07/2011 à 15:05
 le père - 21 juil. 2011 à 17:33
Bonjour,
Je suis en train de faire un petit site mais j'ai eu un problème avec l'utilisation de SQLite : Warning: sqlite_query(): unrecognized token: "!!" in /var/www/riders.anonymes/blog/create.php on line 12 Erreur SQLite : unrecognized token: "!!"
Le message en gras est le message originel, l'autre la variable $err. La ligne commenté a servi pour le débuggage (pour savoir si ma fonction bb_code insérait des caractères "indésirables" mais elle fonctionne correctement).

<!DOCTYPE HTML>   

<?php   
include('../functions.php');   
session_start();   
need_log(); // L'utilisateur doit être connecté pour laisser un message   
$db = sqlite_open("../sqlite.db");   

if(isset($_POST['title']) && isset($_POST['content']) && !empty($_POST['title']) && !empty($_POST['content'])) {   
  $string = bb_code(htmlentities($_POST['content'])); // bb_code is in functions.php  
  echo '<br />'.$string.'<br />'; //Pour voir si le problème vient de ma fonction bb_code   
  $rep = sqlite_query($db,sqlite_escape_string('"INSERT INTO blog_post VALUES (NULL,"'.$_SESSION['login'].'","'.$_POST['title'].'","'.$string.'","'.date("Y-m-d H:i:s").'");"'),SQLITE_NUM,$err);   
  if($rep == FALSE)   
    echo 'Erreur SQLite : '.$err;   
  else   
    header("Location: ./index.php");   
}   
?>   


Merci d'avance de votre aide,
mmoussouni.




Edit : Désolé pour la ligne de requête plus qu'indigeste ...
A voir également:

4 réponses

Bonjour,

sqlite_escape_string doit être appliquée à chacune des valeurs passées à la requête ($_SESSION['login'],$_POST['title'],..) mais surtout pas globalement à la requête. Tu n'as pas dû comprendre le rôle de cette fonction
D'ailleurs, si ça avait un sens de le faire sur l'ensemble de la requête, ce serait directement prévu dans la fonction sqlite_query et on n'aurait pas à s'en soucier.
0
mmoussouni Messages postés 269 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 21 juillet 2011 38
21 juil. 2011 à 15:23
C'est-à-dire comme ça?

<!DOCTYPE HTML>   

<?php   
include('../functions.php');   
session_start();   
need_log(); // L'utilisateur doit être connecté pour laisser un message   
$db = sqlite_open("../sqlite.db");   

if(isset($_POST['title']) && isset($_POST['content']) && !empty($_POST['title']) && !empty($_POST['content'])) {   
  $string = bb_code(htmlentities($_POST['content'])); // bb_code is in functions.php  
  echo '<br />'.$string.'<br />'; //Pour voir si le problème vient de ma fonction bb_code   
  $rep = sqlite_query($db,'"INSERT INTO blog_post VALUES (NULL,"'.sqlite_escape_string($_SESSION['login']).'","'.sqlite_escape_string($_POST['title']).'","'.sqlite_escape_string($string).'","'.date("Y-m-d H:i:s").'");"',SQLITE_NUM,$err);   
  if($rep == FALSE)   
    echo 'Erreur SQLite : '.$err;   
  else   
    header("Location: ./index.php");   
}   
?>
0
mmoussouni Messages postés 269 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 21 juillet 2011 38
21 juil. 2011 à 15:25
C'est la même chose....
0
Ce serait tellement plus clair si tu créais ta requête à part, et que tu en faisais un echo pour voir ce qu'il y a dedans...
il y a des " qui n'ont rien à faire au début et à la fin de ta requête

 $requete='INSERT INTO blog_post VALUES (NULL,"'.
              sqlite_escape_string($_SESSION['login']).'","'.
              sqlite_escape_string($_POST['title']).'","'.
              sqlite_escape_string($string).'","'.
              date("Y-m-d H:i:s").'");';
 echo $requete;
 $rep = sqlite_query($db,$requete,SQLITE_NUM,$err); 
0