我想做toefl测试。所以会有一个登录按钮。当有人登录时,登录按钮将是注销按钮。但是当我登录时,登录按钮没有改变。请帮帮我
检查登录状态的功能(我在lib_function.php中保存此功能):
<?php session_start(); ?>
<?php
function check_login(){
$hasil = 0;
if (isset($_SESSION['email'])) {
$mail = $_SESSION['email'];
}
if (isset($_SESSION['pass'])) {
$pass = $_SESSION['pass'];
}
if (!empty($mail) and !empty($pass)){
$hasil = 1;
}
return $hasil;
}
?>
的index.php:
<?php session_start();
require_once("connection.php");
?>
<?php include("lib_function.php"); ?>
<--header-->
<?php
$check = check_login();
if ($check == 1){
echo "<a href=\"login.php\">Login</a> <strong class=\"hover\">";
}else{
echo "<a href=\"logout.php\">Logout</a> <strong class=\"hover\">";
}
?>
这是我的登录过程:
<?php
session_start();
require_once("connection.php");
$email = $_POST['email'];
$password = $_POST['password'];
$cekuser = mysql_query("SELECT * FROM user WHERE email = '$email'");
$jumlah = mysql_num_rows($cekuser);
$hasil = mysql_fetch_array($cekuser);
if($jumlah == 0) {
echo "<script>alert('Email has registered!'); window.location = 'index.php'</script>";
} else {
if($pass > $hasil['password']) {
echo "<script>alert('Wrong password!'); window.location = 'index.php'</script>";
} else {
$_SESSION['email'] = $hasil['email'];
header('location:index.php');
}
}
?>
答案 0 :(得分:0)
您检查$_SESSION['pass']
功能中是否设置了check_login
,但您在登录过程中从未设置过{。}}。
设置$_SESSION['pass']
或从and !empty($pass)
删除check_login()
。
答案 1 :(得分:0)
在开始之前,始终尝试检查会话是否已处于活动状态。您还可能希望将“NULL”的默认值分配给$ mail&amp; $在check_login()函数中传递变量,因为在某一点上,你检查$ mail和$ pass是否为空。如果他们根本没有设置怎么办?在这种情况下,这些变量根本就不存在......
<?php
// FILE:: lib_function.php
function check_login(){
$hasil = 0;
// GET THE $mail & $pass FROM SESSION; ASSIGNING A DEFAULT NULL
// TO EACH OF THEM IF THEY ARE NOT YET SET...
$mail = isset($_SESSION['email']) ? $_SESSION['email'] : null;
$pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null;
if (!empty($mail) and !empty($pass)){
$hasil = 1;
}
return $hasil;
}
// FILE:: index.php
// START SESSION ONLY IF IT IS NOT ALREADY ACTIVE:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
require_once("connection.php");
include("lib_function.php");
// HEADER HERE
$check = check_login();
if ($check == 1){
echo "<a href=\"login.php\">Login</a> <strong class=\"hover\">";
}else{
echo "<a href=\"logout.php\">Logout</a> <strong class=\"hover\">";
}
?>
答案 2 :(得分:-1)
试试这个:
function login($email) {
$_SESSION['email'] = $email;
}
function is_logged() {
return isset($_SESSION['email']);
}
function logout() {
session_destroy();
}