Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ISSET GET/如何忽略数据库中不存在的字符串项_Php_Mysql_Isset - Fatal编程技术网

Php ISSET GET/如何忽略数据库中不存在的字符串项

Php ISSET GET/如何忽略数据库中不存在的字符串项,php,mysql,isset,Php,Mysql,Isset,我有一个isset/get数组,如果从以前的脚本发布,它将使用vars$state、$cat和$sub执行脚本 我的问题:如何只允许我的mysql数据库中的isset($\u GET)条目显示,并对所有不在我的数据库中的其他条目抛出错误 下面是一个运行良好的现有脚本的一部分,但我已将其作为示例展示,以便尝试并理解如何忽略数据库中不存在的字符串。它当前允许传递任何字符串 if index.php?state=Washington is changed to

我有一个isset/get数组,如果从以前的脚本发布,它将使用vars$state、$cat和$sub执行脚本

我的问题:如何只允许我的mysql数据库中的isset($\u GET)条目显示,并对所有不在我的数据库中的其他条目抛出错误

下面是一个运行良好的现有脚本的一部分,但我已将其作为示例展示,以便尝试并理解如何忽略数据库中不存在的字符串。它当前允许传递任何字符串

    if
    index.php?state=Washington 
        is changed to
    index.php?state=Hempville
脚本仍然在我的最后一页中作为新实例传递Hempville

我不是一个彻头彻尾的n3wb,所以谢谢你的帮助

范例

$self = mysql_escape_string($_SERVER['PHP_SELF']);
$state = mysql_escape_string($_GET['state']);
$cat = mysql_escape_string($_GET['cat']);
$sub = mysql_escape_string($_GET['sub']);
而且,isset/U GET例程是:

if (isset($_GET['state'], $_GET['cat'], $_GET['sub'])) {
echo "<h3>$state</h3>";

// Breadcrumb 
echo "<a href=\"./\">HOME</a> >> <a href=\"index.php?state=$state\">$state</a> >> <a href=\"#\">$cat</a> >> <a href=\"index3.php?cat=$catup&sub=$sub&state=$state\">$sub</a>";
if(isset($\u GET['state']、$\u GET['cat']、$\u GET['sub'])){
回显“$state”;
//面包屑
回声“>>>>>>”;

如果我理解正确,您试图只允许数据库中已有的状态成为有效字符串

可以这样做的一种方法是,只需查找(选择)状态,以确保它位于数据库中

例如: (比苏多)


如果我理解正确,您试图只允许数据库中已经存在的状态成为有效字符串

可以这样做的一种方法是,只需查找(选择)状态,以确保它位于数据库中

例如: (比苏多)


您需要根据数据集进行验证。您可以通过多种方式进行验证:

例如,使用可接受的值设置会话变量:

 if(!isset($_SESSION["acceptable_states"])) {  
    $q = "select distinct(state) from states_table";
    $r = mysql_query($q);
    while($row = mysql_fetch_row($r)) {
        $_SESSION["acceptable_states"][] = $row[0];
    }
}
然后,对于$_GET[“state”],您将执行以下操作:

if(in_array($_GET["state"], $_SESSION["acceptable_states"])) {
    //display page or whatever here
} else {
    echo 'No Such State';
}

然后对每个变量执行此操作。

您需要根据数据集进行验证。您可以通过多种方式执行此操作:

例如,使用可接受的值设置会话变量:

 if(!isset($_SESSION["acceptable_states"])) {  
    $q = "select distinct(state) from states_table";
    $r = mysql_query($q);
    while($row = mysql_fetch_row($r)) {
        $_SESSION["acceptable_states"][] = $row[0];
    }
}
然后,对于$_GET[“state”],您将执行以下操作:

if(in_array($_GET["state"], $_SESSION["acceptable_states"])) {
    //display page or whatever here
} else {
    echo 'No Such State';
}

然后对每个变量执行此操作。

不确定你在问什么,但可能是如果(isset(isset($U GET['state'))&&isset(isset($U GET['cat'))&&isset(isset($U GET['state')){//做点什么不确定你在问什么,但可能是如果(isset(isset($U GET['state'))&&isset($GET['cat'))&&isset($['cat'))和isset($($GET['sub')){//做点什么)