gpt4 book ai didi

php - PHP的解析错误: syntax error, unexpected T_STRING, expecting T_FUNCTION on construct

转载 作者:行者123 更新时间:2023-12-03 08:03:12 25 4
gpt4 key购买 nike

大家好,希望您能帮帮我。

只是为了让您提前知道,我是一个相对较新的php编码器,正在做一个练习项目,遇到了这个问题,我花了一个小时重新检查和搜索,但无法弄清楚是什么原因引起的

错误:解析错误:语法错误,意外的T_STRING,在第7行的C:\ wamp \ www \ forum \ classes \ ClassUser.php中期望T_FUNCTION

导致问题的代码段:

include $_SERVER["DOCUMENT_ROOT"]."forum/classes/general.inc";
Class User{


__construct($u,$p){ //this is line 7

$user=$u;
if(strlen($p)>30|| empty($p) || !preg_match('/[^a-zA-Z0-9]/i',$p)){
$password=0;

}
else{
$password=hash_hmac('md5',$p,KEY);

}

}

哦,由于我是php的新手,以防万一我在做我不应该做的事情,请推荐..在此先感谢。

注意:ive删除了php标签,因为它们似乎与这篇文章的格式混淆了:/

note2:我还收到另一条通知
注意:使用未定义的常量KEY-在第20行的C:\ wamp \ www \ forum \ classes \ general.inc中假定为'KEY'

但是我认为那是警告而不是错误...但是只是添加以防它与错误有关

general.inc:
//error definations
define("ERROR_FIELD_EMPTY","Error! All required fields not filled");
define("ERROR_INVALID_SIGNIN","Error! Username/password do not match!");
define("ERROR_GENERAL_INPUT", "Error! Invalid input given");
define("ERROR_SQL_CONNECT","Error! Could not connect to sql database");


//field sizes
define("PASSWORD_LENGTH",12);
define("USERNAME_LENGTH",30);

//sql server details
define("SQL_SERVER_NAME","localhost");
define("SQL_SERVER_USERNAME","root");
define("SQL_SERVER_PASSWORD","");
define("SQL_SERVER_DATABASE","forums");

define(KEY,"key");


function __autoload($className){
require_once($_SERVER["DOCUMENT_ROOT"]."forum/classes/Class$className.php");

}

ClassUser.php
  include $_SERVER["DOCUMENT_ROOT"]."forum/classes/general.inc";
Class User{


__construct($u,$p){

$user=$u;
if(strlen($p)>30|| empty($p) || !preg_match('/[^a-zA-Z0-9]/i',$p)){
$password=0;

}
else{
$password=hash_hmac('md5',$p,KEY);

}

}

public function validate(){
if(strlen($user)>30|| empty($user) || preg_match('/[^a-zA-Z0-9]/i',$password==0 )){
throw new Exception(ERROR_GENERAL_INPUT);



}
$user=mysql_real_escape_string($user);
return true;

}

public function insert(){
// this->validate();

$conn= mysqli_connect(SQL_SERVER_NAME,SQL_SERVER_USERNAME,SQL_SERVER_PASSWORD,SQL_SERVER_DATABASE);


if(empty($conn)){
throw new Exception(ERROR_SQL_CONNECT);
}

$query="INSERT into USERS VALUES ($user,$password)";
$conn->query($query);



}

private $user;
private $password;

};

NewUser.php
 include $_SERVER["DOCUMENT_ROOT"]."forum/classes/general.inc";




try{
$user = new User($_POST['UserName'],$_POST['Password']);
$user->insert();
}

catch(Exception $Error){
echo $Error->getMessage();


}

最佳答案

您的__construct需要在其前面加上单词function,或者更好的是public function,这与该类中的其他方法相同(例如,您的情况下为validateinsert)。

即您需要以下内容:

public function __construct($u,$p){ //this is line 7

关于php - PHP的解析错误: syntax error, unexpected T_STRING, expecting T_FUNCTION on construct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com