Php 登录系统,读取id和密码,然后登录

Php 登录系统,读取id和密码,然后登录,php,mysql,validation,login,Php,Mysql,Validation,Login,现在我想做一个登录系统。我想检查表管理员,如果用户存在,然后如果是这样,让他登录。我确实对系统登录进行了编码,但它不起作用。欢迎提供任何建议或解决方案 致以最良好的问候 <?php ob_start(); session_start(); ?> <html lang="en"> <head> <title>Foredeck Login.com</title> <link href="css/bo

现在我想做一个登录系统。我想检查表管理员,如果用户存在,然后如果是这样,让他登录。我确实对系统登录进行了编码,但它不起作用。欢迎提供任何建议或解决方案

致以最良好的问候

<?php
    ob_start();
    session_start();
?>

<html lang="en">

<head>
    <title>Foredeck Login.com</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <style>
        body {
            padding-top: 40px;
            padding-bottom: 40px;
            background-color: #6495ED;
        }

        .form-signin {
            max-width: 330px;
            padding: 15px;
            margin: 0 auto;
            color: #000000;
        }

        .form-signin .form-signin-heading,
        .form-signin .checkbox {
            margin-bottom: 10px;
        }

        .form-signin .checkbox {
            font-weight: normal;
        }

        .form-signin .form-control {
            position: relative;
            height: auto;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            padding: 10px;
            font-size: 16px;
        }

        .form-signin .form-control:focus {
            z-index: 2;
        }

        .form-signin input[type="text"] {
            margin-bottom: 0 px;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
            border-color: #000000;
        }

        .form-signin input[type="password"] {
            margin-bottom: 10px;
            border-top-left-radius: 0;
            border-top-right-radius: 0;
            border-color: #000000;
        }

        h3 {
            text-align:;
            color: #000000;
        }

        h1 {
            text-align:;
            color: #000000;
        }
    </style>

</head>

<body>
    <div class="container form-signin">

        <?php
            include("bdconnect_Foredeck.php");
            $link=Mysqli_connect($host,$login,$pass,$dbname);
            $msg = '';

            if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) {

                $Identifiant = $_POST['username'];
                $MotPasse = $_POST['password'];

                $recherche= "SELECT * FROM admin WHERE Identifiant ='$Identifiant' And Mdp_Admin='$MotPasse'";
                mysqli_query($link,$recherche);
                $result= mysqli_query($link,$recherche);

                while($row = mysqli_fetch_assoc($result)){

                    $Identifiant = $row["Identifiant_Admin"];
                    $MotPasse = $row["Mdp_Admin"];
                }
                if ($_POST['username'] == $Identifiant['username'] && $_POST['password'] == $MotPasse['password']) {
                $_SESSION['valid'] = true;
                $_SESSION['timeout'] = time();
                $_SESSION['username'] = 'foredeckadmin';
                $msg ='Connexion Réussite';
                echo "
                <script type='text/javascript'>
                    alert('Connexion Réussite');
                    window.location = 'foredeck.php';
                </script>";

                header("refresh:3 location: foredeck.php");
            }
            else if ($_POST['username'] == 'Isabelle' && $_POST['password'] == 'Isabelle1'){
                $_SESSION['valid'] = true;
                $_SESSION['timeout'] = time();
                $_SESSION['username'] = 'foredeckadmin';
                $msg ='Connexion Réussite';
                echo "
                <script type='text/javascript'>
                    alert('Connexion Réussite');
                    window.location = 'foredeck_superadmin.php';
                </script>";

                header("refresh:3 location: foredeck_superadmin.php");
            }


            else {
                $msg='Identifiant ou Mot de Passe incorrecte';
                    $msg = "
                    <script type='text/javascript'>alert('$msg')</script>";
                }
            }
        ?>
    </div> <!-- /container -->

    <div class="container">

        <form class="form-signin" role="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
            <h4 class="form-signin-heading"><?php echo $msg; ?></h4>
            <h1>Foredeck@Admin</h1>
            <h3>Entrer l'identifant et le mot de passe:</h3>
            <input type="text" class="form-control" name="username" placeholder="Identifiant " required autofocus><br/>
            <input type="password" class="form-control" name="password" placeholder="Mot de passe" required>
            <br>

            <button class="btn btn-lg btn-primary btn-block" type="submit" name="login">
                Se connecter
            </button>
        </form>
    </div>
</body>
</html>

Foredeck Login.com
身体{
填充顶部:40px;
填充底部:40px;
背景色:#6495ED;
}
.表格签名{
最大宽度:330px;
填充:15px;
保证金:0自动;
颜色:#000000;
}
.表格签名.表格签名标题,
.表格签名.复选框{
边缘底部:10px;
}
.表格签名.复选框{
字体大小:正常;
}
.表格签名.表格控制{
位置:相对位置;
高度:自动;
-webkit框大小:边框框;
-moz框大小:边框框;
框大小:边框框;
填充:10px;
字体大小:16px;
}
.表单签名.表单控件:焦点{
z指数:2;
}
.表单登录输入[type=“text”]{
边缘底部:0像素;
边框右下半径:0;
边框左下半径:0;
边框颜色:#000000;
}
.表单登录输入[type=“password”]{
边缘底部:10px;
边框左上半径:0;
边框右上角半径:0;
边框颜色:#000000;
}
h3{
文本对齐:;
颜色:#000000;
}
h1{
文本对齐:;
颜色:#000000;
}

这是一个可以帮助你的系统。无论如何,这不是最安全的系统。 基本上,您必须创建一个数据库,其中包含登录网站/应用程序所需的任何信息

注意,我使用$_POST['email']作为用户名,使用$_POST['password']作为密码

<?php
session_start();
$host = ''; //HOST OF YOUR DATABASE;
$user = ''; //USERNAME TO ACCESS YOUR DATABASE;
$pass = ''; //PASSWORD TO ACCESS YOUR USERNAME;
$database = ''; //DATABASE TO CONNECT;
$conn = new mysqli($host,$user,$pass,$database);
if(isset($_POST["login"])) {
$email=$_POST["email"];
$sql = "SELECT * FROM users WHERE email='$email'";
$result = $conn->query($sql);
if ($result->num_rows > 0) 
{
while($row = $result->fetch_assoc()) {
    if($row["password"]==md5($_POST["password"])) {
        $_SESSION['your_site_username'] = $row['email'];
        header("Location: YOUR PROFILE PAGE");
    }
    else {
        $error = "Your password is incorrect.";
        echo $error;
    }
}
}
else {
$error = "There is no user with this email.";
echo $error;
}
?>

安全性

将新用户插入用户数据库时,需要使用MD5方法散列密码。 我建议您激活php.ini文件中的magic_quotes_gpc选项,以确保您不会成为SQL注入的受害者。类型转换也可以避免SQL注入,以下是文档:。
这可以帮助您:

使用
mysqli\u num\u rows
获取计数以了解用户名和密码是否存在

   <?php
          include("bdconnect_Foredeck.php");
          //establishing connection
          $link=mysqli_connect($host,$login,$pass,$dbname); 
          //display error in connection if any 
            if (mysqli_connect_errno())
            {

                echo “MySQLi Connection was not established: ” . mysqli_connect_error();

            }      
          $msg = '';

          if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) 
          {

          $Identifiant = $_POST["username"];    
          $MotPasse = $_POST["password"];           

          $recherche= "SELECT * FROM admin WHERE Identifiant ='$Identifiant' And Mdp_Admin='$MotPasse'";        

          $result= mysqli_query($link,$recherche);

          $check_user = mysqli_num_rows($result);
          //checks if the username and password exists
            if($check_user>0){


                 $_SESSION['valid'] = true;
                 $_SESSION['timeout'] = time();

                 $msg ='Connexion Réussite';
                 //redirect to admin
                if($_POST['username'] == 'Isabelle' && $_POST['password'] == 'Isabelle1'){
                    $_SESSION['username'] = $Identifiant;
                    echo "<script type='text/javascript'>alert('Connexion Réussite');
                    window.location='foredeck_superadmin.php'; </script>";

                    header("refresh:3 location: foredeck_superadmin.php");
                }
                else
                {
                    //redirect to homepage
                    $_SESSION['username'] = 'foredeckadmin';
                    echo "<script type='text/javascript'>alert('Connexion Réussite');
                    window.location='foredeck.php'; </script>";

                    header("refresh:3 location: foredeck.php");



                }
            }
            else {
                //error message
               $msg='Identifiant ou Mot de Passe incorrecte';
               $msg =  "<script type='text/javascript'>alert('$msg')</script>";
            }
        }
    ?>

select
query中,您的意思是
Mdp_Admin='$MotPasse'
而不是
Mdp_Admin='MotPasse'
对吗?我想我需要存储变量来比较它们以便登录,对吗?这可能非常有帮助:是的..检查您的select查询where条件..变量名是$MotPasse..您在iti中错过了$I已更正它,但仍然不工作为什么不使用
password\u hash()
password\u verify()
进行密码哈希处理,而不是使用以前易于破解的方法md5@MasivuyeCokile这可能是一个解决方案,但正如我在开始时所说的,这是一个面向新PHP用户的简单脚本。我确实根据你的答案编辑了我的帖子,伙计们,请抢购。是的,我是php新手。警告:mysqli_fetch_array()希望参数1是mysqli_result,在101行的C:\wamp\www\Foredeck\login.php中给出布尔值:$row=mysqli_fetch_array($result)@affaz@A.V检查我的答案..我已编辑..您只需获取计数..P.S.这不是您出错的原因..但这对您来说更简单,开始时很好,我已经解决了错误,不管怎样@affaz您的代码也很好。@A.V谢谢…祝您好运:)