这是无效的代码,当我尝试在浏览器中查看此页面(chrome)时,出现500内部错误。有人可以帮忙吗?
<?php
$user = $_POST["user"];
$pass = $_POST["pass"];
$name = someuser;
$passw = somepassword;
if (!isset($_POST['login_button'])) {
} else {
if (&user == $name) {
if ($pass == $passw) {
setcookie('liamblogprox', 'hi', );
header.location('http://liamwli.co.uk/proxy/proxy.php');
} else {
echo "Invalid User or Pass!"; }
}else {
echo "Invalid User or Pass!"; }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="style2.css" media="screen,projection" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GiffHost - http://www.giffhost.co.uk/" />
<title>Private Proxy</title>
<style type="text/css">
#container #content center table tr td center h1 i b {
color: #000;
}
</style>
</head>
<body>
<div id="container">
<div id="header">
<h1>Private Proxy</h1>
This is a paid super fast Proxy</div>
<div id="subheader">
<ul id="navigation">
<li><a href="index.html">About</a></li>
<li><a href="register.html">Register</a></li>
<li class="active"><a href="login.html">Log In</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div id="content">
<center>
<table bgcolor="white" cellpadding="12" border="1">
<tr><td colspan="2" bgcolor="#FFFFFF"><center>
<h1><i><b>Log In</b></i></h1></center></td></tr>
<tr><td><h1><i><b>UserName:</b></i></h1></td><td><form name="login" action="<?php echo $PHP_SELF;?>" method="post"><input
name="user" type="text"></td></tr>
<tr><td><h1><i><b>Password:</b></i></h1></td><td><input name="pass"
type="password"></td></tr>
<tr><td><center><input type="submit" value="Login"
name="login_button"></center></td><td><center><br><input
type="Reset"></form></td></tr></table></center>
</div>
<div id="footer">
Designed by<a href="http://www.giffhost.co.uk"> GiffHost </a></div>
</div>
</body>
</html>
答案 0 :(得分:6)
这里有很多不妥之处。
<?php
// Are these actual login credentials? They should be quoted anyway.
$name = "alex";
$passw = "liamgoogle4530";
// This is a better way of checking to see if the form has been posted
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// The post variables are only likely to exist if the form has been submitted
$user = $_POST["user"];
$pass = $_POST["pass"];
// $ sign, not & for $user variable, why not combine the check into one?
if ($user == $name && $pass == $passw)
{
// You need to set an expiry on the cookie, I've set it to one hour
setcookie('liamblogprox', 'hi', time()+3600);
// This is how you do redirects in PHP
header('Location: http://liamwli.co.uk/proxy/proxy.php');
}
else
{
echo "Invalid User or Pass!";
}
}
?>
答案 1 :(得分:4)
对于初学者来说,这可能是一个问题:
$name = alex;
$passw = liamgoogle4530;
应该是这样的:
$name = "alex";
$passw = "liamgoogle4530";
答案 2 :(得分:3)
这是你的代码重写:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if ($_POST['user'] == 'alex' && $_POST['pass'] == 'liamgoogle4530')
{
setcookie('liamblogprox', 'hi');
header('Location: http://liamwli.co.uk/proxy/proxy.php');
die();
}
else
{
echo 'Invalid User or Pass!';
}
}
注意:完成后header("Location: wherever.com");
总是放die
。
代码中的问题:
您在此处有错误:
setcookie('liamblogprox', 'hi', );
在右括号之前的末尾应该没有逗号。
您在此处有错误:
header.location('http://liamwli.co.uk/proxy/proxy.php');
这不是有效的PHP。
$name = alex;
$passw = liamgoogle4530;
再次使用无效的PHP。您没有将变量转换为字符串。
if (&user == $name) {
再次使用无效的PHP。
你真的应该接受这个。如果您没有打开错误报告,请启用它。并始终检查您的服务器错误日志。
答案 3 :(得分:2)
您的代码正在尝试设置字符串,但它未封装在单引号中
$name = alex;
$passw = liamgoogle4530;
应阅读:
$name = 'alex';
$passw = 'liamgoogle4530';
阅读一些PHP基础知识
另请注意,如果发生500错误,阅读Web服务器的错误日志将为您提供更具体的详细信息。
修改强>
进一步审核后,您的代码会出现许多语法错误。您应该考虑配置错误报告,以帮助您在开发过程中快速克服这些错误。
答案 4 :(得分:1)
这可能是因为
header.location('http://liamwli.co.uk/proxy/proxy.php');
此页面不存在。放弃有效的位置
修改强>
您的重定向方式是错误的,应该是:
header('Location: http://liamwli.co.uk/proxy/proxy.php');
答案 5 :(得分:1)
你忘记了引号:
$name = "alex";
$passw = "liamgoogle4530";
这里也是一个错字:
if ($user == $name) {
转发应该是:
header("Location: http://...")
答案 6 :(得分:1)
第9行的用户前面有一个&符号,而不是美元符号。
if (&user == $name) {
if ($pass == $passw) {...