运行我的php代码时出现此错误!我需要做些什么才能修复它?
注意:未定义索引:C:\ xampp \ htdocs \ Slamza \ login.php中的用户名 在第10行
注意:未定义的索引:C:\ xampp \ htdocs \ Slamza \ login.php中的密码 在第11行
我的代码是
<?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");
}
?>
答案 0 :(得分: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"]
值。
答案 1 :(得分:0)
您需要使用isset
检查提交按钮,然后使用isset
检查用户名和密码的帖子。
因为你这样做了,所以你没有定义帖子数据。
答案 2 :(得分:0)
似乎没有将帖子信息发送到PHP脚本。您可以先检查以确保正在发送数据:
if( !isset( $_POST['username'] ) || !isset( $_POST['password'] ) ) die( "Incomplete data sent." );
但这只会检查数据是否已发送。您还可以print_r( $_POST )
查看哪些变量发送到您的脚本。查看输入此数据的表单会很有用。也许您正在使用GET而不是POST,或者您的apache配置未正确设置以通过POST发送数据。
答案 3 :(得分:0)
始终检查表单是否已提交。为此目的使用isset()
:
if( isset($_POST['submitButton']) ){
if( !isset($_POST['username']) || !isset($_POST['password']) ) {
echo "Please fill all the fields!";
}
请注意,submitButton
这里是表单中输入按钮的name属性。
<input type="submit" name="submitButton"/>
希望这有帮助!