php Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION auf bauen
hey Jungs, hatte gehofft, Sie könnten mir helfen..
just to let u wissen im Voraus, ich bin ein relativ neues php-coder, mache ich ein Praxis-Projekt, und kam über dieses problem und ive verbrachte wie eine Stunde der Nachkontrolle und googeln aber gerade kann nicht herausfinden, was es verursacht
Fehler: Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\wamp\www\forum\classes\ClassUser.php auf der Linie 7
segment der code, der das problem verursacht:
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);
}
}
ach und da ich neu in php, incase im tun, etwas, was ich nicht sein sollte, bitte empfehlen.. vielen Dank im Voraus.
Hinweis:ive entfernt die php-tags, da Sie zu sein schien, messing mit der Formatierung dieses Beitrags :/
note2: ich bin auch immer eine weitere Ankündigung
Notice: Use of undefined constant KEY - angenommen "SCHLÜSSEL" in C:\wamp\www\forum\classes\general.inc auf der Linie 20
aber im vorausgesetzt, das ist mehr eine Warnung als ein Fehler... aber gerade das hinzufügen von incase, es hat etwas mit dem Fehler zu tun
Allgemeinen.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();
}
InformationsquelleAutor Ahmed-Anas | 2012-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
__construct
muss das Wortfunction
vor, oder besser nochpublic function
, in der gleichen Weise wie die anderen Methoden der Klasse (dhvalidate
undinsert
in Ihrem Fall).ie benötigen Sie Folgendes:
InformationsquelleAutor Spudley
Ändern Sie die Zeile auf:
InformationsquelleAutor Oscar Broman