Php 我的登录页面首先打开
我有一个login.php页面,我希望用户在单击我拥有的html表单上的添加或删除按钮时必须使用该页面(此外,他们不得保持登录状态,如果他们离开页面并单击添加或删除,则必须再次登录) 目前,如果用户正确登录,我会将其设置为将用户带到index.php,但一旦我弄清楚如何让他们登录以访问某些页面,我会将其删除 my login.php代码:Php 我的登录页面首先打开,php,html,Php,Html,我有一个login.php页面,我希望用户在单击我拥有的html表单上的添加或删除按钮时必须使用该页面(此外,他们不得保持登录状态,如果他们离开页面并单击添加或删除,则必须再次登录) 目前,如果用户正确登录,我会将其设置为将用户带到index.php,但一旦我弄清楚如何让他们登录以访问某些页面,我会将其删除 my login.php代码: <html> <head> <title>Login</title> <link rel="styl
<html>
<head>
<title>Login</title> <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body id="body-color">
<div id="Sign-In">
<center><fieldset style="width:30%"><legend>Welcome Please Login Below</legend>
<form method="POST" action="connectivity.php">
Username: <br><input type="text" name="user" size="40"><br>
Password: <br><input type="password" name="pass" size="40">
<br>
<br>
<input id="button" type="submit" name="submit" value="Log-In">
</form>
</center>
</fieldset>
</div>
</body>
</html>
登录
欢迎光临,请登录下面
用户名:
密码:
connectivity.php:
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'list');
define('DB_USER', 'root');
define('DB_PASSWORD', '****');
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db = mysql_select_db(DB_NAME, $con) or die("Failed to connect to MySQL: " . mysql_error());
/*
$ID = $_POST['user']; $Password = $_POST['pass'];
*/
function SignIn() {
session_start();
if (!empty($_POST['user'])) {
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error());
$row = mysql_fetch_array($query);
if (!empty($row['userName']) AND ! empty($row['pass'])) {
$_SESSION['userName'] = $row['pass'];
header("Location: index.php");
} else {
header("Location: login.php");
}
}
}
if (isset($_POST['submit'])) {
SignIn();
}
?>
除了sql注入风险之外,请记住在要检查登录用户的页面顶部添加session_start()
<?php
session_start();
define('DB_HOST', 'localhost');
define('DB_NAME', 'list');
define('DB_USER', 'root');
define('DB_PASSWORD', '****');
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db = mysql_select_db(DB_NAME, $con) or die("Failed to connect to MySQL: " . mysql_error());
/*
$ID = $_POST['user']; $Password = $_POST['pass'];
*/
function SignIn() {
session_start();
if (!empty($_POST['user'])) {
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error());
$row = mysql_fetch_array($query);
if (!empty($row['userName']) AND ! empty($row['pass'])) {
$_SESSION['userName'] = $row['pass'];
header("Location: index.php");
} else {
header("Location: login.php");
}
}
}
if (isset($_POST['submit'])) {
SignIn();
}
?>
使用会话
。使用值(1)设置会话,如果未设置会话的值,则会将您带到登录页面
以下是一个例子:
session_start();
if (!isset($_SESSION['CheckLogin'])) {
header("Location: index.php");
}
不要使用mysql,因为它已弃用。切换到mysqli或PDO。此外,在解析查询之前,请清除输入。对于您的问题,为什么在显示登录页面或索引之前不能检查有效会话。php@PhpDev我不知道怎么做,先生,我还在学习。这是一个项目,我正在努力提高我的php技能。它们不再得到维护。看到了吗?相反,请了解,并使用或-可以帮助您决定使用哪个。不要以纯文本形式存储您的密码!这根本不安全!PHP有内置的函数,您应该使用这些函数来处理密码的存储,请参阅更安全的函数!当你使用折旧后的函数时,没有什么技能可以提高,你只会浪费时间,你需要做的是在网上做教程,搜索PDO/MSQLI prepared Statement此功能正常,先生,但是当我单击“登录”时,当我单击“添加”按钮时,它会将我带回index.php,而不是add.php。可能是connectivity.php中的代码设置为header(location index.php)的原因。对不起,先生,我对php还是很陌生。当用户登录时,我如何将其解释为我的代码!你应该像这样将你的会话设置为true$\u会话['CheckLogin']=true代码>但别忘了在脚本顶部设置会话_start()
在所有其他页面(home.php、profile.php等)中,必须设置if(!isset($_SESSION['CheckLogin']){header(“Location:index.php”);}
,以便在未设置SESSION
时!用户将被重定向到index.php
页面。注意!即使在所有其他页面上,您也必须在页面顶部设置session_start()代码>!并修复您的sql注入
!
session_start();
if (!isset($_SESSION['CheckLogin'])) {
header("Location: index.php");
}