0

运行我的 php 代码时出现此错误!关于我需要做些什么来解决它的任何帮助?

注意:未定义索引:第 10 行 C:\xampp\htdocs\Slamza\login.php 中的用户名

注意:未定义索引:第 11 行 C:\xampp\htdocs\Slamza\login.php 中的密码

我的代码是

    <?php

session_start();



$username = $_SESSION['username'];


$username = $_POST['username'];
$password = $_POST['password'];

include("connect.php");

if ($username && $password)

{


$queryget = mysql_query("SELECT * FROM users WHERE username='$username' AND     password='$password'");
$numrows = mysql_num_rows($queryget);
if ($numrows != 0) 

{


    $_SESSION['username'] = $username;

    echo "You have been logged in!";


}


else

{

    echo "You have not been logged in";

}





}

else

{

echo "You didn't provide the information needed to login";
include("index.php");

}

?>
4

4 回答 4

1

由于您的代码已经在检查丢失$username$password数据,因此您可以采取这些措施来保持相同的代码和执行流程

$username = isset($_SESSION['username']) ? $_SESSION['username'] : NULL;

$username = isset($_POST['username']) ? $_POST['username'] : $username;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;

此外,正如其他人指出的那样,如果您$_POST从表单提交此数据,您可能还必须检查该$_POST["submitButtonName"]值。

于 2013-07-25T21:26:13.533 回答
0

您需要使用 来检查提交按钮isset,然后还需要使用 来检查用户名和密码的帖子isset

因为通过这种方式,您没有定义发布数据。

于 2013-07-25T21:20:31.843 回答
0

似乎帖子信息没有发送到 PHP 脚本。您可以先检查以确保正在发送数据:

if( !isset( $_POST['username'] ) || !isset( $_POST['password'] ) ) die( "Incomplete data sent." );

但这只会检查数据是否已发送。您还print_r( $_POST )可以查看哪些变量正在发送到您的脚本。查看输入此数据的表单会很有用。也许您使用的是 GET 而不是 POST,或者您的 apache 配置未正确设置以通过 POST 发送数据。

于 2013-07-25T21:25:08.740 回答
0

始终检查表单是否已提交。用于isset()此目的:

if( isset($_POST['submitButton']) ){

if( !isset($_POST['username']) || !isset($_POST['password']) ) {
    echo "Please fill all the fields!";
}

请注意,submitButton这是表单中输入按钮的名称属性。

<input type="submit" name="submitButton"/>

希望这可以帮助!

于 2013-07-25T21:25:45.913 回答