检查登录状态并保存登录会话(PHP)
每当用户试图访问未经授权的页面时,我都在使用登录系统 然后他应该在登录页面返回登录,我如何执行它 下面是我的登录脚本检查登录状态并保存登录会话(PHP),php,login-script,Php,Login Script,每当用户试图访问未经授权的页面时,我都在使用登录系统 然后他应该在登录页面返回登录,我如何执行它 下面是我的登录脚本 <?php session_start(); $host="localhost"; // Host name $db_username="root"; // Mysql username $db_password=""; // Mysql password $db_name="designshop"; // Database name $tbl_name="mem
<?php
session_start();
$host="localhost"; // Host name
$db_username="root"; // Mysql username
$db_password=""; // Mysql password
$db_name="designshop"; // Database name
$tbl_name="member"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$db_username", "$db_password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$member_username=$_POST['member_username'];
$password=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$member_username = stripslashes($member_username);
$password = stripslashes($password);
$member_username = mysql_real_escape_string($member_username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl_name WHERE member_username='$member_username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['member_username']=$_POST['member_username'];
$_SESSION['password']=$_POST['password'];
header("location:login_success.php");
}
else {
header("location:try_again.html");
}
?>
您所要做的就是检查
$\u会话['member\u username']
是否存在(以及是否为空)。如果设置了,则表示您的用户已登录,因此无需重新登录
注:
- 在会话中不需要存储用户的密码:事实上,最好不要这样做
- 您通过MySQL进行身份验证,这意味着您将密码存储在明文中:这是一种糟糕的做法。最好仅基于
从数据库中检索用户名
和用户名
,并在PHP代码中进行比较:例如,这将允许您存储密码
'd密码sha1
$\u会话['member\u username']
是否存在(以及是否为空)。如果设置了,则表示您的用户已登录,因此无需重新登录
注:
- 在会话中不需要存储用户的密码:事实上,最好不要这样做
- 您通过MySQL进行身份验证,这意味着您将密码存储在明文中:这是一种糟糕的做法。最好仅基于
从数据库中检索用户名
和用户名
,并在PHP代码中进行比较:例如,这将允许您存储密码
'd密码sha1
会话\u start()下面的顶部即可。
if(!empty($_SESSION['member_username'])){header("location: login_success.php");}
就像这样
session_start();
if(!empty($_SESSION['member_username'])){
header("location: login_success.php");}
$host="localhost"; // Host name
$db_username="root"; // Mysql username
$db_password=""; // Mysql password
//REST OF CODE
只要把它放在
session\u start()
下面的顶部即可
if(!empty($_SESSION['member_username'])){header("location: login_success.php");}
就像这样
session_start();
if(!empty($_SESSION['member_username'])){
header("location: login_success.php");}
$host="localhost"; // Host name
$db_username="root"; // Mysql username
$db_password=""; // Mysql password
//REST OF CODE
使用
session\u start()
启动代码,并在任何用户尝试访问页面时检查会话是否已设置,如果已设置会话,则重定向到页面,否则重定向到登录页面
您可以使用isset()启动代码和
会话\u start()
进行检查,并在任何用户尝试访问页面时检查会话是否已设置,如果已设置会话,则重定向到页面,否则重定向到登录页面
您可以使用isset()进行检查。遵循以下代码
<?php session_start();
include('conn.php');
$Name = $_POST['login_id'];
$Pass = $_POST['password'];
$select="select * from admin_login where admin_name='$Name' AND admin_pwd='$Pass'";
$query=mysql_query($select) or die($select);
$rows=mysql_fetch_array($query);
$row=mysql_num_rows($query);
if($row != 0)
{
$_SESSION['admin_name']=$rows['admin_name'];
echo "<script>window.location.href='index.php'</script>";
}else
{
$message = 'Invalid Username Or Password';
echo '<script type="text/javascript">alert("'.$message.'")</script>';
echo "<script>window.location.href='login.php'</script>";
}
?>
遵循此代码
<?php session_start();
include('conn.php');
$Name = $_POST['login_id'];
$Pass = $_POST['password'];
$select="select * from admin_login where admin_name='$Name' AND admin_pwd='$Pass'";
$query=mysql_query($select) or die($select);
$rows=mysql_fetch_array($query);
$row=mysql_num_rows($query);
if($row != 0)
{
$_SESSION['admin_name']=$rows['admin_name'];
echo "<script>window.location.href='index.php'</script>";
}else
{
$message = 'Invalid Username Or Password';
echo '<script type="text/javascript">alert("'.$message.'")</script>';
echo "<script>window.location.href='login.php'</script>";
}
?>
您至少应该阅读如何使用会话?还有一件事不要将密码保存到会话中,这是一种错误的做法您的代码容易受到SQL注入的攻击。也可以使用mysqli*
或PDO
而不是mysql*
,而不是滚动您自己的身份验证和为粗心者带来的所有问题,为什么不使用许多可用的库中的一个,例如OpenID。您至少应该阅读如何使用会话?还有一件事不要将密码保存到会话中,这是一种不好的做法您的代码容易受到SQL注入的攻击。也可以使用mysqli*
或PDO
而不是mysql*
而不是滚动您自己的身份验证和所有给不小心者带来的大量问题,为什么不使用众多可用库中的一个,例如OpenID。为什么使用php来回送一个重定向。为什么不直接从php使用header()重定向?javascript的用途是什么?我刚刚给出了一个例子。你可以使用任何你想重定向页面的方法。你到底为什么建议使用一个容易受到SQL注入攻击的解决方案?如果javascript被禁用,那么您的整个系统就会崩溃。使用php来响应重定向。为什么不直接从php使用header()重定向?javascript的用途是什么?我刚刚给出了一个例子。你可以使用任何你想重定向页面的方法。你到底为什么建议使用一个容易受到SQL注入攻击的解决方案?如果禁用javascript,整个系统将崩溃