gpt4 book ai didi

PHP登录-使用SQL语句检测用户类型

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:08 25 4
gpt4 key购买 nike

基本上我想做的是创建一个登录系统,其中有两种不同类型的用户。每个用户都有一个 ID、用户名、密码和角色。角色决定了他们是讲师还是学生(总体上将决定给出的观点)。我让登录正常工作,用户可以登录并访问名为 welcome.php 的页面。当讲师登录时,我需要一个包含文件/lecturer.php 来打开,当学生登录时,我需要一个名为/student.php 的文件来打开。下面是我的代码:

//表格//

CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) DEFAULT NULL,
`passcode` varchar(30) DEFAULT NULL,
`role` varchar(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

//PHP//

<?php

include("config.php");
session_start();

if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password sent from form

$myusername=addslashes($_POST['username']);
$mypassword=addslashes($_POST['password']);


$sql="SELECT id FROM admin WHERE username='$myusername' and passcode='$mypassword'";


$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$active=$row['active'];

$count=mysql_num_rows($result);


// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{
session_register("myusername");
$_SESSION['login_user']=$myusername;

header("location: welcome.php");
}
else
{
$error="Your Login Name or Password is invalid";
}
}
?>

提前感谢您的帮助

最佳答案

首先 - 请不要再使用 mysql_* 函数 - 它们已被正式弃用 - 查看 php.net 网站上的红框

你可以使用的替代品是 mysqliPDO,它们非常相似,如果你觉得更舒服的话,它们甚至都有过程调用,尽管我推荐客观的方法。

其次 - 使用适当的转义。请看http://php.net/manual/en/mysqli.quickstart.prepared-statements.php有关可防止您易受攻击的 SQL 注入(inject)的准备语句的信息。 (对于 PDO:http://php.net/manual/en/pdo.prepared-statements.php)

第三个 - 您问题的解决方案,将“角色”列添加到您的陈述中,如果在下面显示,则添加一个附加项

if($row["role"] == "lecturer") {
include_once('lecturer.php');
} else {
include_once('student.php');
}

关于PHP登录-使用SQL语句检测用户类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com