我知道这个问题一遍又一遍地发布,我已经尝试用
修复它了if(isset($ _ POST ['username'])){} ...并检查$ _POST是否带有大写字母,看看它们是否在登录表单和check_login脚本中都被正确声明,我只能'找到为什么会这样。
昨天一切正常,今天当我打开我的电脑时,我只是尝试进一步突然它不再工作,数据库表用户也是空的?!我通过xampp本地存储数据库,所以没有人可以进入它,我不知道真正改变了什么。
这是我的登录表单:
<?php
session_start();
if(isset($_SESSION['memberlogged'])== true)
{
header("location: login_success.php");
}
?>
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<center>
<body style="background-color:rgb(248,248,248);">
<div id="loginmenu">
<img src="/img/choose.jpg"><br>
<input type="text" name="username" id="unu" placeholder="username"> <br /><br>
<input type="password" name="password" id="unu" placeholder="password"> <br />
<br><input type="submit" value="Log in" id="button" onClick="parent.location='check_login.php'">
<div class="divider"></div>
<input type="submit" id="button2" onClick="parent.location='index.php'" value='Leave' name="leave">
</center>
</div>
</body>
</html>
这是我的check_login.php脚本
<?php
include ("config.php");
// username and password sent from form
$password=$_POST['password'];
$username=$_POST['username'];
// To protect MySQL injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$query="SELECT * FROM users WHERE username='$username' and password='$password'";
$result=mysql_query($query);
// Mysql_num_row is counting table row
if($query)
{
$count=mysql_num_rows($result);}
else
{die ("something is not good");}
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// SAVE SESSION VARIABLES AND REDIRECT TO "login_success.php"
$_SESSION['username'] = $username;
$_SESSION['memberlogged'] = true;
header("location:login_success.php");
exit;
}
else {
echo "Wrong Username or Password";
}
?>
当我尝试连接时(登录数据是100%corect)我得到了
注意:未定义的变量:第6行的********* \ check_login.php中的用户名
注意:未定义的变量:第7行的********* \ check_login.php中的密码 用户名或密码错误
答案 0 :(得分:1)
您需要添加form
HTML和action
属性...
<form action="check_login.php" method="POST">
<input type="text" name="username" id="unu" placeholder="username"> <br /><br>
<input type="password" name="password" id="unu" placeholder="password"> <br />
<br><input type="submit" value="Log in" id="button">
<div class="divider"></div>
<a href="index.php" class="stlying_class">Leave</a>
</form>
这告诉表单在哪里发送$_POST[x]
信息以及使用哪种方法POST
。
您可以删除onClick="parent.location='check_login.php'"
,因为这只会更改页面而不会发送任何信息。
我们可以将提交保留为HTML输入类型submut
。
正如你正确指出的那样,“离开”按钮仍会在表单中进行总结,因此我将其更改为超链接,可以根据需要进行编辑。
或者,您可以将其添加为input
,但不保留on-click
事件!