我能用简单的英语得到答案吗? 我是新来的......解释得越好,我需要重新发布的次数越少
Notice: Undefined index: username in C:\wamp\www\espn.com\login.php on line 16
Notice: Undefined index: password in C:\wamp\www\espn.com\login.php on line 17
1<?php
2
3//Database Information
4
5 $dbhost = "localhost";
6 $dbname = "users";
7 $dbuser = "root";
8 $dbpass = "*****";
9
10 //Connect to database
11
12 mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
13 mysql_select_db($dbname) or die(mysql_error());
14
15 session_start();
****16 $username = $_POST['username'];
17 $password = md5($_POST['password']);****
18
19 $query = sprintf('SELECT * FROM users WHERE username="%s" AND password="%s"',
20 ($username), ($password));
21
22 $result = mysql_query($query);
23
if (mysql_num_rows($result) != 0) {
$error = "Bad Login";
include "login.html";
} else {
$_SESSION['username'] = "$username" ;
include "memberspage.php";
}
答案 0 :(得分:2)
不确定。提交的表单没有任何名称标签。 请修改您的html部分如下:
<input **name="username"**/>
这样您就可以轻松使用$ _POST ['username']从表单中恢复值。 实际上,每次看到“未定义的索引”时,都意味着缺少数组的键。 就像:
$a = array('zero', 'one', 'two');
你打电话:
$a[3];
在这种情况下,$ _POST是一个缺少键'username'和'password'的全局数组。
答案 1 :(得分:0)
提交页面时,数据(用户输入/表格dat a)将作为数组发送,您可以通过$_POST
访问该数组。
现在,当您访问$_POST[somename]
时,PHP引擎会尝试检索数组$_POST
中键“somename”的值。
在你的程序中(特别是第16行和第17行),数组的键不存在。
所以,你最好做这样的检查:
$username = isset($_POST['username'])?$_POST['username']:null;