繁体   English   中英

由于某种原因,数值获取请求参数显示为零

[英]Numeric Get request parameter shows up as zero for some reason

我有一个正在测试的测试页面,也许只是太早了,但是我似乎遇到了一些奇怪的事情:

我有这个网址: http : //www.comehike.com/outdoors/trip_story.php? hike_id= 108

登录登录:test@comehike.com密码:密码

我这样做是为了获得hirp_id参数:

$hike_id = mysql_real_escape_string($_GET['hike_id']);
$errors = array();
if ( isset ( $hike_id ) && !empty ($hike_id)  )
{
   $errors[] = 'Hike id was empty.  Could not get the hike information';
}

但是,当我将内容输出到屏幕时,远足ID为0,如页面稍后所示。 因此,由于hiking_id为0,它通过了验证测试,这是一个错误。 任何想法为什么会这样,因为传递的him_id是108?

您的逻辑存在缺陷。 您的if语句真正要问的是:

“如果$ hike_id已设置且不为空,则抛出错误”

0 ,因此您的语句不会引发错误。 尝试使用另一个值,例如1,然后看看会发生什么。

另外,为什么在那使用mysql_real_escape_string? 等待转义,直到您在SQL查询中使用该值。 请注意,mysql_real_escape_string需要与数据库的活动连接,否则它将返回false(在数字上下文中解释为零;也许这就是为什么108会转换为0?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM