2016-05-04 14 views
-2

Wenn Benutzer meine Website zum ersten Mal aufrufen, werden sie aufgefordert, einen Speicherort auszuwählen, der ihre Währung bestimmt. Wenn ausgewählt, wird der Ländercode in $_SESSION['countryCode'] gespeichert und auf dem Bildschirm angezeigt.PHP-Sitzungsvariable, die zur URL hinzugefügt werden soll (und umgekehrt)

Allerdings möchte ich auch dies in der URL widerspiegeln, zum Beispiel, wenn der Benutzer Deutschland auswählte, würde die URL auf http://test.com/de/ umleiten. Außerdem würde ich es auch mögen, wenn der Benutzer die oben genannte URL dann beim Laden der Seite eingab, um die Sitzung als 'de' festzulegen.

Ich bin mir nicht sicher, wo ich damit anfangen soll Ich nehme an, dass wir eine URL-Rewrite innerhalb der htaccess-Datei machen müssen, aber ich weiß nicht, wie dies mit der PHP-Sitzung zusammenwirken würde geschätzt.

Alles Gute, Matt

+0

trägt. Sie müssen Ihre Codes zeigen, oder andere werden Ihnen nicht helfen können. Grundsätzlich benötigen Sie einen Basis-Controller, um die Sprache zu verwalten, die Routing-Funktion leitet den Benutzer zum Basis-Controller, der Controller liest den Länder-Code in URL, um die Sitzung festzulegen. – wolfrevo

+0

Holen Sie sich das URI mit '$ _SERVER ['request_uri']' und holen Sie sich das de-Teil aus der Zeichenfolge und speichern Sie es in der Sitzung. – Bsienn

Antwort

0

Sie würden Ihr Land Sitzung global speichern wollen und es dann in der Kopfzeile/Bootstrap-Datei verweisen.

Ich würde persönlich eine switch-Anweisung ausführen, um festzustellen, wie URLs mit einem Standard auf GB strukturiert sind.

session_start(); 

// Assuming your country has come in from a validated form post. 
$urlBit = $_POST['country']; 

switch($urlBit) { 
    case 'de': 
     $country = $urlBit; 
     break; 
    case 'es': 
     $country = $urlBit; 
     break; 
    default: 
     $country = 'gb'; 
     break; 
} 

$_SESSION['country'] = $country; 

die umgekehrt In Bezug auf, könnten Sie einen Code setzen Sie die URL in einen String und sucht '/ de /', '/ gb /' im String schreiben.

Noch einmal, ich würde zurück zu einer switch-Anweisung, um damit umzugehen und sobald Sie Ihr Ergebnis kennen. Dann speichern Sie alles mit $_SESSION['country'].

session_start(); 

// Assumed URL structure. 
$url = 'http://www.website.com/de/'; 

// The switcheroo. 
$urlParts = explode('/', $url); 
$urlBit = $urlParts[3]; // Returns 'de' 

// The same switch as above. Stick it in a function or class/method, maybe. 
switch($urlBit) { 
    case 'de': 
     $country = $urlBit; 
     break; 
    case 'es': 
     $country = $urlBit; 
     break; 
    default: 
     $country = 'gb'; 
     break; 
} 

$_SESSION['country'] = $country; 

Dies ist die beste Antwort, die ich zuerst, ohne zu sehen Code bieten kann, aber diese einfache Logik würde Ihr Problem lösen, Sie wüssten, dass unter der Annahme, wie die oben zu implementieren.

Sie könnten dies ohne htaccess leicht tun, aber es ist schwer zu sagen, ohne Ihren Code zu sehen.

0

zunächst bei einem Login dann cuntry wird von gps gefunden. dann je nach cuntry u den PHP-Code schreiben wie as.initially u die cuntry Währungswerte ..

Verwendung case oder if condition

für ausgewählte Währung cuntry wie als

switch($cuntry_name) 

{case(germany): 

$_SESSION['countryCode'] = 'de'; 
break; 
case(...): 
$_SESSION['countryCode'] = '..'; 
break; 
} 
0

Sie defind können Tun Sie dies ohne .htaccess. Erstellen Sie eine Lang-Datei, die Sie in Ihr gesamtes Skript einschließen. Diese lang-Datei wird eine Variable haben, die von Ihrer Sitzungsvariablen generiert wird und an alle Ihre Links angehängt wird und die Währung

Verwandte Themen