Как мне исправить неожиданную строку T? — PHP

#php

#php

Вопрос:

Мой скрипт запускается с неожиданной строкой t в пятой строке, как мне это исправить?

 <?php
include_once("../scripts/config.php");


$url = mysql_real_escape_string('$_POST['url']'); // LINE 5!

preg_match("/id=(\d )/", $url, $matches);
$like = $matches[1];
$current_pop = mysql_query("SELECT pop FROM likes WHERE id=$like") or die ("Query failed: " . mysql_error());


$pop = $current_pop   1;  

$update = mysql_query("UPDATE likes SET pop = ".$pop." WHERE id = ".$like."") or die ("Query failed: " . mysql_error());

?>
  

Ответ №1:

Это должно быть:

 $url = mysql_real_escape_string($_POST['url']);
  

В противном случае PHP видит '$_POST['url']' и считает, что она состоит из 3 частей:

  • '$_POST[' — строка,
  • url — какой-то токен
  • ']' — другая строка

Это сбивает с толку интерпретатор, поскольку он не знает, что делать, когда за строкой следует url -token.

Ответ №2:

В вашем коде есть уязвимости для SQL-инъекций. Пожалуйста, просмотрите это, прежде чем кто-то украдет всю информацию о вашем клиенте с вашего сайта:http://en.wikipedia.org/wiki/SQL_injection