Где поместить "mysql_real_escape_string" в этот код? - PullRequest
0 голосов
/ 28 января 2012

Я посмотрел другие примеры здесь, но синтаксис всех остальных отличается от того, что у меня есть, поэтому я понятия не имею, куда поместить "mysql_real_escape_string". Вот мой текущий код:

include("dbconnect.php");

mysql_select_db("scratch", $con);

$sql= "INSERT INTO stories (author, story_name, story)

VALUES 
('$_POST[author]','$_POST[story_name]', '$_POST[story]')";


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "Story Submitted!";

mysql_close($con)

Где бы я добавил эту строку в этом?

Ответы [ 3 ]

2 голосов
/ 28 января 2012

Вам нужно экранировать любые значения переменных, которые вы включаете в свой запрос.Таким образом, в вашем коде это будет:

  • $_POST['author']
  • $_POST['story_name']
  • $_POST['story']

Поэтому измениПеременная $sql выглядит следующим образом:

$author     = mysql_real_escape_string($_POST['author']);
$story_name = mysql_real_escape_string($_POST['story_name']);
$story      = mysql_real_escape_string($_POST['story']);

$sql= "
INSERT INTO stories (author, story_name, story)
VALUES ('$author','$story_name', '$story')
";

Вы, вероятно, также должны добавить проверки isset или empty при использовании переменных $_POST, чтобы избежать уведомлений, если они не существуют.Наконец, вам лучше использовать PDO с подготовленными выражениями, чем менее надежное расширение mysql.

1 голос
/ 28 января 2012

// ИСПОЛЬЗОВАТЬ В ЭТОМ СПОСОБЕ, ЗАПРОС БУДЕТ ПРАВИЛЬНО ИСПОЛЬЗОВАТЬ mysql_real_escape_string

$sql= 'INSERT INTO stories (author, story_name, story)
   VALUES  
   ('.mysql_real_escape_string($_POST[author]).',
     '.mysql_real_escape_string($_POST[story_name]).',
     '.mysql_real_escape_string($_POST[story]).')';
0 голосов
/ 28 января 2012

помещает переменные POST в новые переменные, затем применяет mysql_real_escape_string и, наконец, помещает новые переменные в оператор SQL

Вот код:

include("dbconnect.php");

mysql_select_db("scratch", $con);
$author = mysql_real_escape_string($_POST[author]);
$story_name = mysql_real_escape_string($_POST[story_name]);
$story=mysql_real_escape_string($_POST[story]);

$sql= "INSERT INTO stories (author, story_name, story)

VALUES 
('$author','$story_name', '$story')";


if (!mysql_query($sql,$con))
{
 die('Error: ' . mysql_error());
 }
echo "Story Submitted!";

mysql_close($con);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...