在提到我的问题之前,我先在这里写下我的登录脚本。
我的登录页面脚本:-
<?php
include_once('core.inc.php');
if(loggedin())
{
header('Location:index.php');
} else {
include_once('connection.php');
if($_POST['parse']=="login")
{
if(isset($_POST['username']) && isset($_POST['password']))
{
$username=$_POST['username'];
$password=$_POST['password'];
if(!empty($username) && !empty($password))
{
$username=strip_tags($username);
$username=mysql_real_escape_string($username);
$password=strip_tags($password);
$password=mysql_real_escape_string($password);
$hash_password=md5($password); /* It will encrypt the password enterd by user in to 15 digit combination of character and number. Then the sql command will be generated to find the appropriate user according to their login details. It will search for the user details in the user table. */
$query="SELECT `id` FROM `user` WHERE `Email`='".$username."' AND `Hash_password`='".$hash_password."' AND `Approved`=1";
$query_run=mysql_query($query);
$mysql_num_rows=mysql_num_rows($query_run);
if($mysql_num_rows == 1)
{
$user_id=mysql_result($query_run,0,'id');
$_SESSION['user_id']= $user_id;
header('Location:http://leadstool.net/profile/index.php');
} else {
print "<script type=\"text/javascript\">";
print "alert('Email Id and Password Combination is wrong.')";
print "</script>";
}
}
}
}// loop for parse ends here
}// 1st condition ends here
?>
core.inc.php 文件脚本是:-
<?php
ob_start();
include_once('connection.php');
session_start();
$current_file=$_SERVER['SCRIPT_NAME'];
if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']))
{
$http_referer=$_SERVER['HTTP_REFERER'];
}
function loggedin()
{
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
return true;
} else {
return false;
}
}
function getfield($field)
{
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysql_query($query))
{
if($query_result= mysql_result($query_run, 0,$field))
{
return $query_result;
}
}
}
}
?>
首先让我解释一下上述代码的程序流程:
Step-1:用户将输入他/她的登录详细信息。如果找到电子邮件 ID 和密码组合匹配,则将创建用户会话。
步骤 2:现在,在为用户创建会话后,用户将立即被重定向到他/她的个人资料页面。
Step-3:由于用户已经登录,如果他/她将点击菜单栏中的主页按钮。然后用户将仅被重定向回个人资料页面。由于用户会话已经处于活动模式。因此,不允许用户查看主页的内容,而该用户将仅被重定向回个人资料页面。
但这里的问题是,如果用户第一次登录,他/她的会话没有正确创建。因此,一旦用户单击该主页按钮,他/她就会被重定向回主页。但这不应该发生。用户必须仅被重定向回个人资料页面。因为,在主页脚本中,我正在检查用户会话详细信息,如果会话处于活动状态,用户将仅被重定向回个人资料页面。
但主要问题从这里开始,如果同一用户尝试使用相同的登录详细信息进行登录。然后代码没有问题。这意味着,如果允许单个用户同时登录两次,则代码没有问题。所以,现在我想知道错误在哪里?
所以,这是我的问题:-
Q1。我的脚本有问题还是浏览器兼容性问题?Q2。在这两种情况下,可能的解决方案是什么?
我试图解释这个问题。但如果我仍然在这里遗漏了什么,请访问网站http://www.leadstool.net。注册成功后尝试登录一次并点击菜单栏中的leadstool按钮。我想你会在那里找到错误。