【问题标题】:Php session is not startingPHP会话没有开始
【发布时间】:2015-12-28 07:50:07
【问题描述】:

我正在使用 localhost 并尝试创建一个登录系统,但我的会话没有开始,这是我的 php 代码

if(isset($_POST['_submit'])){
            session_start();
            if(empty($_POST['_email']) || empty($_POST['_password'])){
                echo "<script>window.alert('Invalid User EMAIL or PASSWORD!')</script>";
            }
            else{

                $email = $_POST['_email'];
                $password = $_POST['_password'];

                $select_user = "SELECT email,password FROM signup WHERE email='$email' AND password='$password'";
                $query = mysqli_query($conn,$select_user);
                $rows = mysqli_num_rows($query);

                if($rows>0){
                    $_SESSION['user_email'] = $email;
                    header('Location: ../index.php');
                }
                else{
                    echo "<script>window.alert('Invalid User EMAIL or PASSWORD!')</script>";
                }

            }
        }

在会话开始后我想更改 html 代码,这是我的代码

<?php if(!empty($_SESSION['user_email'])){ ?>
<li><a href="#">Logout</a></li>
<?php } else { ?>
<li><a href="login/index.php">Login</a></li>
<li><a href="signUp/index.php">Sign Up</a></li>
<?php } ?>

这是我的登录系统html代码

<div class="outside">
            <form class="form-horizontal" role="form" method="post">
                <div class="form-group">
                    <label class="control-label col-sm-3 glyphicon glyphicon-user" for="email"></label>
                    <div class="control-label col-sm-8">
                        <input type="_email" name="_email" class="form-control" id="email" placeholder="Enter Email">
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label col-sm-3 glyphicon glyphicon-lock" for="password"></label>
                    <div class="control-label col-sm-8">
                        <input type="password" name="_password" class="form-control" id="password" placeholder="Enter Password">
                    </div>
                </div>
                <div class="form-group"> 
                    <div class="col-sm-offset-3 col-sm-3">
                        <button name="_submit" type="submit" class="btn btn-default" >Login</button>
                    </div>
                </div>
            </form>
            <p>Not a User? <a href="../signUp/index.php">Sign Up</a></p>
        </div>

谢谢,

【问题讨论】:

  • 请同时发布您的 html 代码...完成
  • 登录系统html代码?
  • 您的根级 index.php 中是否调用了 session_start()?您重定向到的那个?
  • 好的...在您正在使用的所有页面上或检查是否设置了任何会话,在每个页面的顶部,包括 session_start();在您的 之后

标签: php html session


【解决方案1】:

您还需要在需要使用会话的地方启动会话

<?php
session_start();
if(isset($_SESSION['somekey']))
{
      //code here
}

【讨论】:

    【解决方案2】:

    &lt;html&gt; 标签之前声明 session_start()。看看有没有用。

    【讨论】:

      【解决方案3】:

      session_start() 需要在您的 if 语句之外,并且通常总是在您的任何 PHP 代码执行之前运行。

      session_start();
      if(isset($_POST['_submit'])){
      

      将 session_start() 放在您要检查任何会话数据的所有 PHP 文件的顶部。如果你有一个集中的配置文件,把它放在那里。

      【讨论】:

      • 我也在 if 语句之外启动了一个会话,但没有任何反应
      • 您的根级 index.php 文件的顶部也有 session_start 吗?如果不存在,则必须将其放入 index.php 文件中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2014-02-13
      • 1970-01-01
      • 2010-11-09
      • 2011-10-11
      相关资源
      最近更新 更多