Ankündigung

Einklappen
Keine Ankündigung bisher.

$_GET und Session

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema $_GET und Session.

    $_GET und Session

    Folgendes will ich realisieren.

    Ich erstelle eine seite die zweisprachig ist. Auf der Startseite kann man die sprache aussuchen. Die sprachenkürzel sollen per $_GET in eine session geschrieben werden und auf allen folgenden seiten soll abgefragt werden:
    ist die session nicht gesetzt soll er sich das $_GET holen und in die session schreiben. wenn aber kein $_GET argument mitgegeben wurde soll er als standart in die Session de schreiben für deutsch.

    Wenn nämlich jemand nicht auf die startseite sondern auf eine andere seite kommt soll standartmäßig deutsch eingestellt sein. oben in dem menü kann er dann die sprache auswählen und die soll in eine session geschrieben werden.
    irgendwie kriege ich das nciht hin.
    hier mein amatör versuch:

    Code:
    $sprachauswahl = $_GET['sprache'];
    if(!isset($_SESSION['sprache']) /*and $sprachauswahl!=("de" or "en")*/){
    $_SESSION['sprache']="de";
    }
    else{
    		
    $_SESSION['sprache']=$sprachauswahl;
    }
    kann mir jemand helfen?
    hab schon die suche benutzt aber nix gefunden.

    danke

  • Gast-Avatar
    Ein Gast antwortete
    ok danke es klappt und ich bin zufrieden.

    many thanx!!!!!!!!!!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    zu 1.
    du musst notices unterdrücken: http://de3.php.net/error_reporting
    so dass es komplett korrekt ist, ist schwer zu machen denn irgendwie muss man ja einen ggf. undefinierten index benutzen um dessen wert der ja ggf. vorhanden ist herauszubekommen
    zu 2.
    einfach das if und das elseif austauschen:
    Code:
    session_start();
    if(ereg("^de$|^en$",$_GET['sprache'])){ 
    $_SESSION['sprache']=$_GET['sprache'];
    $sprache=$_GET['sprache']; 
    } elseif(ereg("^de$|^en$",$_SESSION['sprache'])){ 
    $sprache=$_SESSION['sprache']; 
    } else { 
    $_SESSION['sprache']="de"; 
    $sprache="de"; 
    }
    jetzt wird nur die sprache aus der session genommen wenn sie nicht in $_GET vorhanden ist

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    also das funktioniert nur:
    1. kommt beim ersten mal immer:
    Notice: Undefined index: sprache in /www/htdocs/v106193/schicksal.php on line 12

    Notice: Undefined index: sprache in /www/htdocs/v106193/schicksal.php on line 16

    Kann man das irgendwie unterbinden? also wie man es unterbindet weiß ich, ich mein so unterbinden das alles korrekt ist.

    und 2.
    man kann jetzt keine sprache wechseln. wenn man sich einmal entschieden hat kann man es nicht wieder ändern.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wegen der funktion oder externen datei:
    du kannst das einfach in eine datei sprache_check.php packen und dann immer am anfang jedes scriptes include
    Code:
    include("sprache_check.php");

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Code:
    session_start(); 
    if(ereg("^de$|^en$",$_SESSION['sprache'])){ 
    $sprache=$_SESSION['sprache']; 
    } elseif(ereg("^de$|^en$",$_GET['sprache'])){ 
    >>>>>$_SESSION['sprache']=$_GET['sprache'];<<<<<
    $sprache=$_GET['sprache']; 
    } else { 
    echo "bitte sprache auswählen"; 
    }
    habe die anweisung zum in die session schreiben hervorgehoben
    wenn als default deutsch ausgewählt werden soll sieht es so aus:
    Code:
    session_start(); 
    if(ereg("^de$|^en$",$_SESSION['sprache'])){ 
    $sprache=$_SESSION['sprache']; 
    } elseif(ereg("^de$|^en$",$_GET['sprache'])){ 
    >>>>>$_SESSION['sprache']=$_GET['sprache'];<<<<<
    $sprache=$_GET['sprache']; 
    } else { 
    >>>>>$_SESSION['sprache']="de";<<<<<
    $sprache="de";
    }
    EDIT: mist innerhalb von code-tags funktioniert kein anderer bb-code
    hab das jetzt mit <<<<< markiert

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ok das ist jetzt klar. aber eins verstehe ich noch nicht.
    in der variable $sprache habe ich jetzt meinen sprachenkürzel.
    aber in eine session wird der kürzel ja nicht geschrieben oder?
    ich meine eine auswahl soll ja für den ganzen besuch gelten.

    und gibt es eine möglichkeit das ganze in eine funktion zu packen in einer externen datei?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    das ist ein regulärer ausdruck
    infos dazu gibts unter http://de3.php.net/manual/de/ref.regex.php
    dieser reguläre ausdruck bewirkt das selbe wie
    Code:
    $_SESSION['sprache']=="de" OR $_SESSION['sprache']=="en"
    is halt nur um einiges kürzer deswegen verwende ich das gerne

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    danke für die schnelle antwort.

    aber ich kapiere den code nicht ganz

    ereg("^de$|^en$",$_SESSION['sprache'])
    was genau passiert da?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    so könnte man das lösen:
    Code:
    session_start();
    if(ereg("^de$|^en$",$_SESSION['sprache'])){
    $sprache=$_SESSION['sprache'];
    } elseif(ereg("^de$|^en$",$_GET['sprache'])){
    $_SESSION['sprache']=$_GET['sprache'];
    $sprache=$_GET['sprache'];
    } else {
    echo "bitte sprache auswählen";
    }
    die sprache steckt dann in jedem fall in der variable $sprache egal ob sessions oder $_GET
    falls keine sprache ausgewählt ist folgt eine fehlermeldung
    du kannst es natürlich auch so ändern dass wenn keine sürache ausgewählt ist die sprache deutsch ist

    Einen Kommentar schreiben:

Lädt...
X