PHP代码不起作用 - 导致错误500

时间:2012-02-15 19:15:55

标签: php

这是无效的代码,当我尝试在浏览器中查看此页面(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> 

7 个答案:

答案 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';

您应该在http://www.php.net

阅读一些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) {...