我正在学习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
非常感谢任何有关解决此语法错误的帮助。
干杯!
答案 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括号!