未定义的变量:用户名和密码

时间:2015-09-08 12:27:24

标签: php indexing username

我知道这个问题一遍又一遍地发布,我已经尝试用

修复它了

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中的密码 用户名或密码错误

1 个答案:

答案 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事件!