Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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会话身份验证_Php_Html_Session - Fatal编程技术网

登录的PHP会话身份验证

登录的PHP会话身份验证,php,html,session,Php,Html,Session,我的网站导航栏应根据登录前后的会话进行相应更改。但是,会话无法工作,因为它同时显示登录和注销菜单,下面是我的php登录代码: <?php session_start(); include 'dbh.php'; $login_email = $_POST ['login_email']; $login_pwd = $_POST ['login_pwd']; $sql_login = "select * from userdata where email='$login_email' an

我的网站导航栏应根据登录前后的会话进行相应更改。但是,会话无法工作,因为它同时显示登录和注销菜单,下面是我的php登录代码:

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

$login_email = $_POST ['login_email'];
$login_pwd = $_POST ['login_pwd'];

$sql_login = "select * from userdata where email='$login_email' and 
pwd='$login_pwd'";

$check_user= mysqli_query($conn, $sql_login);

if($row = mysqli_fetch_assoc($check_user)){
    $_SESSION['id']= $row['id'];
    $_SESSION['authenticated']=true;

    header("Location: testing.html");
}else{
    echo "Your email or password is incorrect"; 
}

mysqli_close($conn);
HTML,包括登录和注册下拉菜单:

<?php
if(isset($_SESSION['authenticated']))
{
    echo '
    <li class="dropdown">
      <a class="dropdown-toggle" data-toggle="dropdown" href="#"><b>Admin</b><span class="caret"></span></a>
      <ul class="dropdown-menu">
        <li><a href="logout.php">Logout</a></li>
      </ul>
    </li>';
}else{
    echo '
    <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><b>LOGIN</b><span class="caret"></span></a>
        <ul id="login-dp" class="dropdown-menu">
            <ul class="nav nav-tabs">
                <li class="active"><a href="#Login" data-toggle="tab">Login</a></li>
                <li><a href="#Registration" data-toggle="tab">Registration</a></li>
                <div class = "tab-content">
                <div class="tab-pane active" id="Login">
                    <b><em>Listen to the voice of Soul</em></b>
                    <form class="form" role="form" method="post" action="login.php" accept-charset="UTF-8"id="login-nav">
                        <div class="form-group">
                            <label class="sr-only" for="email1">Email address</label>
                            <input type="email" class="form-control"id="email1" name="login_email" placeholder="Email address" required>
                        </div>
                        <div class="form-group">
                            <label class="sr-only" for="pwd1">Password</label>
                            <input type="password" class="form-control" id="pwd1" name="login_pwd" placeholder="Password" required>
                            <div class="help-block text-right"><a href="">Forget the password?</a></div>
                        </div>  
                        <div class="form-group">
                            <input type="submit" name="loginBtn" class="btn btn-primary btn-block">Sign in</button>
                        </div>
                        <div class="checkbox">
                            <label><input type="checkbox">Keep me logged-in</label>
                        </div>
                    </form>
                </div>
                <div class="tab-pane" id="Registration">
                    <b><em>Listen to the voice of Soul</em></b>
                    <form class="form" role="form" method="POST" action="signup.php" accept-charset="UTF-8"id="signup-nav">
                        <div class="form-group">
                            <label class="sr-only" for="email2">Email address</label>
                            <input type="email" class="form-control"id="email2" name="signup_email" placeholder="Email address" required>
                        </div>
                        <div class="form-group">
                            <label class="sr-only" for="password2">Password</label>
                            <input type="password" class="form-control" id="pwd2" name="signup_pwd" placeholder="Password" required>
                        </div>  
                        <div class="form-group">
                            <label class="sr-only" for="password3">Confirm Password</label>
                            <input type="password" class="form-control" id="pwdcon" name="signup_pwdcon" placeholder="Confirm Password" required>
                        </div>  
                        <div class="form-group">
                            <input type="submit" name="signUpBtn" value="Sign Up" class="btn btn-primary btn-block"></button>
                        </div>
                    </form>
                </div>  
                </div>
            </ul>
        </ul>
    </li>';
}
?>

我对php和html都不熟悉,这是因为错误的echo标记吗?

如果它同时输出If和else条件,可能不是将其解释为php

不要重定向到HTML文件,而是尝试一个php文件位置:testing.php

记住将session\u start添加到HTML页面的顶部,并确保语句使用的比较类型正确:

如果$\u会话['authenticated']==true{


另一方面,您的sql语句容易受到sql注入的攻击,您应该使用或至少清理变量$\u POST

中的数据。由于您是PHP新手,因此需要考虑以下几点:在查询中使用POST变量时,请至少使用这些变量。第二:使用headerLocation重定向后:you.if!$check\u user{dieConnection失败:.mysqli_connect_error;}类似这样的情况?@T30I只是说,在使用headerLocation进行重定向后,您应该调用exit或die:…,否则后续代码将继续在服务器上运行。在这种情况下,这不是问题,您只是有一个mysqli_close指令,但在更复杂的脚本中可能会导致严重问题。您的评论是关于不成功的logins在这种情况下,我更喜欢再次输出带有错误消息的表单,而不是死掉,但这是另一个主题!好的,我得到了它,将进一步改进。感谢againIt的工作!非常感谢你,我真的对php和html的组合感到困惑,它修复得很好,尝试过了,但仍然保持不变。好的,注意到了。我想我需要花很多时间来解决这个问题谢谢你