对于练习我正在尝试创建登录页面。这是我第一次使用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
答案 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");
}
只是一个小例子来了解标题。