php+mysql 网页登录界面出错 Notice: Undefined index: error in 找不到问题出在哪里,请高人指点~

<?php

session_start();

$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "anpple";
$dbdatabase = "blogtastic";

$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);

if($_POST['submit']) {
$sql = "SELECT * FROM logins WHERE username = '" . $_POST['username'] . "' AND password = '" . $_POST['password'] . "';";

$result = mysql_query($sql);
$numrows = mysql_num_rows($result);

if($numrows == 1) {

$row = mysql_fetch_assoc($result);
session_register("USERNAME");
session_register("USERID");

$_SESSION['USERNAME'] = $row['username'];
$_SESSION['USERID'] = $row['id'];

header("Location: " . $config_basedir);
}
else {
header("Location: " . $config_basedir . "/login.php?error=1");
}
}
else {

require("header.php");

if($_GET['error']) {
echo "Incorrect login, please try again!";
}

?>

<form action="<?php echo $SCRIPT_NAME ?>" method="post">

<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Login!"></td>
</tr>
</table>
</form>

<?php
}
require("footer.php");
?>
发表博客评论也出现这个错误。代码研究了很久,找不到错在哪里~我以为是这个问题。我把if($_GET['error']) {
echo "Incorrect login, please try again!";
} 这句删除了。网页就没有上面提的问题了。
谁能给我大概指一个方向吗?我刚学编程不久

第1个回答  2012-05-24
这个 其实不是什么错误,你使用的数组的键名不存在, 它会发出一个警告

你只需要把错误关闭了或者修改错误级别,把notice屏蔽掉就可以了

ini_set("display_errors", 0);追问

其实这个问题只是另外一个大问题的一部分 就是我输入用户密码之后 网页转到
Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.
If you think this is a server error, please contact the webmaster.

追答

这个错误, 要看是程序错误还是服务器错误, 因为程序也可以自己定义抛出错误
你这个问题,可能是你这个账号没有权限

追问

谢谢了~我根本无法准确描述我遇到的这个问题~
我的本意是管理员登录 之后进行文章管理 现在管理却无法登录 出现这个权限问题
整个程序都是自己写的 却找不到哪里出了问题
会不会是字符集的问题呢?页面会话出了问题?还是没有缓存根本就无法检测页面是否存在用户登录名变量?。。。。。。。。。。。。。
谢谢大家~分享一点痛苦给大家 让你们把快乐建立在我的痛苦之上吧 呵呵~

追答

你可以echo下 每隔一段代码 输出下, 看看 是否是预期的输出。
另外 你$sql 这段代码有问题$sql = "SELECT * FROM logins WHERE username = '" . $_POST['username'] . "' AND password = '" . $_POST['password'] . "';";

多了个 “;

第2个回答  2012-05-27
能把你的错误完整的贴上来么?我不是很懂你的问题
但是你的代码呢 确实我看到有些问题不很规范

首先所有的if(变量)是不是想说变量是否存在且不为空?那就应该写if(isset($var) && !empty($var))

另外$sql = "SELECT * FROM logins WHERE username = '" . $_POST['username'] . "' AND password = '" . $_POST['password'] . "';";这句倒不错 两个分号一个是php的 一个是mysql的
第3个回答  2012-05-24
把这句if($_POST['submit'])改为if(isset($_POST['submit']))追问

还是无法登录~干脆我重新把这个完整程序代码全部帖上来~

追答

再看了一下。觉得应该把这段删了:
else {

require("header.php");

if($_GET['error']) {
echo "Incorrect login, please try again!";
}
因为加了isset已经判断了是否点击按钮。点击了才会执行代码,不点击就不执行。但因为加了上面一段。使得不点击也执行代码

追问

我测试了一下 如果删除了 网页就无法显示~

追答

" method="post">提交到这个$SCRIPT_NAME是什么变量。如果提交在本页。这样写就可以了。
再试试看。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网