-2

这是我的代码的一部分:

 if(!isset($_GET['username']) || !isset($_GET['sessionid']))
 {
  $returning = array('error' => 'Invalid query');
  echo json_encode($returning);
  break;
 }
 echo $_GET['username'];
 $z = mysql_real_escape_string($_GET['username']);
 echo $z;

我的查询:

tymonradzik.pl/THUNDER_HUNTER/thapi.php?q=xxx&username=ty221&sessionid=JRHjYqeZKBPq1LPPck0XrnCwJU2UKnfufWNem1d7D3yEOnu0HvX9SAFCuIxe6MImJwA6xNdbQLPF9kGRPE0IeGkJoRXvEGRncrtKfGV6sLLB5stVUQ6s

它只返回“ty221”,但应该返回“ty221ty221”。错误在哪里?

4

1 回答 1

0

根据文档

如果未指定链接标识符,mysql_connect()则假定打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像mysql_connect()在没有参数的情况下被调用一样。如果未找到或建立连接,E_WARNING则会生成级别错误。

返回转义的字符串,否则返回FALSE错误。

有根据的猜测是您没有与数据库的有效连接,因此mysql_real_escape_string尝试使用 中的配置值打开新连接php.ini,但失败了。


强制性安全通知:

您使用的是过时的数据库 API,应该使用现代替代品。您还容易受到 SQL 注入攻击,现代 API 可以让您更轻松地保护自己免受攻击。

于 2013-08-02T13:07:22.487 回答