Hvordan gemmes $variabler?

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
supermario
Entusiast
Entusiast
Indlæg: 32
Tilmeldt: 22. feb 2012, 19:28
Geografisk sted: Danmark
Kontakt:

Hvordan gemmes $variabler?

Indlæg af supermario » 27. okt 2013, 09:46

Hej

Jeg har lavet et spørgeskema. Når man trykker op submit-knappen, kommer man til side2, som viser hvad man har indtastet. Efter et klik på endnu en submit-knap ser man side3 (resultatet).

Problem:
Når man har 2 variabler på side 1, trykker submit, kender den også variablerne på side 2. Men når jeg trykker submit igen, er det som om at den ikke kender variablerne fra side 1.
Er det normalt, eller har jeg gjort noget forkert?

Det er i øvrigt formlen på denne side jeg arbejder på http://www.hvoribyen.dk

Venlig hilsen
Peter

supermario
Entusiast
Entusiast
Indlæg: 32
Tilmeldt: 22. feb 2012, 19:28
Geografisk sted: Danmark
Kontakt:

Re: Hvordan gemmes $variabler?

Indlæg af supermario » 27. okt 2013, 10:02

På side1 laver jeg fx:

Kode: Vælg alt

<input type="text" name="username" id="username" autofocus required placeholder="Tast Navn" size="25"/>
På side2:

Kode: Vælg alt

$navn = $_POST["username"];  echo $navn;
Hvordan får jeg værdien med på side 3???

Brugeravatar
Daniel
Admin
Admin
Indlæg: 625
Tilmeldt: 14. jun 2011, 09:27
Geografisk sted: Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Hvordan gemmes $variabler?

Indlæg af Daniel » 27. okt 2013, 11:07

Det er helt normalt at du ikke kan se dine værdier fra din form når du går væk fra den side, hvor de oprindeligt er blevet sendt til.
Variabler bliver ikke gemt på serveren eller ved brugeren, for at man kan gemme variablerne skal man til at kigge på sessions eller cookies.

Men i et system som dit, tror jeg det vil være nemmere for dig, at gensende variablerne fra side 2, til side 3.

Hvis vi siger din side 1 ser sådan ud:

Kode: Vælg alt

<form action="side2" method="post">
    <input type="text" name="username">
    <input type="text" name="svar1">
    <input type="submit" value="Send besvarelse">
</form>
Så ser side 2 måske sådan ud:

Kode: Vælg alt

<?php
if(!empty($_POST['username']) && !empty($_POST['svar1'])) {
    $username = $_POST['username'];
    $svar1 = $_POST['svar1'];

    echo 'Navn: ' . $username . '<br>';
    echo 'Svar 1: ' . $svar1 . '<br>';

?>
    <form action="side3" method="post">
        <input type="hidden" name="username" value="<?php echo $username; ?>">
        <input type="hidden" name="svar1" value="<?php echo $svar1; ?>">
        <input type="submit" value="Korrekte svar! Fortsæt!">
    </form>
<?php
}
?>
Så kan side 3 se sådan ud:

Kode: Vælg alt

<?php
if(!empty($_POST['username']) && !empty($_POST['svar1'])) {
    $username = $_POST['username'];
    $svar1 = $_POST['svar1'];

    //PHP proces
}
?>
Så ved at bruge input typen hidden, så kan du lave et felt som man ikke kan se, og når en person så trykker submit, så sender den de data afsted som man har angivet i value feltet. :)
Det er lidt dobbelt arbejde, men tror stadig det bedre kan betale sig, end at du skal til at benytte sessions.

supermario
Entusiast
Entusiast
Indlæg: 32
Tilmeldt: 22. feb 2012, 19:28
Geografisk sted: Danmark
Kontakt:

Re: Hvordan gemmes $variabler?

Indlæg af supermario » 27. okt 2013, 19:39

1000 tak Daniel. Det var præcis hvad jeg søgte!

Nu kan jeg arbejde lidt videre med min kodning :)

Besvar