session_pagestart()

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
theangel
Mitglied
Beiträge: 16
Registriert: 17.01.2002 01:00

session_pagestart()

Beitrag von theangel »

Hallo zusammen, hab ein kleines Problem mit session_pagestart(); wenn ich das ganze auf eigenen, Forums-Externen Seiten einsetze...

So funktioniert es ohne Probleme:

Code: Alles auswählen

$userdata = session_pagestart($user_ip, PAGE_HOME);
So allerdings nicht:

Code: Alles auswählen

$phpbbsite = $HTTP_GET_VARS["site"];
if ($phpbbsite == "")
$phpbbsite = "PAGE_HOME";
$userdata = session_pagestart($user_ip, $phpbbsite);
Obwohl die Variabel phpbbsite ja auch lediglich "PAGE_HOME" enthält, welches ich in viewonline.php, constans.php und der language-Datei auch korrekt definiert habe.

Fehlermeldung:

Code: Alles auswählen

phpBB : Critical Error 

Error updating sessions table

DEBUG MODE

SQL Error : 1054 Unknown column 'PAGE_HOME' in 'field list'

UPDATE phpbb_sessions SET session_time = 1044904808, session_page = PAGE_HOME WHERE session_id = '21ac28c53fb36389cdf01e209eefb4aa'

Line : 267
File : /home/sites/site190/web/forum/includes/sessions.php
Hat vielleicht schon jemand Erfahrung mit dem bedienen der Funktion session_pagestart(); über Variabeln und stand vor dem gleichen Problem?

Gruss
Basti
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

$phpbbsite muss ein Integer-Wert und kein String sein...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
theangel
Mitglied
Beiträge: 16
Registriert: 17.01.2002 01:00

Beitrag von theangel »

Versteh ich nicht, wieso funktioniert dann Beispiel 1?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Weil in Beispiel 1 PAGE_HOME eine Konstante ist, die dann wiederrum ein Integer-Wert ist. Man achte auf den feinen Unterschied mit den Anführungszeichen...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
theangel
Mitglied
Beiträge: 16
Registriert: 17.01.2002 01:00

Beitrag von theangel »

Wenn ich dich und php.net richtig verstanden habe, gibt es dafür also keine Problemlösung um das ganze per Varibeln zu steuern?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Versuch's mal der Art:

Code: Alles auswählen

define ('PAGE_HOME', 12345);

if ( isset($HTTP_GET_VARS['site'])
{
    $phpbbsite = intval($HTTP_GET_VARS['site']);
}
else
{
    $phpbbsite = PAGE_HOME;
}

$userdata = session_pagestart($user_ip, $phpbbsite);
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
theangel
Mitglied
Beiträge: 16
Registriert: 17.01.2002 01:00

Beitrag von theangel »

Hmm... da durch intvar der Wert der Variabel immer auf 0 gesetzt wird wenn es sich dabei nicht um eine Zahl handelt, klappt das leider auch nicht... so wird immer angegeben, man würde sich im Forum-Index befinden.

Ich versteh aber auch noch immer nicht, wieso z.B.

Code: Alles auswählen

$userdata = session_pagestart($user_ip, TEST);
Funktioniert und...

Code: Alles auswählen

$phpbbsite = "TEST";
$userdata = session_pagestart($user_ip, $phpbbsite);
Nicht funktioniert... da muss ich es doch einen Weg geben das zu umgehen?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Setz dich mal mit den Konstanten, String-Werten und Variablen in PHP auseinander - das könnte vielleicht helfen :-) ist eine - wenn auch vermutlich undefinierte - Konstante,

Code: Alles auswählen

"TEST"
hingegen ein String (Zeichenfolge).

Demnach funktioniert z.B.

Code: Alles auswählen

$phpbbsite = TEST; 
$userdata = session_pagestart($user_ip, $phpbbsite);
bzw.

Code: Alles auswählen

$userdata = session_pagestart($user_ip, TEST);
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
theangel
Mitglied
Beiträge: 16
Registriert: 17.01.2002 01:00

Beitrag von theangel »

Hab die Lösung gefunden:

Code: Alles auswählen

if (isset($HTTP_GET_VARS['site'])) { 
    $phpbbsite = constant("$HTTP_GET_VARS[site]"); 
} else { 
    $phpbbsite = constant("PAGE_HOME"); 
}
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

theangel hat geschrieben:Hab die Lösung gefunden:

Code: Alles auswählen

if (isset($HTTP_GET_VARS['site'])) { 
    $phpbbsite = constant("$HTTP_GET_VARS[site]"); 
} else { 
    $phpbbsite = constant("PAGE_HOME"); 
}
Sorry, aber das scheint mir ehr Zufall zu sein, dass das funktioniert...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“