-1

因此,我试图编写一个 PHP 身份验证系统,但我无法运行它而不会出现错误。具体来说,它说:

Parse error: syntax error, unexpected '$name' (T_VARIABLE) in C:\Apache24\htdocs\struct\general\resources\root~index\User.php on line 6

然后我查了一下,发现这个错误很常见。然而,我的不同之处在于“$name”变量实际上并不存在。实际上,第 6 行是函数的右括号。这是完整的代码:

<?php

include 'User.php';
function sha512($data){
return hash('sha512', $data);
}//This is line 6
?> 
<html><head><title>Login</title></head><body background="/struct/general/resources/root~index/images/Pig.jpg"<p>Your request is being processed.     Please Wait...</p><br />
<?php
$username = htmlspecialchars($_POST['__INPUT_2']);
$passwordhash = sha512(htmlspecialchars($_POST['__INPUT_1']));

$user_file_path = $_SERVER['DOCUMENT_ROOT'] . '/struct/data/user/data';

$isUser = file_exists($user_file_path . $username . '$' . $passwordhash);



$user = new User($username, $passwordhash);

?>

顺便说一句,我是 PHP 的初学者,所以我不确定我是否正确匹配了所有约定。无论如何,我的问题是:当我的代码范围内不存在一个名为“$name”的神秘变量时,为什么我会收到关于该变量的错误,我应该如何解决这个问题?

4

1 回答 1

0

PHP 错误报告是准确的。PHP 不会说谎,即使代码中的实际问题不是错误和/或 PHP 在错误中声明的行。

即在第 200 行意外结束。它可能是第 140 行缺少花括号。您需要阅读有关错误的信息,在此处和 Google 中搜索它们。

PHP 错误中的“意外”任何内容通常都是直截了当的,因为它在错误中提到的任何内容之前就已经预料到了某些内容。
在这种情况下unexpected '$name' (T_VARIABLE),您的$name变量不是预期的,PHP 需要一个右括号、逗号或分号来结束前一行,等等。

查看文件 User.php 中的第 6 行。如果该行绝对没问题,那么错误就在它之前,同样,前一行可能缺少分号。

于 2013-09-14T00:10:21.423 回答