[英]How to get url ID in PHP? (for mysql_query UPDATE)
我想为一个名为Spiral url的脚本添加一个编辑按钮,但是问题是我无法获取URL ID。 这是我尝试过的:
/** get url id **/
$id = isset($_GET['id']) ? $_GET['id'] : '';
@mysql_query("UPDATE short_urls SET long_url = 'test' WHERE url_id = '".$id."' LIMIT 1");
我究竟做错了什么?
我还通过电子邮件发送了作者及其回复:
“我建议您在Stackoverflow上发帖-https: //stackoverflow.com/ 。我很乐意为您提供帮助,但是我看不到您做错了什么。我还在学习PHP。”
@
运算符抑制错误。 永远不要抑制错误 报废该代码并使用此代码:
if (!isset($_GET['id'])) {
die("missing query parameter");
}
$id = intval($_GET['id']);
if ($id === '') {
die("Invalid query parameter");
}
$sql = "UPDATE short_urls SET long_url = 'test' WHERE url_id=$id LIMIT 1";
$result = mysql_query($sql);
if ($result === FALSE) {
die("Mysql error: " . mysql_error() . $sql);
}
请注意,我假设id
参数是数字。 如果不是,则删除intval()内容。
确保$_GET['id']
的值实际上有一个值。 您的URL看起来像http://myurl.com/index.phtml?id=yourvalue
。 您可以执行以下操作:
print "id=".$_GET['id'];
另外,每当执行查询时,请确保转义用户可以操纵的所有变量。 不这样做,您就容易受到SQL注入攻击的影响。
mysql_real_escape_string- http://php.net/manual/zh/function.mysql-real-escape-string.php
@mysql_query("UPDATE short_urls SET long_url = 'test' WHERE url_id = '".mysql_real_escape_string($id)."' LIMIT 1");
您检查过网址了吗
http://www.somewebsite.com?id=56&other_car=test
专为“?” 在网址末尾后,还要检查所有部分是否被&符分解。
无法通过以下方式查看所有可用的get数组变量:
print_r($_GET);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.