php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.02.2006, 11:42  
Benutzer
 
Registriert seit: 08.09.2004
Beiträge: 67
tikal
Standard Sprachwechsel wird nicht gespeichert

Ich möchte meine Seite nun auf eine englische Version erweitern und keine Session verwenden.
Meine Sprachauswahl sieht so aus
Code:
$default_lang = 'de';

if(!isset($_REQUEST['lang'])) 
{
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))     {
      $_REQUEST['lang'] = $_SERVER['HTTP_ACCEPT_LANGUAGE'];

    
    $_REQUEST['lang'] = substr($_REQUEST['lang'], 0, 2);
    
    }else     {
      $_REQUEST['lang'] = $default_lang; // Sprache nicht gesetzt dann deutsch    }
}

if(isset($_GET['lang'])) // Sprache ausgewählt über Sprachlink
{
    $_REQUEST['lang'] = $_GET['lang'];
}
Der Sprachlink
Code:
echo'Englisch 




Deutsch ';
Variable für die Navigation erstellen, mit Sprache versehen und Navigation
Code:
$link = '?'.'lang='.$_REQUEST['lang']; 


foreach($menu as $key => $value) 
 	   {echo'[*]'.ucfirst($key).'';}
Und nun der Knackpunkt, das Einfügen des jeweiligen Menus
Code:
if (isset($_GET['lang']) && $_GET['lang']=='en'){ 
$menu = array ( 
"process" => "process", 
"services" => "services", 
"portfolio" => "Portfolio",
"contact" => "Contact",
); 
}
else {
$menu = array ( 
"leistungen" => "leistungen", 
"service" => "service", 
"projekte" => "Projekte",
"kontakt" => "Kontakt",
);
}
Der Menuwechsel zum englischen Menu klappt, aber wenn man dann dort navigiert, kommt wieder das deutsche Menu.
Warum geht das Setzen der Sprachwahl durch den Sprachlink bei der Navigation dann verloren?
__________________
Danke
Tina
tikal ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.02.2006, 11:50  
Gast
 
Beiträge: n/a
Standard

Das Umsetzen von superglobalen Array's ($_REQUEST) ist nach meiner Meinung der reinste Horror, was soll sowas?

Ansonsten:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 17.02.2006, 11:54  
Benutzer
 
Registriert seit: 08.09.2004
Beiträge: 67
tikal
Standard

Zitat:
Das Umsetzen von superglobalen Array's ($_REQUEST) ist nach meiner Meinung der reinste Horror, was soll sowas?
wie würdest du denn den Sprachwechsel vornehmen
__________________
Danke
Tina
tikal ist offline  
Alt 17.02.2006, 12:02  
Gast
 
Beiträge: n/a
Standard

1. Warum keine Session?
2. Mit einem Cookie könnte man das auch lösen.
3. Anstatt $_REQUEST['irgendwas'] sollte man sich eine eigene Variable basteln, mit der man in dem Script weiterarbeitet.

Gruß
phpfan
 
Alt 17.02.2006, 12:09  
Benutzer
 
Registriert seit: 08.09.2004
Beiträge: 67
tikal
Standard

okay, dann werde ich es mit Sessions versuchen
__________________
Danke
Tina
tikal ist offline  
Alt 17.02.2006, 12:22  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tikal
okay, dann werde ich es mit Sessions versuchen
Und genau deswegen hast du die gleiche Fragen in einem anderen Forum auch noch mal gestellt? Was soll der Sch....? Hier schreiben, du probierst es mit Session und im anderen Forum ist davon keine Rede mehr! Kannst du mir verraten, warum man dir nochmal helfen sollte, wenn da sowieso nichts bei rumkommt? Kopfschüttel

Gruß
phpfan
 
Alt 17.02.2006, 12:33  
Benutzer
 
Registriert seit: 08.09.2004
Beiträge: 67
tikal
Standard

Zitat:
Zitat von phpfan
Zitat:
Zitat von tikal
okay, dann werde ich es mit Sessions versuchen
Und genau deswegen hast du die gleiche Fragen in einem anderen Forum auch noch mal gestellt? Was soll der Sch....? Hier schreiben, du probierst es mit Session und im anderen Forum ist davon keine Rede mehr! Kannst du mir verraten, warum man dir nochmal helfen sollte, wenn da sowieso nichts bei rumkommt? Kopfschüttel

Gruß
phpfan
du bist ja gut informiert!

Hat den einfachen Grund, dass man mir an anderer Stelle gesagt hat, dass man durch die Abfrage mit
$_SERVER['HTTP_ACCEPT_LANGUAGE']
und der Variablen
$_REQUEST['lang']
die Sessions umgehen kann, mit denen ich bisher nicht gearbeitet habe.

Du hast mir mit deinen Antworten ja nur allgemeine Dinge gesagt und nicht mit dem Code weitergeholfen
__________________
Danke
Tina
tikal ist offline  
Alt 17.02.2006, 12:38  
Gast
 
Beiträge: n/a
Standard

Zitat:
Du hast mir mit deinen Antworten ja nur allgemeine Dinge gesagt
Hallo? Dann setzte das doch erst mal um, dann hast du genug zu tun. Oder glaubst du etwa, ich serviere dir hier eine fertige Lösung? Etwas Mitdenken und Eigeninitiative sind immer noch Pflicht, auch wenn das anscheinend immer weniger üblich ist. Alles nach dem Motto: "Ich will den Preis ohne Fleiß" Mit "Richtig debuggen" kommt man schon recht weit!!!

Gruß
phpfan
 
Alt 18.02.2006, 01:49  
Gast
 
Beiträge: n/a
Standard

$_SERVER['HTTP_ACCEPT_LANGUAGE'] iss nich hundertprozentig.

Sessions sind da absolut die bessere Wahl.
Mach das was phpfan gesagt hat und bastel kein Dingenskirchen um ein Problem, daß Du Dir damit erst selbst geschaffen hast.
 
Alt 18.02.2006, 03:52  
Gast
 
Beiträge: n/a
Standard IDE + Debugger

Da ich noch ein absoluter Newbee (naja fast noch ein Newbee) in Sachen PHP bin würde mich mal interessieren ob es für PHP eine gute OS IDE mit Debugger gibt Naja Ihr wisst ja Schüler habe nicht so viel Geld, dafür aber viel Freizeit

Sascha
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session wird einfach nicht gespeichert! Montellese PHP-Fortgeschrittene 4 29.12.2007 19:32
Wieso wird nicht gespeichert? DaronM PHP Tipps 2006 14 17.06.2006 12:35
Cookie auf dem PC gespeichert, aber im Skript leer Schaelle PHP Tipps 2006 11 18.05.2006 22:15
Datei Wird nicht gespeichert winki Datenbanken 2 20.04.2006 20:12
Sprachwechsel, Querystring heohni PHP Tipps 2006 13 12.04.2006 12:09
Anfängerfrage: Text wird nicht gespeichert imported_kontur Datenbanken 1 04.04.2006 08:28
Link zum Sprachwechsel tikal PHP Tipps 2006 0 19.01.2006 15:55
Dringende Hilfe (Sprachwechsel und Content) PHP Tipps 2006 2 16.01.2006 08:25
beim ftp upload wird eine datei 2 mal gespeichert! warum? CrashonNet PHP Tipps 2005-2 0 07.08.2005 19:41
sprachwechsel realisieren? imported_kontur PHP Tipps 2005-2 11 30.07.2005 12:58
cookies werden net gespeichert... tonne PHP Tipps 2005 10 20.05.2005 21:39
[Erledigt] $_SESSION: Array Werte werden nicht gespeichert. PHP-Fortgeschrittene 11 11.05.2005 23:13
Buchstaben werden nicht in Datenbank gespeichert (TEXT) Connar PHP Tipps 2005 1 23.01.2005 20:19
-!- Cookie wird nicht gespeichert PHP Tipps 2004 1 13.10.2004 13:43
[Erledigt] session wird immer neu gespeichert PHP Tipps 2004 6 03.07.2004 16:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/37202-sprachwechsel-wird-nicht-gespeichert.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.