Hallöchen - ich habe folgende Klassen
diese werden aufgerufen mit
Die Anmeldung klappt, aber die Funktiom EmailExist() haut nicht hin
WEnn ich dort die Datenbankverbindung per var_dump($this->db); prüfe kommt folgende Ausgabe:
object(DB)#1 (5) { ["hostrotected"]=> NULL ["databaserotected"]=> NULL ["userrotected"]=> NULL ["pwrotected"]=> NULL ["dbrotected"]=> NULL }
Das komische daran ist, dass die darunterstehende Funktion RegUser() - aber klappt, hat jmd. eine Ahnung woran das liegt?
PHP:
<?php
require_once 'class_Session.php';
class DB extends Session{
protected $host;
protected $database;
protected $user;
protected $pw;
protected $db;
public function conn(){
$this->host="localhost";
$this->database="masked";
$this->user="masked";
$this->pw="masked";
$db = new mysqli($this->host, $this->user, $this->pw, $this->database);
if ($db->connect_error){
printf(
"Can't connect to MySQL Server. Errorcode: %s\n",
mysqli_connect_error());
exit;
}
return $db;
}
}
?>
PHP:
<?php
require_once 'class/sub_classes/class_ReceiverManager.php';
require_once 'class/sub_classes/class_eMailManager.php';
class Register{
public $regerror;
public $vnameerror;
public $nnameerror;
public $emailerror;
public $katerror;
public $id;
public function __construct($db){
if(is_object($db))
$this->db=$db;
$this->receiver=new ReceiverManager($this->db);
$this->email=new eMailManager($this->db);
$this->regerror=TRUE;
$this->vnameerror="";
$this->nnameerror="";
$this->katerror="";
$this->id="";
}
public function CheckEntries($vname, $nname, $email, $kat1, $kat2, $kat3, $kat4){
if(($this->receiver->CheckName($vname))!==TRUE){
$this->vnameerror="<tr><td style=\"text-align:left;\">Der Vorname ist zu kurz!</td></tr>";
}if(($this->receiver->CheckName($nname))!==TRUE){
$this->nnameerror="<tr><td style=\"text-align:left;\">Der Nachname ist zu kurz!</td></tr>";
}if(($this->email->CheckeMail($email))!==TRUE){
$this->emailerror="<tr><td style=\"text-align:left;\">Ihre eMail ist zu kurz!</td></tr>";
}elseif(($this->EmailExist($email))!==FALSE){
$this->emailerror="<tr><td style=\"text-align:left;\">Diese eMail ist bereits registriert!</td></tr>";
}elseif(($this->email->ValidateeMail($email))!==TRUE){
$this->emailerror="<tr><td style=\"text-align:left;\">Ihre eMail hat einen falschen Syntax!</td></tr>";
}if(($this->receiver->CheckKats($kat1, $kat2, $kat3, $kat4))!==TRUE){
$this->katerror="<tr><td style=\"text-align:left;\">Bitte wählen Sie min. 1 Kategorie!</td></tr>";
}else{
$this->regerror=FALSE;
}
return $this->regerror;
return $this->vnameerror;
return $this->nnameerror;
return $this->emailerror;
return $this->katerror;
}
public function EmailExist($email){
var_dump($this->db);
$a=$this->db->conn();
$stmt=$a->prepare("SELECT u_id FROM b_receiver
WHERE u_email=?");
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->store_result();
$anz=$stmt->num_rows;
if($anz>0){
return TRUE;
}
return FALSE;
}
public function RegUser($vname, $nname, $email, $code, $kat1, $kat2, $kat3, $kat4){
$a=$this->db->conn();
$stmt=$a->prepare("INSERT INTO b_receiver(u_vname, u_nname, u_email, u_code, kat1, kat2, kat3, kat4)
VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssssssss", $vname, $nname, $email, $code, $kat1, $kat2, $kat3, $kat4);
$stmt->execute();
$this->id=$stmt->insert_id;
if($stmt->affected_rows>0){
return TRUE;
return $this->id;
}
return FALSE;
}
}
?>
diese werden aufgerufen mit
PHP:
<?php
require_once 'class/sub_classes/class_DB.php';
require_once 'class/main_classes/class_Register.php';
require_once 'class/sub_classes/class_Mail.php';
$db=new DB();
$reg=new Register($db);
$mail=new Mail();
<?php
if(isset($_POST['back'])){
include_once 'forms/navi/formular.php';
}
if(isset($_POST['register'])){
//Registrierungsvorgang
$reg->CheckEntries($_POST['vname'], $_POST['nname'], $_POST['email'], $_POST['kat1'], $_POST['kat2'], $_POST['kat3'], $_POST['kat4']);
if(($reg->regerror)!==FALSE){
echo "<form action=\"index.php\" method=\"POST\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
echo $reg->vnameerror;
echo $reg->nnameerror;
echo $reg->emailerror;
echo $reg->katerror;
echo "</table>";
echo"<input type=\"hidden\" name=\"vname\" value=\"".$_POST['vname']."\"><br>";
echo"<input type=\"hidden\" name=\"nname\" value=\"".$_POST['nname']."\"><br>";
echo"<input type=\"hidden\" name=\"email\" value=\"".$_POST['email']."\"><br>";
echo"<input type=\"submit\" name=\"back\" value=\"Zurück\"></form>";
}else{
$code=md5($_POST['email'] . time());
if(($reg->RegUser($_POST['vname'], $_POST['nname'], $_POST['email'], $code, $_POST['kat1'], $_POST['kat2'], $_POST['kat3'], $_POST['kat4']))===TRUE){
$id=$reg->id;
if(($mail->Registered($_POST['vname'], $_POST['nname'], $_POST['email'], $code, $id))!==FALSE){
echo"Ihr Eintrag war erfolgreich!<br>";
}else{
echo"Mail konnte nicht gesendet werden!<br>";
}
}else{
echo"Anmeldung hat nicht geklappt!<br>";
}
}
}else{
include_once 'forms/navi/formular.php';
}
?>
?>
Die Anmeldung klappt, aber die Funktiom EmailExist() haut nicht hin
WEnn ich dort die Datenbankverbindung per var_dump($this->db); prüfe kommt folgende Ausgabe:
object(DB)#1 (5) { ["hostrotected"]=> NULL ["databaserotected"]=> NULL ["userrotected"]=> NULL ["pwrotected"]=> NULL ["dbrotected"]=> NULL }
Das komische daran ist, dass die darunterstehende Funktion RegUser() - aber klappt, hat jmd. eine Ahnung woran das liegt?