php编程的新手,我似乎无法解决的简单语法错误

时间:2017-04-14 13:19:24

标签: php

我正在学习PHP编程,并在语法方面遇到了一些麻烦。我似乎不太了解PHP以解决此语法错误,尽管对于受过训练的人来说它应该是非常明显的。我希望我能在这里找到错误的解决方案。

我有一个用HTML / PHP编写的登录页面,名为login.php:

<?php
session_start();
?>
<html>
 <body>
<?php
if (isset($_SESSION["user"])) {
    echo "<p>Welcome back, " . $_SESSION["user"] . "!<br>";
    echo '<a href="process.php?action=logout">Logout</a></p>';
}
else {
?>
  <form action="process.php?action=login" method="post">
   <p>The username is: admin</p>
   <input type="text" name="user" size="20">
   <p>The password is: test</p>
   <input type="password" name="pass" size="20">
   <input type="submit" value="Login">
  </form>
<?php
}
?>
 </body>
</html>

路由到process.php,其中错误发生在第8行的

<?php
session_start();

switch($_GET["action"]) {
    case "login":
        if ($_SERVER["REQUEST_METHOD"] == "POST") {
            $user = (isset($_POST["user"]) && 
              ctype_alnum($_POST["user"]) ? $_POST["user"] : null;
            $pass = (isset($_POST["pass"])) ? $_POST["pass"] : null;
            $salt = '$2a$07$my.s3cr3t.SalTY.str1nG$';

            if (isset($user, $pass) && (crypt($user . $pass, $salt) ==
                crypt("admintest", $salt))) {
                $_SESSION["user"] = $_POST["user"];
            }
        }
        break;

    case "logout":
        $_SESSION = array();
        session_destroy();
        break;
}

header("Location: login.php");
?>

我从网络服务器收到的错误信息如下,每当我按下“登录”按钮时都会发生。

Parse error: syntax error, unexpected ';' in /Applications/XAMPP/xamppfiles/htdocs/xsrf/process.php on line 8

非常感谢任何有关解决此语法错误的帮助。

干杯!

2 个答案:

答案 0 :(得分:1)

您忘了关闭括号。

尝试改变:

$user = (isset($_POST["user"]) && ctype_alnum($_POST["user"]) ? $_POST["user"] : null;

通过:

$user = (isset($_POST["user"]) && ctype_alnum($_POST["user"])) ? $_POST["user"] : null;

答案 1 :(得分:0)

$user = (isset($_POST["user"]) && ctype_alnum($_POST["user"]) ? $_POST["user"] : null;

我猜你没有关闭第一个isset括号!