Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有管理员和用户的PHP登录系统_Php_Mysql_Login - Fatal编程技术网

带有管理员和用户的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=".

我想在用户和管理员之间创建一个不同的登录表单。所以,用户转到第/123页,管理员转到第/456页。我试了很多,但都没用。这是我的:

register.php

<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'];