2016-05-12 6 views
-2

は、私は別のファイルにPHPコードとクラスをfolowingています他の機能ファイル内のオブジェクトのパラメータは動作しません - > "お知らせ:未定義のプロパティ:..."

/CH-ffhs-webe-timemanager-をコントローラ/ AnmeldenCtrl.php:

:ライン上の

<?php 
     include "../ch-ffhs-webe-timemanager-database/Datenbank.php"; 
     include "../ch-ffhs-webe-timemanager-model/Benutzer.php"; 

     $db = new Datenbank(); 
     $benutzer = new Benutzer(); 
     $benutzer->setBenutzername($_POST["bname"]); 
     $benuName = $benutzer->getBenutzername(); 
     echo $benuName; 
     $benutzer->setPasswort($_POST["passwd"]); 
     $pwd = $benutzer->getPasswort(); 
     echo $pwd; 
     if ($db->loginBenutzer($benutzer)) { 
      echo "<p>Zugang erlaubt</p>"; 
     } else { 
      echo "<p>Zugang eigentlich nicht erlaubt ...</p>"; 
     } 
    ?> 

/ch-ffhs-webe-timemanager-database/Datenbank.php

<?php 
include "../ch-ffhs-webe-timemanager-database/IDatenbank.php"; 

class Datenbank implements IDatenbank { 

    public function __construct() { 

    } 

    /** 
    * Diese Methode meldet einen Beunutzer an das 
    * Zeiterfasssungssystem an 
    * @param benuter :Benutzer 
    * @return true falls Login erfolgreich, sonst false 
    * 
    * {@inheritDoc} 
    * @see IDatenbank::loginBenutzer() 
    */ 
    public function loginBenutzer($benutzer) { 

     $passwort = $benutzer->getPasswort;   // error 
     $hashPW = $this->createHash($passwort); 

     if(password_verify($hashPW, $gespeicherter_hash)) { 
      return true; 
     } else { 
      echo false; 
     } 
    } 

    public function createHash($password) { 

     return $hash = password_hash($password, PASSWORD_DEFAULT); 
    } 
. 
. 
} 
?> 

私はこのエラーになって "エラー" とコメントしました

Notice: Undefined property: Benutzer::$getPasswort in C:\xampp\htdocs\eclipseWS\TimeManager\application\ch-ffhs-webe-timemanager-database\Datenbank.php on line 24

しかし、AnmeldenCtrl.phpの呼び出しは、 "$ pwd = $ benutzer-> getPasswort();"正常に動作します。

どれをしてくださいと感謝のに役立ちます...ここで

最後のクラス

/ch-ffhs-webe-timemanager-model/Benutzer.php

<?php 

class Benutzer { 

private $benutzername; 
private $passwort; 

public function __construct() { 

} 

/** 
* benutzername 
* @return String 
*/ 
public function getBenutzername(){ 
    return $this->benutzername; 
} 

/** 
* benutzername 
* @param String $benutzername 
* @return Benutzer 
*/ 
public function setBenutzername($benutzername){ 
    $this->benutzername = $benutzername; 
    return $this; 
} 

/** 
* passwort 
* @return String 
*/ 
public function getPasswort(){ 
    return $this->passwort; 
} 

/** 
* passwort 
* @param String $passwort 
* @return Benutzer 
*/ 
public function setPasswort($passwort){ 
    $this->passwort = $passwort; 
    return $this; 
} 

} ?>

+0

私はこの問題を解決することができます。私はfunctionnameの最後にクランプを忘れる - > $ passwort = $ benutzer-> getPasswort(); ...アップ、恥ずかしい間違い....;) – oxid2178

答えて

0

関数呼び出しのために()がありません。

$passwort = $benutzer->getPasswort; 

$passwort = $benutzer->getPasswort(); 

あなたのクラスにはプロパティgetPasswortはありませんする必要があり、それは機能です。

0

あなたのコード内の小さな見落としがありました:

//$passwort = $benutzer->getPasswort;   // YOU SHOULD BE CALLING YOUR GETTER METHOD HERE: 

    $passwort = $benutzer->getPasswort();   //<== WITH THE BRACKETS 

は、そうでなければ、あなたのコードはかなりOKらしい...

+0

ありがとう私は見て..;) – oxid2178

関連する問題