Php 我的登录页面首先打开

Php 我的登录页面首先打开,php,html,Php,Html,我有一个login.php页面,我希望用户在单击我拥有的html表单上的添加或删除按钮时必须使用该页面(此外,他们不得保持登录状态,如果他们离开页面并单击添加或删除,则必须再次登录) 目前,如果用户正确登录,我会将其设置为将用户带到index.php,但一旦我弄清楚如何让他们登录以访问某些页面,我会将其删除 my login.php代码: <html> <head> <title>Login</title> <link rel="styl

我有一个login.php页面,我希望用户在单击我拥有的html表单上的添加或删除按钮时必须使用该页面(此外,他们不得保持登录状态,如果他们离开页面并单击添加或删除,则必须再次登录)

目前,如果用户正确登录,我会将其设置为将用户带到index.php,但一旦我弄清楚如何让他们登录以访问某些页面,我会将其删除

my login.php代码:

<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");
}