我想要使用会话登录我已经尝试了但是没有工作。
的index.php
<?php
session_start();
?>
<form method="post" name="login" action="login.php">
<label for="name" class="labelname"> Username </label>
<input type="text" name="username" id="userid" required="required" /><br />
<label for="name" class="labelname"> Password </label>
<input type="password" name="password" id="passid" required="required" /><br />
<input type="submit" name="submit" id="submit" value="Login" />
</form>
的login.php
<?php
include('config.php');
session_start();
{
$user=mysql_real_escape_string($_POST['username']);
$pass=mysql_real_escape_string($_POST['password']);
$fetch=mysql_query("SELECT id FROM `login` WHERE
username='$user' and password='$pass'");
$count=mysql_num_rows($fetch);
if($count!="")
{
session_register("sessionusername");
$_SESSION['login_username']=$user;
header("Location:profile.php");
}
else
{
header('Location:index.php');
}
}
?>
session.php文件
<?php
include('config.php');
session_start();
$check=$_SESSION['login_username'];
$session=mysql_query("SELECT username FROM `login` WHERE username='$check' ");
$row=mysql_fetch_array($session);
$login_session=$row['username'];
if(!isset($login_session))
{
header("Location:index.php");
}
?>
PROFILE.PHP
<?php
include("session.php");
?>
<h3 align="center"> Hellow <?php echo $login_session; ?></h3>
<h2 align="center" >Welcome to login system</h2>
<h4 align="center"> click here to <a href="logout.php">LogOut</a> </h4>
所以这里有什么错误我的代码,它不起作用,当我点击登录时,它保持空页。请提前感谢。
答案 0 :(得分:2)
语法错误。
在第4行{
之后删除session_start();
,在login.php文件末尾删除}
。
保持这样的代码:
<?php
include('config.php');
session_start();
$user=mysql_real_escape_string($_POST['username']);
$pass=mysql_real_escape_string($_POST['password']);
$fetch=mysql_query("SELECT id FROM `login` WHERE
username='$user' and password='$pass'");
$count=mysql_num_rows($fetch);
if($count!="")
{
session_register("sessionusername");
$_SESSION['login_username']=$user;
header("Location:profile.php");
exit;
}
else
{
header('Location:index.php');
exit;
}
?>
您是否注意到了差异?
<强>更新强>
正如Fred -ii-在评论中提到的那样:
session_register()函数自PHP 5.3.0开始,此函数已被弃用,自PHP 5.4.0起已被删除
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
mysqli
with prepared statements或PDO with prepared statements,,它们更安全。答案 1 :(得分:1)
删除第4行中未使用的“{”和LOGIN.php第21行中的“}”
答案 2 :(得分:0)
为什么需要在session.php
中进行检查?将其更改为此,这已经足够,并且不会一直给DB施加压力。
此外,我发现您正在接受第一次登录的培训,您应该学会使用PDO课程。另外,使用prepared statements表示安全性,使用hash密码。只将哈希密码和salt保存到数据库中。
第一次做对,一直做正确。 ;)祝你好运!
<?php
session_start();
if(!isset($_SESSION['login_username'])) {
header("Location:index.php");
}
?>