创建一个简单的登录页面问题

时间:2018-03-16 09:26:07

标签: php html login xampp

对于练习我正在尝试创建登录页面。这是我第一次使用php。我一直在寻找许多指南,并从stackoverflow中查看了许多问题。所以这就是我提出的。(我正在使用XAMPP作为数据库)

文件夹php:login.php,session.php,welcome.php,Connection.php

文件夹页面:login.html

DB名称:leftoveryouth

表名:客户

Colums:id,FirstName,lastname,birthdate,street,streetnr,city,plz,username,email,Password

相关HTML代码:

<div class="placeholder">
                    <h1 class="logo"><a href="/index.html"class="alogo">Leftover Youth</a></h1>
                    <img class="logoo" src="../img/logoo.png" alt="firstimage">
                <form class="form" action = "" method = "post">
                    <hr class="verticalline">
                    <input id="email" type="text" value="Email@address.com" 
                            onblur="this.value'Email@address.com:this.value;"
                            onfocus="this.select()"
                            onclick="if (this.value=='Email@address.com'){this.value=''; this.type='Email@address.com'}"/>
                    <br>
                    <br>
                    <br>
                    <input id="password" value="Password"
                            onblur="this.value'Password:this.value;"
                            onfocus="this.select()"
                            onclick="if (this.value=='Password'){this.value=''; this.type='password'}"/>
                    <br>
                    <br>
                    <br>
                    <input id="button" type="submit" value="Log In">
                    <div class="links">
                        <a href="forgotpd.html" class="forpassword">Forgot Password?</a>
                        <a href="register.html" class="wannaregister">Create an Account?</a>
                    </div>
                </form>
        </div>

connection.php:

<?php
   define('DB_SERVER', 'localhost');
   define('DB_USERNAME', 'root');
   define('DB_PASSWORD', '');
   define('DB_DATABASE', 'leftoveryouth');
   $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

session.php文件:

<?php
   include('connection.php');
   session_start();

   $user_check = $_SESSION['login_user'];

   $ses_sql = mysqli_query($db,"select username from clients where username = '$user_check' ");

   $row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

   $login_session = $row['username'];

   if(!isset($_SESSION['login_user'])){
      header("location:login.php");
   }
?>

的login.php:

<?php
   include("connection.php");
   include("/pages/login.html");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

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

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

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

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

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

的welcome.php:

<?php
   include('session.php');
?>

    <html>
       <head>
          <title>Welcome </title>
       </head>

       <body>
          <h1>Welcome <?php echo $login_session; ?></h1> 
          <h2><a href = "logout.php">Sign Out</a></h2>
       </body>

    </html>

我总是得到这个错误代码:

 Cannot POST /pages/login.html

我现在不关心安全。基本登录后我会关心它:) 那么有人知道我做错了吗?

-------------编辑:-------------------- 错误:警告:include(/left_over_youth_website/php/connection.php):无法打开流:第2行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中没有此类文件或目录

警告:include():在C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins中打开'/left_over_youth_website/php/connection.php'以包含(include_path ='C:\ xampp \ php \ PEAR')失败第2行的.php

警告:include(/left_over_youth_website/pages/login.html):无法打开流:第3行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中没有此类文件或目录

警告:include():在C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins中打开'/left_over_youth_website/pages/login.html'以包含(include_path ='C:\ xampp \ php \ PEAR')失败.php在第3行

注意:未定义的变量:第9行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中的db

注意:未定义的索引:第9行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中的用户名

警告:mysqli_real_escape_string()期望参数1为mysqli,在第9行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中给出null

注意:未定义的变量:第10行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中的db

注意:第10行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中的未定义索引:密码

警告:mysqli_real_escape_string()期望参数1为mysqli,在第10行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中给出null

注意:未定义的变量:第13行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中的db

警告:mysqli_query()要求参数1为mysqli,在第13行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中给出null

警告:mysqli_fetch_array()要求参数1为mysqli_result,在第14行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中给出null

警告:mysqli_num_rows()期望参数1为mysqli_result,在第17行的C:\ xampp \ htdocs \ Left_over_youth_website \ php \ logins.php中给出null

1 个答案:

答案 0 :(得分:1)

 <form class="form" action = "login.php" method = "post">

您需要将表单“指向”您的php脚本。

还可以使用.php文件在其中编写html。你想要做的更好(在HTML中写php)

根据评论问题进行修改:

因此,考虑到你只想使用php和html,通过php重定向你想要的方式是使用header。为了详细说明,当您单击表单时,您将发送到PHP脚本。在那里,您可以“控制”结果,这样您就可以创建一个 if ,根据密码响应将用户重定向到您想要的位置。

if($password=="myPass"){
header("Location: http://localhost/welcome_page.php");
}
else{
header("Location: http://localhost/wrong_pass.php");
}

只是一个小例子来了解标题。