kostenloser Webspace werbefrei: lima-city


session wird nicht registriert

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a************n

    ich wollte mit dem code die session style registrieren
    $_SESSION['style'] = $_POST['style'];

    nur leider geht das irgendwie nicht??
    so hab ichs auch schon probiert
    $style = $_POST['style'];
    $_SESSION['style'] = $style;

    ging aber auch nicht
    die seite bekommt den werts style auch richtig übermitelt (ist auch der richtige name)


    könnt ihr mir sagen warum das nicht geht??

    mfg andré
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. versuchs mal mit

    session_start();
    $_SESSION['style'] = $_POST['style'];


    danach kannste ja mal prüfen:

    if(empty($_SESSION['style']))
    {
      echo "keine Session 'Style' gefunden <br />";
    }
    else
    {
      echo "Session'Style' vorhande <br />";
    
    }

    und die bist auch sicher das in der POST was drin steht?^^



    Beitrag geändert: 24.9.2008 15:25:08 von myhead
  4. Autor dieses Themas

    a************n

    am anfang vom dokument logischerweise oder??
    außerdem hab ich das schon
  5. t*****b

    Müsste eigentlich funktionieren, bist du sicher, dass du auf jeder Seite auf der du die Session verwendest session_start() aufrufst
  6. Autor dieses Themas

    a************n

    ja steht in meiner head datei und die wird immer includet
  7. ....benutzt du den Internet explorer?

    oder mach einfach mal so eine Überprüfung wie ich oben noch geschrieben habe ^^

    Beitrag geändert: 24.9.2008 15:27:05 von myhead
  8. Autor dieses Themas

    a************n

    ich habs mit IE, Firefox und safari probiert nirgends hat es geklappt


    Beitrag geändert: 24.9.2008 15:27:31 von andre-morillon
  9. Woher weißten du das die Session nicht registriert wird?^^

    falls immernoch nix geht ruf einfach mal session_id(); und session_name(); auf ...dann bekommste den Namen und ID der Session^^

    ...ich kenn mich mit sessions auch nicht mehr so gut aus^^ hab ja ne include^^

    Beitrag geändert: 24.9.2008 15:32:47 von myhead
  10. Autor dieses Themas

    a************n

    post ist nicht leer hab ich mal auf get gestellt und in der url stand ?style=blue
    also ist es ja nicht leer
    und

    myhead schrieb:
    Woher weißten du das die Session nicht registriert wird?^^
    falls immernoch nix geht ruf einfach mal session_id(); und session_name(); auf ...dann bekommste den Namen und ID der Session^^

    ...ich kenn mich mit sessions auch nicht mehr so gut aus^^ hab ja ne include^^

    naja geplant ist das sich der hintergrund ändert...
    auf standart ist er grün und ich hab noch nen blauen zur auswahl
    wenn ich den style auf blau ändere bleibt er genau 1 seite lang blau danach wird er wieder grün
    gucks dir an http://andre-morillon.de/stylechange.php
    jetzt sthet überall session style vorhanden

    mit ff kann man einfach auf das favicon kilcken und dann sich die cookies anzeigen lassen der zeigt aber auch sessions an.
    die session user ist vorhanden (nach login) und immer ist vorhanden PHPSESID
    was wohl die id dier session wäre

    Beitrag geändert: 24.9.2008 15:36:02 von andre-morillon
  11. dann musst du die session_id(); und den session_name() an die url weitergeben...

    bsp.:

    session_start();
    $name = session_name();
    $id = session_id();
    
    //So sollte es erstmal gehen, erstmal zum testen 
    echo "<a href='datei.php?$name=$id> LINK </a>'";


  12. Autor dieses Themas

    a************n



    myhead schrieb:
    dann musst du die session_id(); und den session_name() an die url weitergeben...

    bsp.:

    session_start();
    $name = session_name();
    $id = session_id();
    
    //So sollte es erstmal gehen, erstmal zum testen 
    echo '<a href='datei.php?$name=$id> LINK </a>'';



    dann kommt das in der url (wenn ich es in die seite einfüge)
    datei.php?PHPSESSID=054141614e0ebc21053301940a19a220
  13. t*****b

    Meine Vermutung wäre, dass du auf jeder Seite die Session setzt:

    $_SESSION['style'] = $_POST['style'];

    Dadurch ersetzt du den Wert von $_SESSION['style'] auf "", wenn $_POST['style'] nicht vorhanden ist.

    Sollte dies sien, kannst du das so beheben:

    if (isset($_POST["style"])) {
     $_SESSION['style'] = $_POST['style'];
    }
    [code]
    
    Dadurch wird $_SESSION['style'] nur geändert/gesetzt wenn das Formular wirklich gewählt wurde und nicht von einem erneuten Seitenaufruf auf leer ("") gesetzt.
    
    Überprüfen auch mal mit:
    [code]
    if (isset($_SESSION['style'])) {
     echo "Session gesetzt";
     if (empty($_SESSION['style'])) {
      echo " aber mit einem leeren Wert";
     } else {
      echo " mit dem Wert: ".$_SESSION['style'];
    } else {
     echo "Session nicht gesetzt";
    }

  14. Autor dieses Themas

    a************n

    wenn ich tw's version nehme kommt
    Session gesetzt mit dem Wert: standart
    der wert müsste aber blue sein
    und ich setzte nur auf einer seite $_SESSION['style'] = $_POST['style'];
    und nicht auf jeder

    Beitrag geändert: 24.9.2008 15:49:01 von andre-morillon
  15. t*****b

    Dann liegt der Fehler ja nicht in er Session. Poste mal den Code des Formulares und dort, wo du die Session setzt. Man muss das Problem einschränken und kommt dadurch an die Stelle, wo das Problem auftritt und das muss wohl in dem Formular oder der Stelle liegen, wo die Session gesetzt wird, gesetzt wird diese ja nur anscheinend nicht richtig.
  16. Autor dieses Themas

    a************n

    formular:
    <?php
    include_once('head.php');
    ?>
    Script noch in arbeit<br>
    !Es muss javascript aktiviert sein!<br><br>
    <form action="verarbeiten.php" method="post" >
    <select name="style" onchange="this.form.submit()">
    <option selected >Bitte w&auml;hlen</option>
    
    <option value="standard">Standard</option>
    <option value="blue">Blau</option>
    </select>
    </form>
    <?php
    include_once('end.php');
    ?>


    verarbeitung:

    <?php
    include_once('head.php');
    
    if(empty($_POST['style'])) {
    echo ' POST LEER';
    exit;
    }
    
    $_SESSION['style'] = $_POST['style'];
    
    
    if(empty($_SESSION['style']))
    {
      echo "keine Session 'Style' gefunden ";
    }
    else
    {
      echo "Session'Style' vorhanden ";
    
    }
    
    ?>
    
    
    
    
    </body><head>
    <meta http-equiv="Refresh" content="0; URL=stylechange.php">
    </head><body>
    
    
    <?php
    include_once('end.php');
    ?>

    in der head datei steht session_start();


    Beitrag geändert: 24.9.2008 16:01:19 von andre-morillon
  17. t*****b

    if(!empty($_POST["style"])) {
     $_SESSION["style"] = htmlentities($_POST["style"]);
    } else {
     echo "kein style ausgewählt...";
    }
  18. Autor dieses Themas

    a************n

    das geht auch nicht langsam verzweifele ich richtig

    mfg andré
  19. t*****b

    <?php
    
    session_start();
    
    if(isset($_POST["style"]) AND $_GET["changestyle"] == "true") {
            $_SESSION["style"] = $_POST["style"];
    }
    
    switch($_SESSION["style"]) {
            case "rot":   $style = "rot";   break;
            case "gruen": $style = "gruen"; break;
            case "blau":  $style = "blau";  break;
            default:          $style = "default";
    }
    
    
    ?>
    
    <html>
     <head>
      <title>...</title>
      <link rel="stylesheet" type="text/css" href="./css/<?=$style;?>.css">
     </head>
    <body>
    
    <form action="?changestyle=true" method="post">
     <select name="style">
      <option>Style wählen</option>
      <option value="rot">Rot</option>
      <option value="gruen">Grün</option>
      <option value="blau">Blau</option>
     </select>
     <input type="submit" value="change" />
    </form>
    
    </body>
    </html>


    ;)


    Beitrag geändert: 24.9.2008 17:03:14 von trueweb


    Beitrag geändert: 24.9.2008 17:03:43 von trueweb
  20. Autor dieses Themas

    a************n

    ich hab das alles jetzt ohne session gemacht einfach mit
    $style = $_GET['style'];
    if(empty($style)) {
    $style = 'standard';
    }


    thx mfg andré
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!