Seite 1 von 2
php: weiterleiten?
Verfasst: 06.05.2005 11:58
von leopittoni
Hallo
Ich habe versucht, meine Gäste auf meiner HP weiterzuleiten, wenn sie eingeloggt sind.
So:
Code: Alles auswählen
if ( $userdata['session_logged_in'] && $userdata['lang'] =='german' || 'german_sie' )
{
redirect ("php_seite.php?lang=de");
}
else
if ( $userdata['session_logged_id'] )
{
redirect ("php_seite.php?lang=it");
}
else
{
...
Es kommt aber diese Fehlermeldung:
Code: Alles auswählen
Warning: Cannot modify header information - headers already sent by (output started at /usr/kunden/confixx/kunde304/html/liceo/phpBB2/includes/template.php(127) : eval()'d code:1) in /usr/kunden/confixx/kunde304/html/liceo/phpBB2/includes/functions.php on line 813
Wieso kommt diese Fehlermeldung?
Wie kann ich Users weiterleiten?
Danke, Léo
Verfasst: 06.05.2005 12:45
von Elo
Per PHP wird fogendermassen Weitergeleitet:
Hinweis:
Code: Alles auswählen
if ( $userdata['session_logged_in'] && $userdata['lang'] =='german' || 'german_sie' )
Das funktioniert so nicht.
Gruß,
elo
Verfasst: 06.05.2005 12:52
von leopittoni
Hinweis:
Code: Alles auswählen
if ( $userdata['session_logged_in'] && $userdata['lang'] =='german' || 'german_sie' )
Wie geht denn das?
Wie kann ich überprüfen, ob der User eingeloggt ist UND die Sprache "german" oder "german_sie" gewählt hat?
Danke, Léo
Verfasst: 06.05.2005 13:35
von Dennis63
Zur IF-Abfrage: Du mußt jede einzelne Abfrage klammern.
Code: Alles auswählen
Falsch
if ( 1 && 2==3 )
Was passieren könnte, ohne Klammern:
if ( (1 && 2 ) == 3 )
<<woher soll PHP wissen, wie Du die Klammern gerne hättest??>>
Richtig:
if ( ( 1) && (2==3) )
Zum "Header already......": Es ist ein Bedienerfehler, und zu dem steht schon was in unserer Doku: KB:headers_already_sent
Grüße
Dennis
Verfasst: 06.05.2005 13:49
von leopittoni
Hallo
Und was kann ich tun, damit diese Fehlermeldung "Header already.." nicht mehr erscheint?
Wie kann ich weiterleiten, ohne diese Fehlermeldung?
Wäre mein Code nun so richtig:?
Code: Alles auswählen
if { ($userdata['session_logged_in']) && ($userdata['lang'] =='german' || 'german_sie' ) }
Danke, Léo
Verfasst: 06.05.2005 13:56
von Schumi
Richtig ist:
Code: Alles auswählen
if ( $userdata['session_logged_in'] && $userdata['user_lang'] =='german' || $userdata['user_lang'] == 'german_sie' )
Verfasst: 06.05.2005 13:58
von Dennis63
Zum Code: Die geschweifte klammer solltest Du noch in einer normale Klammer ändern.
Zum Header: Hast Du gelesen, was ich gepostet habe?
Die Ursache dieses Fehlers liegt darin, daß versucht wird, die Header-Informationen zu bearbeiten, nachdem bereits normale Ausgabe erfolgt ist.
Sorge dafür, daß das nicht passiert, dann bist Du das Problem los.
Grüße
Dennis
Verfasst: 06.05.2005 19:15
von Elo
if ( $userdata['session_logged_in'] && ( $userdata['lang'] =='german' || $userdata['lang'] =='german_sie' ) )
ist die korrekte Abfrage.
elo
Verfasst: 07.05.2005 14:28
von leopittoni
Hallo
Mein Code funktioniert leider nicht richtig.
Wenn ich eingeloggt bin, leitet es mich zwar weiter, aber immer auf die Deutsche Seite. Wenn ich im Forum "italian" gewählt habe, leitet es mich trotzdem weiter auf die Deutsche Homepage...
Hier mein Code:
Code: Alles auswählen
if ( $userdata['session_logged_in'] && ( $userdata['lang'] == 'german' || 'german_sie' ) )
{
Header('Location: http://domain.net/hp/php_seite.php?lang=de');
}
else
if ( $userdata['session_logged_id'] && $userdata['lang'] == 'italian' )
{
Header('Location: http://domain.net/hp/php_seite.php?lang=it');
}
else
{
$template->assign_vars(array(
'SPRACHE_DE' => 'Herzlich willkommen auf der Homepage...
<br/>
Wäle Deine Sprache:',
'SPRACHE_IT' => 'Benvenuti sul sito internet...
<br/>
Scegli la tua lingua:'
));
}
Wieso funktioniert der Code nicht richtig? Wieso werde ich nicht auf die Italienische Seite weitergeleitet, wenn ich "italian" gewählt habe?
Danke, Léo
Verfasst: 08.05.2005 00:11
von Elo
Irgendwie kommt es mir so vor als schreibe ich hier für mich selbst.
elo