Avatar billede hypofysen Nybegynder
17. januar 2009 - 09:07 Der er 7 kommentarer og
1 løsning

hjælp til session

jeg forsøger at tilføjer noget til et array som jeg gerne vil gemme i en session, men det er kun det sidste resultat jeg får udskrevet, hvad gør jeg forkert... har jeg fuldstændig misforstået brugen af sessions?

<form action="index.php" method="post">
produkt:&nbsp;<input type="text" name="produkt" />
antal:&nbsp;<input type="text" name="antal" />
<input type="submit" name="submit" value="tilføj" />
</form><br /><br />
<?php
$_SESSION['kurv'] = array();

if(isset($_POST['submit'])){
    $varenummer = $_POST['produkt'];
    $size = $_POST['antal'];

    $_SESSION['kurv'][$varenummer] = $size;

    foreach($_SESSION['kurv'] as $produkt => $antal){
        echo "varenummer&nbsp;" . $produkt . ":&nbsp;antal&nbsp;" . $antal . "<br />";
    };
};
?>
Avatar billede jensgram Nybegynder
17. januar 2009 - 10:06 #1
Problemet er, at du "nulstiller" $_SESSION i din første linie.
Avatar billede jensgram Nybegynder
17. januar 2009 - 10:08 #2
For at sikre dig, at løkken ikke fejler, kan du i stedet for "= array()"-linien:

// Efter session_start()

if (!is_array($_SESSION['kurv'])) $_SESSION = array();
Avatar billede jensgram Nybegynder
17. januar 2009 - 10:09 #3
"har jeg fuldstændig misforstået brugen af sessions? " - Sikkert ikke, men for lige at slå det fast: $_SESSION initialiseres automatisk (ved session_start()), så hvis du selv tildeler variablen en ny værdi derefter, vil den oprindelige information være tabt.
Avatar billede jensgram Nybegynder
17. januar 2009 - 10:12 #4
Ups!

- if (!is_array($_SESSION['kurv'])) $_SESSION = array();
+ if (!(isset($_SESSION['kurv']) && is_array($_SESSION['kurv']))) $_SESSION['kurv'] = array();

Nu skal jeg nok holde min kæft :)
Avatar billede hypofysen Nybegynder
17. januar 2009 - 11:16 #5
hehe

fik det ikke til at virke på den måde du skrev,men fjerne linjen
$_SESSION['kurv'] = array();
også virkede det, er det en forkert måde at gøre det på?

under alle omstændigheder så smid et svar, for du ledte mig på sporet af en løsning :)
Avatar billede jensgram Nybegynder
17. januar 2009 - 12:06 #6
Ja, der er vel heller ingen grund til at lave tjek da foreach blot vil køre nul gange...

Tag selv de fleste points
Avatar billede hypofysen Nybegynder
17. januar 2009 - 12:48 #7
nope de er dine ellers havde jeg aldrig fundet en løsning, tak for hjælpen :)
Avatar billede jensgram Nybegynder
17. januar 2009 - 13:16 #8
Mig der takker. God weekend.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester