par
Selinaa » 10 avr. 2012, 21:19
Bonsoir à tous,
J'ai un script permettant d'ajouter des commentaires. Seulement, j'ai remarqué que dès que le commentaire possède une apostrophe ( ' ), la requête SQL merde.
Pourriez-vous me dire comment je dois faire pour supprimer ce problème ?
<?php
include 'includes/config.php';
if (isset($_POST["id"])){
$id=$_POST["id"];
}
$regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
if (preg_match($regex,$_POST['mail']))
{
$email = TRUE;
$mail=$_POST['mail'];
if (isset($_POST["pseudo"]))
{
if($_POST["pseudo"] != "")
{
$pseudo=$_POST["pseudo"];
if (isset($_POST["heure"])){
$heure=$_POST["heure"];
}
if (isset($_POST["date"])){
$date=$_POST["date"];
}
if (isset($_POST["commentaire"])){
$commentaire=$_POST["commentaire"];
}
mysql_connect($host, $user, $pass) or die("Impossible de se connecter : " . mysql_error());
//Sélection de la base de donnée
mysql_select_db($db) or die("Select `$db` impossible : " . mysql_error());
mysql_query("SET NAMES UTF8");
$sql="INSERT INTO commentaire(article_NoAutoArticle, AuteurCom, MailCom, TexteCom, HeureCom, DateCom) VALUES ('$id','$pseudo', '$mail', '$commentaire', '$heure', '$date')";
//Lancement d'une ou de plusieurs requêtes
$result = mysql_query($sql) or die("Échec de la requête : " . mysql_error());
header("Location:article.php?id=".$id);
}
else
{
echo '<p>Veuillez entrer un pseudo valide.</p>';
echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
}
}
}
else
{
$email = FALSE;
$form=true;
echo '<p>Veuillez entrer une adresse e-mail valide.</p>';
echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
}
?>
Merci de votre aide !
Bonsoir à tous,
J'ai un script permettant d'ajouter des commentaires. Seulement, j'ai remarqué que dès que le commentaire possède une apostrophe ( ' ), la requête SQL merde.
Pourriez-vous me dire comment je dois faire pour supprimer ce problème ?
[php]
<?php
include 'includes/config.php';
if (isset($_POST["id"])){
$id=$_POST["id"];
}
$regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
if (preg_match($regex,$_POST['mail']))
{
$email = TRUE;
$mail=$_POST['mail'];
if (isset($_POST["pseudo"]))
{
if($_POST["pseudo"] != "")
{
$pseudo=$_POST["pseudo"];
if (isset($_POST["heure"])){
$heure=$_POST["heure"];
}
if (isset($_POST["date"])){
$date=$_POST["date"];
}
if (isset($_POST["commentaire"])){
$commentaire=$_POST["commentaire"];
}
mysql_connect($host, $user, $pass) or die("Impossible de se connecter : " . mysql_error());
//Sélection de la base de donnée
mysql_select_db($db) or die("Select `$db` impossible : " . mysql_error());
mysql_query("SET NAMES UTF8");
$sql="INSERT INTO commentaire(article_NoAutoArticle, AuteurCom, MailCom, TexteCom, HeureCom, DateCom) VALUES ('$id','$pseudo', '$mail', '$commentaire', '$heure', '$date')";
//Lancement d'une ou de plusieurs requêtes
$result = mysql_query($sql) or die("Échec de la requête : " . mysql_error());
header("Location:article.php?id=".$id);
}
else
{
echo '<p>Veuillez entrer un pseudo valide.</p>';
echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
}
}
}
else
{
$email = FALSE;
$form=true;
echo '<p>Veuillez entrer une adresse e-mail valide.</p>';
echo '<a href="article.php?id='.$id.'" style="color:#000; text-decoration:none; font-weight:bold;">Retour aux commentaires </a>';
}
?>
[/php]
Merci de votre aide !