WW : sqlite_query(): unrecognized token: "!!"
Résolu
mmoussouni
Messages postés
339
Statut
Membre
-
le père -
le père -
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).
Merci d'avance de votre aide,
mmoussouni.
Edit : Désolé pour la ligne de requête plus qu'indigeste ...
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:
- WW : sqlite_query(): unrecognized token: "!!"
- Ww waptrik.com - Télécharger - Divers TV & Vidéo
- Ww tubidy.com - Télécharger - Audio & Musique
- Ww hamster.com - Télécharger - Conversion & Codecs
- Ww - Forum Jeux vidéo
- Ww hotmail fr - Guide
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.
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.
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");
}
?>
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
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);