PHP-只允许对页面进行一次管理员注册
我正在尝试创建一个管理员注册表单。代码工作正常,但多个管理员可以注册此页面。我怎样才能做到只有一个管理员可以注册PHP-只允许对页面进行一次管理员注册,php,html,database,Php,Html,Database,我正在尝试创建一个管理员注册表单。代码工作正常,但多个管理员可以注册此页面。我怎样才能做到只有一个管理员可以注册 将用户数据输入表单时添加检查。检查是否有任何行的字段admin设置为1(或您使用的任何设置) 示例代码 $result = mysql_query("SELECT firstname FROM mytable WHERE admin=1"); if(mysql_num_rows($result)== 0) { //check if the post variables
将用户数据输入表单时添加检查。检查是否有任何行的字段admin设置为1(或您使用的任何设置)
示例代码
$result = mysql_query("SELECT firstname FROM mytable WHERE admin=1");
if(mysql_num_rows($result)== 0) {
//check if the post variables are set and input the values to the table
} else {
// Admin already exist
}
如评论中所述,您应该停止使用mysql\uucode>,而使用mysqli\ucode>或PDO来处理准备好的语句,下面给出了一个示例。请记住,不能混合使用API,因此必须将整个代码从一个API转换为另一个API
$mysqli = new mysqli("host", "user", "password", "database");
$result = $mysqli->query("SELECT firstname FROM mytable WHERE admin=1");
if ($result->num_rows == 0)
//check if the post variables are set and input the values to the table
} else {
// Admin already exist
}
参考文献
- (准备好的报表)
在添加管理员之前,您没有检查数据库中是否有管理员。顺便提一下不要使用不推荐使用的mysql\uquot*
函数,您的查询对SQL注入是完全开放的。检查是否存在admin=1
的记录。对该.Btw使用SELECT
语句。为什么你要用PHP打印表单而不是用HTML标记呢?我忘了。。。使用md5()
进行密码哈希是非常不安全的。你应该使用像sha256这样的软件加上适当的盐(不要使用你自己的。如果你使用的是PHP5.5+,请使用password\u hash()
,如果你不是PHP5.5+,请使用其他一些“官方”软件包)你真的不应该使用像mysql.*
@MagnusEriksson这样不推荐的函数,谢谢你指出这一点。请使用mysqliYour不能混用API,因此如果OP使用的是mysql\u
,他就不能使用mysqli\u
——这是其中之一。其次,mysqli\u query
中的查询需要两个参数,第一个是连接。感谢您指出这一点,您能用它更新我的答案吗,或者发布一个新的答案。