Php 试图为我的网站建立一个简单的登录系统(没有商业价值)

Php 试图为我的网站建立一个简单的登录系统(没有商业价值),php,html,mysql,Php,Html,Mysql,作为一个对PHP和MySQL非常陌生的人,我仍然非常困惑,在经过几个小时的教程和应该帮助我的事情之后,我仍然有很多困难 您可以在beastfox.com/index.php上找到该测试(index.html目前只是最终设计的一个虚拟) 用户名:Username 密码:密码(首字母大写) 我知道你们可能都很先进,但我仍在努力学习新东西 我将把我的PHP代码放在这里,我希望你能试试看我是否做错了什么?我将尝试解释发生了什么,当您输入用户名和密码时,它将指向一个测试页面(myaccount.php),

作为一个对PHP和MySQL非常陌生的人,我仍然非常困惑,在经过几个小时的教程和应该帮助我的事情之后,我仍然有很多困难

您可以在beastfox.com/index.php上找到该测试(index.html目前只是最终设计的一个虚拟)

用户名:Username 密码:密码(首字母大写)

我知道你们可能都很先进,但我仍在努力学习新东西

我将把我的PHP代码放在这里,我希望你能试试看我是否做错了什么?我将尝试解释发生了什么,当您输入用户名和密码时,它将指向一个测试页面(myaccount.php),并且它应该保留一个会话。但它仍然没有做到这一点,我的猜测是,我有一个错误,在MySQL或其他东西,这是我的数据库也,我不知道我是否应该涵盖我的详细信息和MySQL帐户的名称。但无论如何我有以防万一,如果需要我可以提供给你!

我不太确定如何使用MySQL或PHP小提琴,所以我只想粘贴代码。这是一个.php文件,其中集成了html代码

<?php
   include("database.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {

  $username = mysqli_real_escape_string($db,$_POST['username']);
  $password = mysqli_real_escape_string($db,$_POST['password']); 

  $sql = "SELECT id FROM admin WHERE username = '$username' and passcode = '$password'";
  $result = mysqli_query($db,$sql);
  $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
  $active = $row['active'];

  $count = mysqli_num_rows($result);


  if($count == 1) {
     session_register("username");
     $_SESSION['login_user'] = $username;

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

    ?>

和HTML,它在相同的文档中

<!DOCTYPE html>
<html>

  <head>

    <title>Login</title>
    <link rel="apple-touch-icon" sizes="57x57" href="favicon/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="favicon/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="favicon/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="favicon/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="favicon/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="favicon/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="favicon/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="favicon/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-icon-180x180.png">
    <link rel="icon" type="image/png" sizes="192x192"  href="favicon/android-icon-192x192.png">
    <link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="96x96" href="favicon/favicon-96x96.png">
    <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
    <link rel="manifest" href="favicon/manifest.json">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="favicon/ms-icon-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="main.css">
    <link href="https://fonts.googleapis.com/css?family=Raleway:100" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">
  </head>

  <body>

<div class="LoginBox" style="">
<div class="element_wrapper">
 <a class="Login">Login</a>





    <class>
    <center>
                       <form action = "" method = "post">
                  <input type = "text" name = "username" class = "username" value="Username"/><br /><br />
                  <input type = "password" name = "password" class = "password" value="Password" /><br/><br />
                  <input type = "submit" value = " Submit " class="btn"/><br />
               </form></center>





    </class>
        </div>
            </div>
                </body>
</html>

登录
登录





我希望我没有做太复杂的事情,我很抱歉Markdown似乎无法理解我的代码,如果任何缩进或某些东西看起来不正确,那就不应该了。但是我已经为我需要的文件整理好了一切,例如(连接到mySQL和session.php的database.php以及myaccount.php)



表示要了解的语句。即使是这样也不安全!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码,并导致不必要的额外编码。如果它不维护会话,则您没有将
session_start()放入在每个PHP页面的顶部。如果你第一次没有时间做正确的事情,你什么时候能找到时间来添加它?我讨厌人们说“我没走那么远…”或“这个网站不会公开…”或“它只供学校使用,所以安全不重要…”。如果老师和教授从一开始就不谈论安全问题,那他们就是做错了。挑战他们。他们正在教授草率而危险的编码实践,学生们以后将不得不放弃这些实践。我也讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”或“忽略安全风险…”。如果你看屏幕截图,你的表中有
用户名
密码
,你的查询有
用户名
密码
,这就是你的错误所在。
    <?php

session_start();

$server="beastfox.com";
$user="-";
$password="-";
$database= "-_database";

 $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

    ?>