PHP MySQL查询中的URL变量

时间:2011-09-06 20:09:04

标签: php mysql

我正在尝试从URL获取变量,但由于某种原因,我无法让它工作。这一切都来自另一个网站的形式,这就是我需要从URL获取它的原因。这就是我现在所拥有的:

if (isset($_GET['PTS'])) {
    $sPTS = htmlentities($_GET['PTS']);

if(isset($_GET['submit']))
  { mysql_query("UPDATE table1 SET $sPTS=1, ENTRY=5") or die (mysql_error()); }}

感谢您的帮助......我还是新手并且学习。

2 个答案:

答案 0 :(得分:3)

我想指出的代码有一些问题,他们可能会或可能不会解决这个问题。

  • 您最终使用htmlentities()作为字段名称。也许一点点的数据检查会更好。
  • 您允许GET语句指定没有限制的字段名称。这非常危险
  • UPDATE语句中没有where子句。表格中的所有记录都将更新。
  • 如果提交是通过POST进行的,则不会在此处进行。我只是提到你这是你忽略的事情。 $_REQUEST更适合您的使用(比$_GET)?

答案 1 :(得分:0)

尝试

if(isset($_GET['submit']))
{ mysql_query("UPDATE table1 SET `".$sPTS."`=1, `ENTRY`=5") or die (mysql_error()); }}

你也应该在那些$ _GET值上使用mysql_real_escape字符串

$sPTS = mysql_real_escape_string(htmlentities($_GET['PTS']));