【问题标题】:comparing session variable in where clause in mysql select query比较mysql select查询中where子句中的会话变量
【发布时间】:2017-02-09 21:34:36
【问题描述】:

各位开发者,请帮我整理一下,我有两个php文件,在第一个文件(login.php)中我声明了一个会话变量$_SESSION['email'];并将用户输入分配给它,在第二个文件中,我放置一个选择查询并使用该会话变量来比较查询的 where 子句中的数据库列,但会话变量在 index.php 文件中报告未定义的索引

我实际上希望查询检查数据库列是否为 marthar 然后回显一些 html 元素

登录.php

    $email = '".$_POST['email']."';
    $_SESSION['email']=$email;

email 是我的 html 输入的名称

index.php

    <?php
                $query=mysqli_query($db_handle,"SELECT * FROM members WHERE email='".$_SESSION['email']."'");
    $row=mysqli_fetch_array($query);

    if(is_array($row)){
    if($row['model']=='Marthar'){

    echo "<li>
    <a href='settings.php' class=' hvr-bounce-to-right'><i class='fa fa-cog nav_icon'></i> <span class='nav-label'>Settings</span> </a>
    </li>"; 
   }
   }

   ?>

【问题讨论】:

标签: php html mysql


【解决方案1】:

在您的login.php 中,请使用下面的内容并在您的php 页面顶部添加session_start();

$email="";
if (isset($_POST['email'])) { 
    $email=$_POST['email']; 
} else {
    $email='';
}
$_SESSION['email']=$email;

【讨论】:

    【解决方案2】:

    session_start() 添加到第二个文件的顶部。这应该使会话变量可用。

    【讨论】:

    • 我添加 session_start(); index.php 中第一个 php 块中的函数
    【解决方案3】:

    添加

    session_start();
    

    在您的 index.php 和 login.php 之上

    改变

     $email = '".$_POST['email']."';
    

     $email = $_POST['email'];
    

    在登录和索引 php 中添加 var_dump($_SESSION); 以确保会话已设置且值存在。并将var_dump($_POST); 也添加到您的登录名中

    【讨论】:

    • 它就在那里,先生
    • 添加这些东西,看看是否有任何变化。
    • 真的很感谢先生,那个仍然未定义的索引,'var_dump(SESSION);'添加一些错误,我不得不删除它
    • 你的代码也可以,问题首先出在我身上,我不断刷新页面而不是再次填写登录表单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    相关资源
    最近更新 更多