我有另一个脚本,我无法弄清楚它有什么问题。我试图使用
error_reporting(E_ALL);
报告错误,但不报告任何内容。无论如何,这是我遇到问题的代码。
<?php
error_reporting(E_ALL);
$username = $_POST['user'];
$email = $_POST['email'];
$password = md5($_POST['pass']);
$currname = $_COOKIE['ZBrownTechnologyCorporationBeta'];
$con = mysql_connect("HOST", "USER", "PASS");
if (!$con) {
die('Unable to connect: '.mysql_error());
}
mysql_select_database("zach_blogin", $con);
if(empty($password)) {
$nothing = "nothing";
} else {
mysql_query("UPDATE members SET password = '$password' WHERE username = '$currname'");
}
mysql_query("UPDATE members SET Email = '$email' WHERE username = '$currname'");
if($username==$currname) {
$nothing = "nothing";
} else {
$query = ("SELECT username from members WHERE username = '$username'");
$result = mysql_query($query);
if (!$result) {
header("Location: " . $_SERVER['HTTP_HOST'] . "/public_html/Beta/account.php?invalid");
exit;
}
}
mysql_query("UPDATE members SET username = '$username' WHERE username = '$currname'");
header("Location: ". $_SERVER['HTTP_HOST'] . "/public_html/Beta/main_login.php?update");
?>
我已经查看了这段代码了一段时间了。似乎无法让错误报告工作,所以我在这里。感谢所有帮助过的人,以及谁将提供帮助!
请求@Klinky:
当尝试在Opera中使用此页面(名为myinfo.php)时,它会显示默认消息,指示它无法找到页面和/或服务器。在Internet Explorer 8中,它显示500内部服务器错误。
以下是服务器规格: 操作系统: Linux HTTP: Apache v2.0.63 PHP: 5.3.3 MySQL: 5.0.91-community
我查看了日志,这是错误消息:
[Sat Sep 25 21:34:08 2010] [error] [client 68.52.52.190] PHP Fatal error: Call to undefined function mysql_select_database() in /home/zach/public_html/Beta/myinfo.php on line 12, referer: http://zbrowntechnology.com/Beta/account.php
唯一的是,我试图选择的数据库确实存在!
答案 0 :(得分:6)
您的所有UPDATE
个查询缺少表名:
UPDATE TABLE_NAME SET .....
^^^^^
missing
我建议,每次打电话给mysql_query()
检查其返回值。如果是false
,则查询执行失败,您可以通过调用mysql_error()
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
更多错误:
您需要在查询中用单引号括起字符串:
mysql_query("UPDATE members SET password = '$password'....
^ ^
missing
在查询中使用字符串的任何地方都可以。
答案 1 :(得分:4)
没有内置函数名mysql_select_database
。我想你的意思是mysql_select_db
更改
mysql_select_database("zach_blogin", $con);
到
mysql_select_db("zach_blogin", $con);
答案 2 :(得分:0)
尝试设置代码段的完整网址:
header("Location: account.php?invalid");
HTTP规范说你应该在进行重定向时使用完整的URL。虽然许多浏览器支持相对路径。尝试:
header('Location: ' . $_SERVER['HTTP_HOST'] . '/project-path/account.php?invalid');
REPLACE / project-path /以及.php文件所在的完整路径。