Javascript PHP验证代码不适用于年龄?

Javascript PHP验证代码不适用于年龄?,javascript,php,html,validation,settings,Javascript,Php,Html,Validation,Settings,我有一个刚刚登录的用户,我对该用户的年龄进行了会话,因为这是我正在进行的验证所需要的。一旦用户登录,他将被重定向到一个页面,该页面有一个表,显示他可以进行的调查。当管理员创建调查时,有一个年龄范围选项,这意味着只有具有此年龄段的特定人员才能进行调查 <select name="agestart" class="form-control-static"> <label> TO </label> <select name="ageend" c

我有一个刚刚登录的用户,我对该用户的年龄进行了会话,因为这是我正在进行的验证所需要的。一旦用户登录,他将被重定向到一个页面,该页面有一个表,显示他可以进行的调查。当管理员创建调查时,有一个年龄范围选项,这意味着只有具有此年龄段的特定人员才能进行调查

<select name="agestart" class="form-control-static">      

<label> TO </label>

<select name="ageend" class="form-control-static">
现在,我正在尝试进行验证/设置,使用户只能看到与其年龄范围相匹配的调查

 <?php



    $mysqli = mysqli_connect("localhost", "root", "", "imetrics");

    $query = mysqli_query($mysqli,"SELECT * FROM surveyform");

    if($query){
        while($row = mysqli_fetch_array($query)){

            $id = $row['survey_id'];
            $title = $row['surveytitle'];
            $agestart = $row['age_start'];
            $ageend = $row['age_end'];

            if(!$_SESSION['age'] >= $agestart || $_SESSION['age'] <= $ageend ){

                echo "<tr align='center'>";
                echo "<td><font color='black'>" . $id . "</font></td>";
                echo "<td><font color='black'>" . $title . "</font></td>";
                echo "<td><a href='preview.php?survey_id=$id'><input class='btn btn-danger' type='button' value='Take Survey'/></td>";

                echo "</tr>";
            }
        }
    }

    ?>

以下是进行年龄检查的正确方法:

$age = intval($_SESSION['age']);
if ($agestart <= $age && $age <= $ageend) {
$age=intval($_SESSION['age']);

如果($agestart以下是进行年龄检查的正确方法:

$age = intval($_SESSION['age']);
if ($agestart <= $age && $age <= $ageend) {
$age=intval($_SESSION['age']);

如果($agestart您可以做两件事,要么添加session_start();修复您的条件,要么修改SQL查询

session_start();
$sessionAge = $_SESSION['age'];

$query = mysqli_query($mysqli,"SELECT * FROM surveyform WHERE $sessionAge BETWEEN age_start AND age_end");  

// OR with a condition

if(($agestart <= $sessionAge) && ($sessionAge <= $ageend)) {
    //....
}
session_start();
$sessionAge=$_SESSION['age'];
$query=mysqli\u query($mysqli,“从surveyform中选择*,其中$sessionAge介于年龄开始和年龄结束之间”);
//还是有条件

如果($agestart您可以做两件事,要么添加session_start();修复您的条件,要么更改SQL查询

session_start();
$sessionAge = $_SESSION['age'];

$query = mysqli_query($mysqli,"SELECT * FROM surveyform WHERE $sessionAge BETWEEN age_start AND age_end");  

// OR with a condition

if(($agestart <= $sessionAge) && ($sessionAge <= $ageend)) {
    //....
}
session_start();
$sessionAge=$_SESSION['age'];
$query=mysqli\u query($mysqli,“从surveyform中选择*,其中$sessionAge介于年龄开始和年龄结束之间”);
//还是有条件

如果($agestart如我所见,您尚未启动会话:

session_start(); //Should be at the beginning of the file
请注意,
$\u SESSION['age']
应该有一个值:

$age = (isset($_SESSION['age'])) ? $_SESSION['age'] : 0; //For PHP < 7.x
$age = $_SESSION['age'] ?? 0; //For PHP 7
$age=(isset($\u SESSION['age'])?$\u SESSION['age']:0;//对于PHP<7.x
$age=$\u会话['age']??0;//对于PHP7

我看到您尚未启动会话:

session_start(); //Should be at the beginning of the file
请注意,
$\u SESSION['age']
应该有一个值:

$age = (isset($_SESSION['age'])) ? $_SESSION['age'] : 0; //For PHP < 7.x
$age = $_SESSION['age'] ?? 0; //For PHP 7
$age=(isset($\u SESSION['age'])?$\u SESSION['age']:0;//对于PHP<7.x
$age=$\u会话['age']??0;//对于PHP7

布尔条件写得不正确;我知道逻辑上这等同于上述答案,但我认为这更容易阅读:

if($_SESSION['age'] >= $agestart && $_SESSION['age'] <= $ageend)

如果($\u SESSION['age']>=$agestart&&$\u SESSION['age']]布尔条件写得不正确;我知道逻辑上这等同于上述答案,但我认为这更容易理解:

if($_SESSION['age'] >= $agestart && $_SESSION['age'] <= $ageend)

if($\u SESSION['age']>=$agestart&&$\u SESSION['age']启动会话也会有所帮助,删除
并在
if
中更改
&&
|
condition@Fred-ii-这显然不是完整的文档;OP说这种情况表现得很奇怪,所以这不是会话问题。@ChrisG问题太不清楚了,他们为什么有
,如果有结束使用这些来依赖查询。感谢您提供的信息。开始会话也会有帮助,删除
并在
if
中更改
&&
|
condition@Fred-ii-这显然不是完整的文档;OP说这种情况表现得很奇怪,所以这不是会话问题。@ChrisG问题不是oo不清楚,以及为什么他们有
,以及他们是否打算使用这些来依赖查询。谢谢你提供的信息sirsThank you very sir@Chris G it work!一旦我的声誉超过15,我会投票支持这个答案。谢谢,但一定要看一下Yolo的答案,找到在SQL查询中包含年龄检查的方法。非常感谢uch sir@Chris G成功了!一旦我的声誉超过15,我会投票支持这个答案。谢谢,但一定要看一下Yolo的答案,找到在SQL查询中包含年龄检查的方法。