Я бы очень признателен за любую помощь, которую я могу получить.mysql_real_escape_string игнорируется
У меня возникли проблемы с формой, и я не могу заставить mysql_real_escape_string работать вообще.
Я использую MySQL 5.5 с PHP и для его проверки. Я создал простую форму. Magic Quotes не включен вообще.
Использование этой формы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="event_ad" action="test.php" method="post">
<table>
<tr>
<td>Event Name:</td>
<td><input name="event_name" type="text" size="90" /></td>
</tr>
<tr>
<td>Start Date:</td>
<td><input name="start_date" type="text" size="90" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Submit" type="submit" id="Submit" value="Add New Event" /></td>
</tr>
</table>
</form>
</body>
</html>
Затем данные поступают на вход Nto таблицы с помощью test.php
<?php
mysql_connect("localhost","username","password") or die(mysql_error());
mysql_select_db("databasename") or die(mysql_error());
$name = $_POST['event_name'];
$sdate = $_POST['start_date'];
$name = mysql_real_escape_string($name);
$sql = "INSERT INTO tblevents (event_name, event_date) VALUES ('" . $name . "','" . $sdate . "')";
mysql_query($sql);
echo "success";
?>
(соединительные детали изменены)
Когда я ввести Имя события вывода «Rielly» Smith »он вставлен в таблицу MySQL как O'Rielly« Smith »
Там нет обратных косых червей, вообще не исчезает.
Я действительно пробовал интернет, пытаясь разобраться в этом, но кажется, что он работает для всех остальных.
Я пропустил что-то принципиальное здесь? Я был бы очень признателен, если бы кто-то мог направить меня в правильном направлении.
Это мой первый пост на этом форуме, а форматы html и кода не кажутся такими же, как и в большинстве форумов, которые я посетил, и вы не можете просмотреть предварительный просмотр, поэтому я надеюсь, что это получится ОК.
Заранее благодарите всех, кто предлагает помощь. Cheers Al.
Забудьте mysql_real_escape_string. Вместо этого используйте mysqli или PDO и связанные аргументы. – Quentin
Как вы знаете, что это такое? Вы повторяете «$ name»? –
Извините, он не отвечает на ваш вопрос, но я настоятельно рекомендую переключиться на что-то по линии PDO. Функции Mysql устарели, начиная с версии PHP версии 5.4. –