我正在创建自己的网站,只是为了获得一些经验。我已经工作了3天,而且我可以注册并登录。
登录时,如果在数据库中找不到用户名和密码的组合,我的代码会显示一条错误消息,告诉用户他没有注册,或者他输入了错误的用户电子邮件或密码
但是,消息显示在新页面中,而不是登录页面。
我在线查看了一些教程,但没有找到合适的解释。有人可以给我一些建议吗?
我正在使用PHP进行数据库连接。
答案 0 :(得分:2)
我刚输入一个非常基本的例子:
<?php
//login.php
$msg = ''; //to store error messages
//check whether the user is submitting a form
if($_SERVER['REQUEST_METHOD'] == 'POST') //check if form being submitted via HTTP POST
{
//validate the POST variables submitted (ie. username and password)
//check the database for a match
if($matchfound == TRUE) //if found
{
//assign session variables and other user datas
//then redirect to the home page, since the user had successfully logged in
header('Location: index.php');
}
else
{
$msg = 'Error. No match found !'; //assign an error message
include('login_html.php'); //include the html code(ie. to display the login form and other html tags)
}
}
else //if user has not submitted the form, just display the html form
{
include('login_html.php');
}
//END of login.php
?>
login_html.php:
<html>
<body>
<?php if(!empty($msg)) echo $msg; ?> <!-- Display error message if any -->
<form action="login.php" method="post">
<input name = "username" type="text" />
<input name = "password" type="password" />
<input name = "submit" type="submit" value="Submit" />
</form>
</body>
</html>
这不是完整的代码。但我刚刚创建它,让你了解如何做到这一点。 :)
祝你好运答案 1 :(得分:1)
您的初始表单标记应如下所示:<form action="" method="post">
。空的“action”属性将使页面回发给自己。只需检查$ _POST的用户名和密码,以确定是测试匹配还是只显示表单。
请务必填写您的密码并清理您的输入!
答案 2 :(得分:0)
你可以在不进入新页面的情况下完成。
<?php session_start(); ?>
<?php
if(isset($_POST) && isset ($_POST["admin_login"])){
$user_data_row = null;
$sql="SELECT * FROM table_name WHERE <table_name.field name>='".mysql_real_escape_string($_POST['email'])."'
and <table_name.field name='".mysql_real_escape_string($_POST['password'])."'
;
$result=mysql_query($sql);
$user_data_row=mysql_fetch_assoc($result);
if(is_array($user_data_row)){
$_SESSION['user_id'] = $user_data_row['id'];
header("Location: <your page name>");
}else{
$_SESSION['message'] = "Valid email and password required";
}
}
?>
<?php if(isset($_SESSION['message'])){
echo "<li>{$message}</li>";
?>
<form action="" method="post" id="customForm">
<label>Email:</label>
<input type="text" id="email" name="email">
<label>Password:</label>
<input type="password" id="password" name="password">
<input type="submit" value="Login" id="send" name="admin_login">
</form>
may be its helps you....
答案 3 :(得分:-1)
基本上您需要做的是将表单发布到同一页面。
完成后,只需检查$ _POST:if($_SERVER['REQUEST_METHOD'] == 'POST')
如果是帖子,请检查用户名和密码,然后显示错误或重定向到登录页面。在此之后,显示登录表单。
所以,如果这是一个错误,他们将得到错误,然后是登录表单。如果没有发布,他们只会获得登录表单,如果是有效登录,他们将在显示登录表单之前被重定向到正确的页面。