Matze202
Erfahrenes Mitglied
Hiho @all,
ich weiß nicht, was hier wieder falsch läuft, denn ich habe nun schon alles was mir eingefallen ist, versucht auszuschließen und finde das Problem nicht.
Weil aber in der 2. Funktion, das Eintragen nicht durchgeführt wird, schickt die erste Funktion, den Scriptverlauf immer wieder in die 2. Funktion und somit ist mir leider eine Endlosscript entstanden.
Dies ist die var_dump-Ausgabe von $this.
Und dies ist der SQL-Code:
Ich bin echt am verzweifeln, vielleicht kann mir hier doch noch jemand weiter helfen, ich finde hier absolut nix mehr.
Gruß Matze202.
ich weiß nicht, was hier wieder falsch läuft, denn ich habe nun schon alles was mir eingefallen ist, versucht auszuschließen und finde das Problem nicht.
- Fehlermeldung gibt es keine!
- Ich habe nun schon alle Werte, über die Klasse bereitgestellt oder auf NULL gesetzt!
- Wenn ich den SQL-Code des prepare() mit den Werten ersetze, dann wird dieser über PHPmyadmin problemlos ausgeführt!
PHP:
private function session_id_in_db(){
//Hier überprüfe ich, ob die Session-ID bereits in der Datenbank abgelegt wurde.
$stmt = $this->db->prepare("SELECT id FROM ".$this->prefix."_user_log WHERE session_id = :sid");
$stmt->bindParam(':sid', $this->sid, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
sys::var_dump($result);
if(!empty($result['id'])){
echo 3;
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$this->user_log_id = $result['id'];
return true;
}else{
echo 4;
$this->insert_into_user_log();
return false;
}
}
//Wenn die SESSION-ID nicht eingetragen ist, wird diese Funktion ausgeführt.
private function insert_into_user_log(){
// sys::var_dump($this);
$sql = "INSERT INTO ".$this->prefix."_user_log (`session_id`, `time_session_start`, `ip`, `page`, `ref_link`, `message`) VALUES (:sid, :utime, :ip, :page, :ref, :ulm)";
sys::var_dump($sql);
$stmt = $this->db->prepare($sql);
$stmt->bindParam(':sid', $this->sid, PDO::PARAM_STR);
$stmt->bindParam(':utime', $this->time, PDO::PARAM_INT);
$stmt->bindParam(':ip', $this->user_ip);
$stmt->bindParam(':page', $this->user_get_page);
$stmt->bindParam(':ref', $this->user_ref);
$stmt->bindParam(':ulm', $this->user_log_message);
$stmt->execute();
// Hier schicke ich den Scriptverlauf zurück, zu der vorherigen Funktion, welche wieder überprüfen soll,
// ob diese SESSION-ID nun eingetragen ist.
$this->session_id_in_db();
}
Weil aber in der 2. Funktion, das Eintragen nicht durchgeführt wird, schickt die erste Funktion, den Scriptverlauf immer wieder in die 2. Funktion und somit ist mir leider eine Endlosscript entstanden.
Dies ist die var_dump-Ausgabe von $this.
Code:
object(user)#4 (9) {
["db":"user":private]=>
object(PDO)#2 (0) {
}
["prefix":"user":private]=>
string(2) "fs"
["user_log_id":"user":private]=>
NULL
["sid":"user":private]=>
&string(32) "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" //Die SID habe ich mal geändert.
["time":"user":private]=>
int(1423396334)
["user_ip":"user":private]=>
string(13) "XXX.XXX.XXX.XXX" //IP Adresse habe ich auch geändert.
["user_get_page":"user":private]=>
NULL
["user_ref":"user":private]=>
NULL
["user_log_message":"user":private]=>
NULL
}
Und dies ist der SQL-Code:
Code:
INSERT INTO fs_user_log (`session_id`, `time_session_start`, `ip`, `page`, `ref_link`, `message`) VALUES (:sid, :utime, :ip, :page, :ref, :ulm)
Ich bin echt am verzweifeln, vielleicht kann mir hier doch noch jemand weiter helfen, ich finde hier absolut nix mehr.
Gruß Matze202.