我的脚本在第五行发出一个意想不到的字符串,我该怎么解决这个问题呢?
<?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());
?>
答案 0 :(得分:6)
应该是:
$url = mysql_real_escape_string($_POST['url']);
否则PHP会看到'$_POST['url']'
,并认为它由3部分组成:
'$_POST['
- 一个字符串,url
- 某种令牌']'
- 另一个字符串这会使解释器感到困惑,因为当字符串后跟url
- 令牌时,它不知道该怎么做。
答案 1 :(得分:2)
您的代码存在SQL注入漏洞。在有人从您的网站上窃取您的所有客户信息之前,请先查看此信息:http://en.wikipedia.org/wiki/SQL_injection