[Hilfe]Sprache per Cookies setzen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Hilfe]Sprache per Cookies setzen

      Ich komme gleich zur sache und zwar wollte ich meine HP zwei Sprachen fähig machen.. Nur ich hab noch ein Problem..
      So siehts momentan aus:

      PHP-Quellcode

      1. if($_COOKIE[lang] == "") {
      2. echo'
      3. <form action="index.php" method="post">
      4. <b><input name="ttt" src="pics/lang_en.png" value="en" type="image"/>
      5. <b><input name="ttt" src="pics/lang_ger.png" value="ger" type="image"/>
      6. </b></b>
      7. </form>
      8. if ($_POST['ttt'] == "en"){
      9. setcookie("lang", "en", time()+7200);
      10. }
      11. else if ($_POST['ttt'] == "ger"){
      12. setcookie("lang", "ger", time()+7200);
      13. }
      Alles anzeigen
      Undzwar möchte ich das wenn man auf das Bild klickt der entsprechende COOKIE gesetzt wird.. (Also ich klicke auf das Deutsche Bild und dann soll es POST[ger] weiter geben
      Daher meine frage wie kann man das lösen ohne das man z.b. Radio Buttons und nen Submit hinzufügt?

      Danke für jede hilfe
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Verlink die Flaggen doch mit auswertung.php?lang=en/de und lese in der auswertung.php dann ab, welche Variable gewählt wurde mit if ($_GET['lang'] == "en") {cookie oder session oder sonst was} und leite dann wieder zurück zur index.php und frage dann nochmal ab, welche sprache gewählt wurde. Dann musst du halt in der index.php am Anfang if ($_GET['lang'] == "") {$_GET['lang'] == "en"} machen, sofern du Englisch als Standardsprache haben willst. Weißt du wie ich das meine?^^
    • Ich hätte eine alternative im Angebot, wenn du nur möchtest, dass es eine Sprachauswahl gibt (jedoch ohne Cookie):

      PHP-Quellcode

      1. <?php
      2. if(isset($_REQUEST['de']))
      3. {
      4. echo "Es wurde 'Deutsch' ausgewaehlt!";
      5. }
      6. elseif(isset($_REQUEST['en']))
      7. {
      8. echo "Es wurde 'Englisch' ausgewaehlt!";
      9. }
      10. ?>
      11. <html>
      12. <head>
      13. <title>Sprachauswahl</title>
      14. </head>
      15. <body>
      16. <p><a href="<?php echo $_SERVER['PHP_SELF']."?de"?>">Deutsch</a></p>
      17. <p><a href="<?php echo $_SERVER['PHP_SELF']."?en"?>">Englisch</a></p>
      18. </body>
      19. </html>
      Alles anzeigen
      Hier könntest du statt dem echo mit Hilfe der header-Function
      header(Location:...) eine Weiterleitung anfügen, oder via XML ganze Sprachkonstrukte dann austauschen :).

      Doch möchtest du unbedingt, dass Cookies verwendet werden?
      Dann frage mich morgen erneut, sollte ich Zeit dazu finden.
      Hierfür hat mein Kopf gerade so ausgereicht x).
    • Hab es nun wie gesagt mit REQUEST gelöst, ging relativ einfach wenn man auf die Idee kommt :)

      PHP-Quellcode

      1. <form action="?lang=en" method="post"><b><input src="pics/lang_en.png" type="image"/>
      2. </b></form>
      3. <form action="?lang=ger" method="post"><b><input src="pics/lang_ger.png" type="image"/>
      4. </b></form>
      5. </span>';
      6. }
      7. if ($_SERVER['REQUEST_URI'] == "/?lang=en"){
      8. setcookie("lang", "en", time()+7200);
      9. }
      10. else if ($_SERVER['REQUEST_URI'] == "/?lang=ger"){
      11. setcookie("lang", "ger", time()+7200);
      12. }
      Alles anzeigen
      Sieht nun so aus..
      Ps. ich bräuchte es mit COOKIES da es 1. gespeichert werden soll und 2. lang_en/ger.php included werden muss..
    • Dennoch benötigst du hier keine Form-Tags. Eine einfache Verlinkung reicht hier aus, da auch auch ohne Form-Tag eine Anfrage über
      HTTP, bzw genauer gesagt die GET-Methode gesendet wird und in der Superglobalen "$_REQUEST" (und $_GET) gespeichert wird.

      Doch dies nur am Rande.^^
      //Virtual
    • Warum machst du es nicht mit SESSION?

      PHP-Quellcode

      1. session_start();
      2. if($_SESSION[lang] == "") {
      3. echo'
      4. <form action="index.php" method="post">
      5. <b><input name="ttt" src="pics/lang_en.png" value="en" type="image"/>
      6. <b><input name="ttt" src="pics/lang_ger.png" value="ger" type="image"/>
      7. </b></b>
      8. </form>
      9. if ($_POST['ttt'] == "en"){
      10. $_SESSION['lang'] = 'en';
      11. }
      12. else if ($_POST['ttt'] == "ger"){
      13. $_SESSION['lang'] = 'ger';
      14. }
      Alles anzeigen
    • Ich hab es ja nun so gelöst

      PHP-Quellcode

      1. <form action="?lang=en" method="post"><b><input src="pics/lang_en.png" type="image"/>
      2. </b></form>
      3. <form action="?lang=ger" method="post"><b><input src="pics/lang_ger.png" type="image"/>
      4. </b></form>
      5. </span>';
      6. }
      7. if ($_SERVER['REQUEST_URI'] == "/?lang=en"){
      8. setcookie("lang", "en", time()+7200);
      9. }
      10. else if ($_SERVER['REQUEST_URI'] == "/?lang=ger"){
      11. setcookie("lang", "ger", time()+7200);
      12. }
      Alles anzeigen



      Funktioniert einwandfrei ;) Aber trotzdem danke für deine mühe mir zu helfen..
    • ulle;251508 schrieb:

      Sprich mit anderen worten erstellst du für jeden Sprachenwechseln ein neues Cookie. Oder wird das alte Standardmäßig überschrieben?? Sorry das ich frage aber ich arbeite nicht mit Cookies :D

      öhm die anzeige für die Sprach auswahl wird bei mir ausgeblendet sobald man die Sprache ausgewählt hat, wenn der Cookie nach eig. 7 Tagen abläuft wird die anzeige wieder eingeblendet und man kann wieder auswählen..
    • Synaptic;255634 schrieb:

      Wenn ich ihm hätte schaden wollen, hätte ich auch einfach nen
      Shell Hochladen können oder alle DB'en löschen können.

      Hab ich aber nicht getan ;)


      dann tus doch ;) soll ja angeblich irgendwelche scripts von dir beinhalten, wie gesagt wenn das der fall ist geh ich mich erhängen :)
      was soll denn da der falls sein die sonder zeichen wurden rausgefiltert und mssql infjections wie '-shutdown oder wie auch immer funktionert nicht bei mysql ;)
    • Und was hat das mit dem Thema zu tun?
      Also meiner Meinung nach is es unnötige Arbeit bei Sprachen mit Sessions zu arbeiten. Für die SEO is es ohnehin besser die Sprache als Parameter mitzugeben.

      Wenn deine Website ne Accountverwaltung hat ist es sinnvoller die Sprache für den jeweiligen Nutzer in der DB abzulegen.

      Ansonsten ist die Seite eine reine Infoseite, deshalb würde ich hier die Sprache über den User Agent auslesen oder eben den Benutzer selbst wählen lassen.