I have folowing php code and class in different files:
/ch-ffhs-webe-timemanager-controller/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);
}
.
.
}
?>
on line commented with "error" I become this error:
Notice: Undefined property: Benutzer::$getPasswort in C:\xampp\htdocs\eclipseWS\TimeManager\application\ch-ffhs-webe-timemanager-database\Datenbank.php on line 24
But the call in AnmeldenCtrl.php "$pwd = $benutzer->getPasswort();" works fine.
Any helps please and thanks...
Here the last class
/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;
}
} ?>
You are missing ()
for the function call.
$passwort = $benutzer->getPasswort;
should be
$passwort = $benutzer->getPasswort();
There is no property getPasswort
on your class, it is a function.
There was a little oversight in your code:
//$passwort = $benutzer->getPasswort; // YOU SHOULD BE CALLING YOUR GETTER METHOD HERE:
$passwort = $benutzer->getPasswort(); //<== WITH THE BRACKETS
Otherwise, your Code seems quite OK...