在PHP中创建和存储会话

时间:2017-09-10 08:32:07

标签: php session

我有login.php文件夹和addpost.php文件夹。我想在login.php中创建会话和存储会话,如果它被创建,它将重定向到addpost.php。在addpost.php中我想检查是否没有存储会话,它会再次重定向到login.php。

我的问题:当我没有将我的代码放在addpost.php中时它工作正常但是当我把我的代码放在那里然后回来测试我的代码时我无法将登录页面重定向到addpost页面。

这是我在login.php文件夹中的代码

<?php
require('../koneksi.php');
if(isset($_POST['login'])){

    $username = mysqli_real_escape_string($kon, ($_POST['username']));
    $password = mysqli_real_escape_string($kon, ($_POST['password']));
    $query = "SELECT * FROM admin WHERE username = '$username' AND password = '$password'";
    $result = mysqli_query($kon, $query);
    if(!$result || mysqli_num_rows($result) == 0){
        echo '<script>alert("Username atau password Anda salah!")</script>';
    } else {
        $_SESSION['admin'] = 'username';
        $_SESSION['admin'] = $username;

        header('Location: addpost.php');
    }
}

&GT;

这是我在addpost.php中的代码

<?php
require('../koneksi.php');
session_start();
if(!isset($_SESSION['admin'])){
    header('Location: index.php');
} ?>
你能帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

问题似乎在你的

  

如果(isset($ _ POST [ '登录']))

替换为

  

if($ _ SERVER ['REQUEST_METHOD'] ==='POST')

如果使用方法POST发布的表单,则执行以下操作 也不需要引入额外的变量

  

$ _ SESSION ['admin'] = $ username;

这是我找到解决方案的方式

的index.php

<!DOCTYPE html>
<html>
<head>
    <title>
        Index
    </title>
</head>
<body>
    <form action="login.php" method="post">
        <input type="text" name="username">
        <input type="password" name="password"> 
        <button type="submit" value="submit">submit</button>
    </form>
</body>
</html>

的login.php

<?php
include_once 'db_connect.php';

if($_SERVER['REQUEST_METHOD'] === 'POST'){
$username = mysqli_real_escape_string($conn, ($_POST['username']));
$password = mysqli_real_escape_string($conn, ($_POST['password']));
$query = "SELECT * FROM admin WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $query);
if(!$result || mysqli_num_rows($result) == 0){
    echo '<script>alert("Username atau password Anda salah!")</script>';
    header('Location: login.php');

} else {
    session_start();
    $_SESSION['admin'] = 'username';
    header('Location: addpost.php');
}
}
?>

addpost.php

    <?php
session_start();
if(!isset($_SESSION['admin'])){
    header('Location: index.php');
}
//your code here
?>

快乐的编码!