【发布时间】:2015-01-03 04:45:14
【问题描述】:
Ok,那么下面两个脚本的思路很简单。首先,在login.php中,我们赋值$_SESSION['username']=$username,然后将页面重定向到index.php,其中脚本检查if $_SESSION['username']是否设置。如果是选中,然后显示 Edit Profile 和 Log Out 选项,如果未设置,则显示登录和注册等选项。但即使表格填写正确,它也会显示登录和注册选项。它适用于启用的 cookie。但如果它们被禁用则不能。这里是代码
Login.php
session_start();
.
.
.
if(mysqli_num_rows($result)==1){
$row=mysqli_fetch_array($result);
$_SESSION['username']=$username;
$_SESSION['password']=$password;
$location="http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php";
header("Location:".$location."?".htmlspecialchars(SID));
}
Index.php
session_start();
if(isset($_SESSION[SID.'username'])){
echo '❤<a href="viewprofile.php">View Profile</a>'."<br>";
echo '❤<a href="editprofile.php">Edit Profile</a>'."<br>";
echo '❤<a href="logout.php">Logout</a>'."<br>";
}
else{
echo '❤<a href="login.php">Login</a>';
echo '❤<a href="signup.php">Signup</a>';
现在,当我的所有php.ini 设置正确且use_cookie=0 和trans_sid = 1 时,如果我向login.php 提供正确的信息,index.php 会显示 else 代码块。有什么问题?
【问题讨论】: