0

我是 PHP 新手,无法使用以下代码:

<?php
session_start();
include('db_connect.php');


//get the page id
if(isset($_SESSION['logged-in'])&&isset($_SESSION['username'])){
    $login = true;
} else {
    $login = false;
}

//check to see if the post_id and the forum_id is set and is a numeric value
if(isset($_GET['pid'])&&is_numeric($_GET['pid'])&&isset($_GET['id'])&&is_numeric($_GET['id'])){
    $pid = $_GET['pid'];
    $id = $_GET['id'];    
} else {
    die("Error");
}
echo $pid;
?>

当我运行此代码时,我的屏幕只显示“错误”。我做了一些测试,看起来 isset 和/或 is_numeric 属性不起作用。我通过 XAMPP(1.8.3-0) 使用 PHP(5.5.1) 和 MySQL。我真的不明白为什么会出现问题,我假设它与mysql有关。我错过了什么??任何帮助表示赞赏。

4

1 回答 1

0

这不会让你的代码完全独立工作,但我相信你会发现这个技巧现在和将来都非常有用。将显示为: 的行更改die("Error");为 read echo '<pre>'; print_r($_GET); echo '</pre>';。这将打印出整个 $_GET 数组,让您更好地了解正在发生的事情。

此外, is_numeric() 在这里也不够好。尝试将此函数添加到您的代码中:

function isInteger($input){ return(ctype_digit(strval($input))); }

用这个新函数替换对 is_numeric() 的每个调用。is_numeric() 将为诸如“1.25”之类的输入返回 true。我怀疑您在 ID 字段中使用浮点数;)

于 2013-09-05T20:07:36.237 回答