Вот код, который я использую
if (!empty($_REQUEST['content'])&&!empty($_REQUEST['title'])&&!empty($_REQUEST['writer'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$writer = $_POST['writer'];
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$pure_content = $purifier->purify($content);
$entity_content = htmlentities($pure_content);
$entity_content = mysql_real_escape_string($entity_content);
mysql_query("INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)");
Теперь, после некоторого тестирования, я обнаруживал, что когда я набираю апостроф, то где-то вроде этого значения не вставляются в таблицу. Как мне это предотвратить? Существуют ли другие специальные символы, которые могут вызвать эту проблему.
Вот над чем я работаю: http://8mags.com/bored/people/
редактировать
Я обновил эти две строки кода
$add_content = "INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)";
$result = mysqli_query($mysqli, $add_content) or die(mysqli_error($mysqli));
Есть что-нибудь еще, что мне нужно изменить?
Второе обновление
Я тоже изменил этот код
$con = mysqli_connect($db_hostname,$db_username,$db_password);
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($db_database, $con);
Есть ли еще что-нибудь? Спасибо вам за помощь.
Вам просто нужно поставить это во время вставки.
$title = addslashes($_POST['title']);
$content = addslashes($_POST['content']);
$writer = addslashes($_POST['writer']);
И во время шоу (листинг)
stripslashes($VariableName)
Надеюсь, это поможет вам.
Других решений пока нет …