会话开始不起作用

时间:2014-02-26 18:41:29

标签: php

我有一个包含以下代码的登录页面:
一切正常,除了登录。如果我输入了incorect用户或密码,我会使用incorect用户或密码来回复错误。如果我不填写表格,我会发现错误,你必须填写...
当我输入正确的用户名和密码而不是显示链接时,它会再次显示登录表单。

session_start();
require_once("../includes/config.php");
if(isset($_SESSION['logged_in'])){
  ?>

<div class="contaniner">

            <ol>
                <li><a href="#">Link1</a>
                <li><a href="#">Link2</a>
                <li><a href="#">Link3</a>
            </ol>

    </div>


 <?php

 }else{

     if (isset($_POST['username'], $_POST['password'])){
        $username = $_POST['username'];
        $password = $_POST['password'];
         if(empty($username) or empty($password)){
             $error='All fields are required!';
          }else{
             $query = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
             $query->bindValue(1, $username);
             $query->bindValue(2, $password);

             $query->execute();
             $num = $query->rowCount();
             if($num == 1){


                 $_SESSION['logged_in'] = true;
                 header('Location: index.php');
                 exit();
             }else{

                 $error = 'Incorrect details!';
             }
         }
     }
    ?>

3 个答案:

答案 0 :(得分:1)

问题已解决。我的vps是一个错误,我在/ var / lib / php

中有一个名为sessions的文件夹

答案 1 :(得分:0)

我想我知道它是什么。标题位置必须是实际网址。

header('Location:index.php');

应该是

标题('位置:http://google.com/index.php');

当然这只是一个例子。

尝试一下,它应该修复它。

答案 2 :(得分:0)

一个选项可能是检查你的sql语句是否返回了类似的内容:

如果($行== 0){    做某事(比如错误凭据的错误消息) }其他{    做某事(比如开始你的会话)。 }

另一个问题是如何布局if和else语句。你能试试这个:

if(session exists){   展示一些东西 }

if(form submitted){    做任何与提交的表格有关的事情 }其他{    显示表格 }

我希望它有所帮助。