webForumDet fria alternativet

Värde från radiobutton som session och cookie

PHP

1 svar · 294 visningar · startad av ejick

Medlem sedan mars 2001895 inlägg
Frågan#1

Hej,

jag sitter och klurar på en tjänst. Problemet är att jag inte riktigt får det att fungera som jag vill och hoppas att någon kan vara snäll och hjälpa mig.

På webbplatsen, som i stort bara består av en sida, kan besökaren välja olika alternativ för att anpassa resultaten efter önskemål. Endast ett alternativ är tillåtet och därför lämpar sig radiobuttons bra (enligt mig).

Följande html-kod

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      <fieldset>
        <legend>Ditt val: <?php echo $default; ?></legend>
          <ol>
            <li><label for="r1">
            <input type="radio" name="default" id="r1" value="r1" <?php if($default_ == "r1") echo "checked=\"checked\"";?> /> R1</label></li>
            <li><label for="r2">
            <input type="radio" name="default" id="r2" value="r2" <?php if($default_ == "r2") echo "checked=\"checked\"";?> /> R2</label></li>
          </ol>
      </fieldset>
      <fieldset>
        <input type="submit" name="submit_default" value="Ändra val" />
      </fieldset>
    </form>

Följt av följande PHP

<?php
    if(isset($_POST['s'])){
        $trim = trim($_POST['s']);
        header("Location:/".$trim."/");
    }
    session_start();
    if(isset($_SESSION['default'])){
        $default = $_SESSION['default'];
	$default_test = "session";
    }
    else {
        if(isset($_COOKIE['default'])){
	    $default = $_COOKIE['default'];
	    $default_test = "kaka";
	}
	else {
	    $default = "R1";
	    $default_test = "ingen session och ingen kaka";
	}
    }
    if(isset($_POST['submit_default'])){
        if(isset($_POST['default'])){
	    #session_start();
	    $_SESSION['default'] = $_POST['default'];
	    setcookie('default',$_SESSION['default'],time()+360);
	}
    }
?>

Vad är det jag missar? Någon som har något tips? Även förslag på optimering (av koden) mottages.

Eller har jag resonerat fel från början?

Medlem sedan mars 2001895 inlägg
#2

Märkte visst att jag kunde stuva om lite i koden och nu verkar det funka. Det vill säga, jag placerade if-satsen som skapar session och cookie ovanför kontrollfunktionen.

Vet dock inte om detta är världens bästa lösning, men det verkar funka i alla fall.

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)