SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.02.2003, 21:49:40
Nomad Nomad ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 8
Suche "Länder" Script..

hey ihr seid meine letzte hoffung, ich hab schon so viel nach diesem script gepostet und gesucht.. aber niemand kann mir helfen...

also mein problem ist dass ich (minimale php kenntnisse :( ein java script habe, das ich als php script suche (aufgrund der erhöhten browser komptibilität).

das java script sieht folgendermaßen aus:
Code:
 <SCRIPT LANGUAGE="JavaScript1.2"> 

if (navigator.appName == 'Netscape') 
var language = navigator.language; 
else 
var language = navigator.browserLanguage; 

if (language.indexOf('de') > -1) document.location.href = 'german.html'; 
else if (language.indexOf('at') > -1) document.location.href = 'german.html'; 
else if (language.indexOf('ch') > -1) document.location.href = 'german.html'; 
else if (language.indexOf('en') > -1) document.location.href = 'english.html'; 
else if (language.indexOf('us') > -1) document.location.href = 'english.html'; 
else if (language.indexOf('gb') > -1) document.location.href = 'english.html'; 
else 
document.location.href = 'english.html'; 
</script>
es ist ein script dass die länder kennung des verwendeten web browsers ausliest (de, us...) und den besucher auf die gewünschte seite weiterleitet. das java script ist mir dabei zu unsicher..
ich bräuchte jedoch nur eine weiterleitung für deutsche besucher zum einen und den rest der welt zum anderen (also nicht mit ch und at.. wie oben), sondern ein ganz einfaches.

folgende ratschläge habe ich bereits erhalten:

Tip 1: http://www.php.net/manual/en/function.mb-language.php
(irgendwas mit mb_language... wenn das jemandem hilft =/ )
Tip2:
Code:
//code taken from BLM (c) 2002 - 2003 

$input = array(); 

foreach ($HTTP_GET_VARS $k as $v) { 

$input[ $k ] = $v; 

} 
require "./".$input['lang']."/index.php"; 

call on it like this script.php?lang=en 
and it will go t a folder /en/index.php
(wobei dieses script den nachteil hat dass jedes land einen eigenen ordner braucht (oder??).. was ja unmöglich ist.)

ich hoffe ihr habt verstanden was ich suche und ich wäre verdammt dankbar wenn mir sich hier jemand die mühe macht und die zeit nimmt mir so etwas zu coden (da ich davon nicht viel verstehe..).

vielen dank im vorraus,
mfg phil
Mit Zitat antworten
  #2  
Alt 19.02.2003, 22:06:13
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Die Länderkennung zu ermitteln ist mit keiner Programmiersprache sehr sicher zu ermöglichen. Mich würde man z.B. immer auf die Englischen Seiten weiterleiten. hm... warum macht es google.de eigentlich nicht?

Naja, damit sollte Dein Problemchen wohl am besten gelöst sein:
PHP-Code:
if ($_SERVER['HTTP_USER_AGENT'], strstr("[de]"))
 { 
header("Location: deutscheSeite.htm"); }
else
 { 
header("Location: derRestderWelt.htm"); } 



PS: Was für schlechte Foren/Boards es doch geben muss... ;)
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (19.02.2003 um 22:08:48 Uhr)
Mit Zitat antworten
  #3  
Alt 19.02.2003, 22:25:32
Nomad Nomad ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 8
also auf jeden fall schonmal danke für die schnelle hilfe.

nur (auch auf die gefahr hin dass du jetz lachst..)
irgendwie funzt das nicht.

ich schätze mal wie bei allen php scripten
muss das dann so aussehen:
Code:
<?php
if ($_SERVER['HTTP_USER_AGENT'], strstr("[de]"))
 { header("Location: german.html"); }
else
 { header("Location: other.html"); }
?>
also mit <?php...?> aber dann kommt immer eine fehlermeldung..

Parse error: parse error in /hier/der/absolute/path/meines/servers/index.php on line 6

ist es egal wo (also ob head oder body) ich es einfüge und hab ich was vergessen?? oder wo liegt der fehler??
Mit Zitat antworten
  #4  
Alt 19.02.2003, 22:29:54
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Ups, ich vergaß etwas zu erwähnen: Vor der Funktion header() darf absolut nix, rein gar und ganz nix an den Browser geschickt werden! Kein <html>, kein echo" " - absolut nichts!

So, das war's vermutlich.

Unter Umständen wirst Du auch $HTTP_USER_AGENT statt $_SERVER['HTTP_USER_AGENT'] schreiben müssen, aber versuch erstmal das andere aus.

Deine .php-Datei enthält dann nur den PHP-Code, sonst nichts. Für die Ausgabe sind dann die anderen Dateien zuständig.

Guts Nächtle und viel Erfolg.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 19.02.2003, 22:35:44
Nomad Nomad ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 8
also die fehlermeldung kommt nachwievor, sowohl mit $HTTP_USER_AGENT, als auch mit $_SERVER['HTTP_USER_AGENT']..

ich hab das ganze script <?php ... ?> jetz GANZ an den anfang der seite gestellt - mit dem einzigen erfolg dass jetzt die fehler zeile nr. 2 ist...
was mach ich denn falsch? :(
Mit Zitat antworten
  #6  
Alt 19.02.2003, 22:49:18
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Och Schei$$e!! Was hab ich denn da für Mist verzapft!?!

So ist es richtig:
PHP-Code:
if*(strstr($_SERVER['HTTP_USER_AGENT'],*"[de]"))
*{*header("Location: deutscheSeite.htm");*}
else
*{*header("Location: derRestderWelt.htm");*
Passiert... :)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 19.02.2003, 22:58:18
Nomad Nomad ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 8
juhuu :) funktioniert!! danke.

nur.. er leitet mich auf die nicht-deutsche seite weiter..?? warum auch immer.. weil mein browser müsste schon deutsch eingestellt sein..
Mit Zitat antworten
  #8  
Alt 19.02.2003, 23:01:51
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Lass Dir mal mit
echo $_SERVER['HTTP_USER_AGENT']
den Wert ausgeben. vielleicht steht auch (de) und nicht [de] drin.

Wenn dem so ist, dann kannst Du es so erweitern:
PHP-Code:
if*(strstr($_SERVER['HTTP_USER_AGENT'],*"[de]") || strstr($_SERVER['HTTP_USER_AGENT'],*"(de)"))
*{*header("Location: deutscheSeite.htm");*}
else
*{*header("Location: derRestderWelt.htm");*
Man bedenke auch - ich erlaube mir zu zitieren: "Die Länderkennung zu ermitteln ist mit keiner Programmiersprache sehr sicher zu ermöglichen."
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 19.02.2003, 23:10:48
Nomad Nomad ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 8
hmm... er zeigt mit user_agent leider keine sprache an.. (kann aber auch am verwendeten browser liegen - obwohl ich mit IE zum selben ergebnis komme).

auch dein 2ter lösungsvorschlag leitet immer noch auf die nicht-deutsche seite um.
naja, muss mal schaun ob ich noch ne lösung finde.
aber ein rießen dankeschön für die hilfe!! :)
Mit Zitat antworten
  #10  
Alt 24.02.2003, 21:23:25
hcarsten hcarsten ist offline
Anfänger
 
Registriert seit: Feb 2003
Beiträge: 3
HTTP_USER_AGENT enthält nicht die Sprache

Agent bestimmt nicht die Sprache
Hallo,
die Variable HTTP_USER_AGENT enthält nicht die Sprache des Benutzers. Diese wird in HTTP_ACCEPT_LANGUAGE bereit gestellt. Normalerweise wird ein Benutzer diese nicht im Browser verändern und damit enthält diese dann für deutsche User in der Regel einfach ein "de".

Am besten änderst Du die Anweisung wie folgt :

if (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], "de"))
{ header("Location: deutscheSeite.htm"); }
else
{ header("Location: derRestderWelt.htm"); }
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:03:31 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt