带有管理员和用户的PHP登录系统
我想在用户和管理员之间创建一个不同的登录表单。所以,用户转到第/123页,管理员转到第/456页。我试了很多,但都没用。这是我的: register.php带有管理员和用户的PHP登录系统,php,mysql,login,Php,Mysql,Login,我想在用户和管理员之间创建一个不同的登录表单。所以,用户转到第/123页,管理员转到第/456页。我试了很多,但都没用。这是我的: register.php <html> <?php //$submitbutton = $_GET['submit']; if($_SERVER['REQUEST_METHOD'] == "POST") { ob_start(); $host="localhost"; $DB_username="...."; $DB_password=".
<html>
<?php
//$submitbutton = $_GET['submit'];
if($_SERVER['REQUEST_METHOD'] == "POST")
{
ob_start();
$host="localhost";
$DB_username="....";
$DB_password="...";
$db_name="m6-biol";
$tbl_name="leden";
$connection = mysql_connect("$host", "$DB_username", "$DB_password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) // Validate email address
{
$message = "Wrong e-mail ";
}
$query = "SELECT email FROM leden WHERE email ='".$email."'";
$result = mysql_query($query) or die (mysql_error());
$numResults = mysql_num_rows($result);
if($numResults>=1)
{
$message = $email." Email already exist";
}
else
{
mysql_query("insert into leden(username,email,password) values('".$username."','".$email."','".md5($password)."')") or die (mysql_error());;
$message = "You are a member";
}
echo $message;
// }
}
?>
<form action="" method="post">
<p><input id="username" name="username" type="text" placeholder="Name"></p>
<p><input id="email" name="email" type="text" placeholder="Email"></p>
<p><input id="password" name="password" type="password" placeholder="Password">
<input name="action" type="hidden" value="signup" /></p>
<p><input type="submit" value="Signup" name="submit" /></p>
</form>
</html>
<?php
ob_start();
$host="localhost";
$DB_username="******";
$DB_password="******";
$db_name="m6-biol";
$tbl_name="leden";
$connection = mysql_connect("$host", "$DB_username", "$DB_password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$myusername=$_POST['username'];
$mypassword=md5($_POST['password']);
//$myusername = stripslashes($myusername);
//$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=($result ? mysql_num_rows($result) : 0);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:gelukt.php");
}
else {
echo "Wrong username or password\n";
}
ob_end_flush();
?>
您需要开始使用会话:
session_start()
和变化:
session_register("myusername");
session_register("mypassword");
使用它
$array=mysql\u fetch\u array($result)
我已经帮助了一些事情,使您的PHP代码“更好”
不要使用mysql_函数,因为它不再维护。相反,使用或
您正确地使用了真正的转义字符串,但如我所说,将其更改为mysqli_uu或PDO。。仅初始化一次就足够了,如下所示:
$myusername=mysqli\u real\u escape\u字符串($\u POST['username'])
如果您想确定它是用户还是管理员,您需要做出if语句和条件来标识用户名,以确定他们是否有权限访问某个页面,并在脚本顶部添加会话李>
不管你在学什么教程,它都已经过时了。请再试一次,不要这样做。在你把事情弄得一团糟之前,把这些代码扔掉。你应该使用内置的类似工具,因为你不想写自己的东西。如果你不能做到这一点,我强烈建议你使用已有的库来正确地做到这一点。虽然有好的建议,但它们并不能真正回答为什么它不起作用的问题。
$_SESSION['myusername'] = $array['username'];
$_SESSION['myusername'] = $array['password'];