x-plosiv: sessions

Hallo liebes Forum

ich habe da ein problem mit sessions...und ich verzweifle bald.
ich möchte dass der besucher auf meiner seite das design sowie die sprache wählen kann. das möchte ich mit sessions lösen.
zuerst habe ich das script geschrieben für das design. bis es eigentlich auch geklappt hat. dann habe ich das script ergänz mit der sprache...und jetzt klappt zwar das mit der sprachauswahl, leider aber nicht mehr mit dem design. ich denke die variabel für design wird nicht in der session gespeicher, weiss aber nicht warum.
ich hoffe ihr könnt mir weiterhelfen.

besten dank im voraus

hier findet ihr die seite:
http://internet4you.ch/design.php

oben links gebe ich die variablen aus:
die zahlt steht für: 1=rot 2=schwarz 3=rot(noch)

hier das script:
if (session_id() == ""){

$sprache = "de";
  $design = "3";
  session_register("design");
  session_register("sprache");

}

if (!isset ($_GET [''])){
 if (isset ($_GET ['rot'])){
   session_start();
   //session_unregister("design");
         $design = "1";
    session_register("design");

}
 if (isset ($_GET ['schwarz'])){
   session_start();
   //session_unregister("design");
   $design = "2";
   session_register("design");
 }

if (isset ($_GET ['deutsch'])){
   session_start();
   $sprache = "de";
   session_register("sprache");
 }
 if (isset ($_GET ['english'])){
   session_start();
   $sprache = "en";
   session_register("sprache");
 }
}
 else {
  session_start();
  }

echo "$design $sprache";

?>

  1. Hallo.

    Bin mir nicht ganz sicher, aber in neueren PHP-Versionen läuft dachte ich die Verwaltung von Session-Variablen über das Array $_SESSION. Also z.B. $_SESSION['design'] = 'rot';

    Grüße aus Würzburg
    Julian

    --
    ss:) zu:{ ls:< fo:) de:< va:} ch:° n4:} rl:° br:> js:| ie:{ fl:( mo:)
    1. danke klappt leider auch nicht...ich verstehe die welt nicht mehr

  2. Hallo x-plosiv,

    session_register("design");
      session_register("sprache");

    bei dir ist register_globals auf on, oder? Arbeite besser mit dem Array $_SESSION (wenn r_g auf off steht funktionieren die Funktionen session_(un)register() nicht mehr)

    if (!isset ($_GET [''])){

    was soll das bewirken?

    if (isset ($_GET ['schwarz'])){
       session_start();
    [...]
     if (isset ($_GET ['deutsch'])){
       session_start();

    ich vermute mal, dass sich die session_start()s irgendwo "beißen" - versuch mal das session_start(); mal vor die ganzen if-Abfragen zu schreiben:

    session_start();
     $_SESSION['sprache'] = 'de';
     $_SESSION['design'] = 3;
     if(isset($_GET['rot'])) $_SESSION['design'] = 1;
     if(isset($_GET['schwarz'])) $_SESSION['design'] = 2;
     if(isset($_GET['deutsch'])) $_SESSION['sprache'] = 'de';
     if(isset($_GET['english'])) $_SESSION['sprache'] = 'en';
     echo $_SESSION['design'].' '.$_SESSION['sprache'];

    (ungetestet)

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. erstmals danke....ja ich habe g_r auf on
      das beweist auch dies dass es mit der sprache funktioniert.

      ich habe deine variante getestet....und auch hier genau das selbe...die sprache funktioniert jedoch das design nicht :-(

      siehs dir doch mal an

      http://internet4you.ch/design.php

      1. Hallo x-plosiv,

        erstmals danke....ja ich habe g_r auf on

        stell es besser auf off (siehe Archiv)

        ich habe deine variante getestet....und auch hier genau das selbe...die sprache funktioniert jedoch das design nicht :-(

        ich glaube ich weiß, was falsch ist -
         $_SESSION['sprache'] = 'de';
         $_SESSION['design'] = 3;
        überschreibt vermutlich jedesmal die Einstellungen - ersetze die Zeilen mal durch
         if(!isset($_SESSION['sprache'])) $_SESSION['sprache'] = 'de';
         if(!isset($_SESSION['design'])) $_SESSION['design'] = 3;
        dann werden die Werte für Sprache und Design nur gesetzt, wenn sie noch nicht gesetzt wurden.

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Daaaaaaaaaaaanke....jetzt hat es geklappt :-)

          1. ich idiot...

            ich habe jetzt den fehler definitiv gefunden.....oh man wahrscheinlich funktioniert meine komplizierte und veraltete version auch, denn der fehler lag ganz wo anders bei einer abfrage dieser variablen.... ich hatte bei einer if abfrage nur ein = statt == geschrieben, somit hat er die variabel immer fest auf 2 gesetzt *grrr*...aber danke für eure hilfe