Avatar billede dmg Nybegynder
22. marts 2004 - 16:52 Der er 9 kommentarer og
1 løsning

avanceret session ting

Jeg er totalt nybegynder i php og sidder her og er ved at lave et program, hvor jeg er noget til en hjernevrider.

jeg erklærer følgende session:

$_SESSION['gaver'] = $arr[$t]['gaver'];

men når jeg så kalder sessionen fra en anden side, ved følgende kode:

print $_SESSION['gaver'];

Viser den kun det sidste indhold i arrayet $arr.

Jeg har prøvet en masse ting og kan slet ik, få det til at virke. Håber der er en der kan hjælpe.
Avatar billede fangel Nybegynder
22. marts 2004 - 17:01 #1
du tildeler jo kun variablen en værdi, så derfor har den kun en... prøv at vis lidt mere kode, for som det er nu gør det i hvert fald som skrevet...

Morten
Avatar billede dmg Nybegynder
22. marts 2004 - 17:08 #2
okay og tak fordi du gider hjælpe.

her er koden jeg bruger til at erklærer sessioner:

while(odbc_fetch_row($result))
  {
    $arr[] = Array("gaver" => odbc_result($result, 3),
                  "billede" => odbc_result($result, 4),
                  "lager" => odbc_result($result, 5));
  }
  for($t=3; $t<odbc_result($result, 1); $t++)
  {

        $antal = $t;
        if (isset($_POST["antal$antal"]) && $_POST["antal$antal"] != '')
        {
          print "Du har bestilt følgende:<BR>";
          print "<BR>";
          print "Antal: "; print $_POST["antal$antal"];
          print "<BR>";
          $_SESSION['antal'] = $_POST["antal$antal"];
          print $arr[$t]['gaver'];
          print "<BR>";
          $_SESSION['gaver'] = $arr[$t]['gaver'];
          print $arr[$t]['billede'];
          print "<BR>";
          $_SESSION['billede'] = $arr[$t]['billede'];
          print $arr[$t]['lager'];
          print "<BR>";
          $_SESSION['lager'] = $arr[$t]['lager'];
        }
  }

de bliver så sendt til denne fil, ved en session_start();

print "Antal: "; print $_SESSION['antal'];
  print "<BR>";
  print "Gave: "; print $_SESSION['gaver'];
  print "<BR>";
  print "Billede: "; print $_SESSION['billede'];
  print "<BR>";
  print "Lager: "; print $_SESSION['lager'];
  print "<BR>";

Håber du kan hitte ud af det :-)
Avatar billede fangel Nybegynder
22. marts 2004 - 17:12 #3
hver gang du kører løkken igennem overskriver du jo session-variablerne - du skal derfor også bruge tredimentionelle arrays til dine session-variabler...

Morten
Avatar billede dmg Nybegynder
22. marts 2004 - 17:16 #4
wow!!! som sagt jeg er meget nybegynder, kan du evt lave et eksempel der passer til min kode? så ville det være alt for cool :-)
Avatar billede fangel Nybegynder
22. marts 2004 - 17:25 #5
filen der gemmer:

  for($t=3; $t<odbc_result($result, 1); $t++)
  {
    $antal = $t;
    if (isset($_POST["antal" . $antal]) && $_POST["antal" . $antal] != '')
    {
      $_SESSION['ordre'][$t]['antal'] = $_POST["antal" . $antal];
      $_SESSION['ordre'][$t]['gaver'] = $arr[$t]['gaver'];
      $_SESSION['ordre'][$t]['billede'] = $arr[$t]['billede'];
      $_SESSION['ordre'][$t]['lager'] = $arr[$t]['lager'];

      print "Du har bestilt følgende:<BR><BR>";
      print "Antal: " . $_POST["antal" . $antal];
      print "<BR>";
      print $arr[$t]['gaver'];
      print "<BR>";
      print $arr[$t]['billede'];
      print "<BR>";
      print $arr[$t]['lager'];
    print "<BR>";
    }
  }

på siden der fremviser

foreach($_SESSION['ordre'] AS $order){
  print "Du har bestilt følgende:<BR><BR>";
  print "Antal: " . $order['antal'];
  print "<BR>";
  print $order['gaver'];
  print "<BR>";
  print $order['billede'];
  print "<BR>";
  print $order['lager'];
  print "<BR>";
}

eller noget i den dur...

Morten
Avatar billede dmg Nybegynder
22. marts 2004 - 17:44 #6
fandeme så!!! du er simpelthen for sej! Som sagt, jeg er kun nybegynder, men jeg syntes det er fantastisk at du lyn hurtigt kan komme med eksempler, så det virker. Det vil jeg os kunne /:

Når men hit med et svar så du kan få dine point ;)

Once again... thank you
Avatar billede dmg Nybegynder
22. marts 2004 - 17:47 #7
Lige et hurtigt spørgsmål til inden, hvis det er ok.

Når jeg loader siden forfra og køre scriptet igen, tilføjer den bare flere. Er der en måde jeg kan stoppe sessionen på, sådan at efter den er blevet udført slettes den???
Avatar billede fangel Nybegynder
22. marts 2004 - 17:47 #8
tjaa - øvelse gør mester... (2 år og 4 måneders hård træning i mit tilfælde, hæhæ)

Morten
Avatar billede fangel Nybegynder
22. marts 2004 - 17:48 #9
du kan lave en

unset($_SESSION['ordre']);

for at slette ordre-session-variablen

Morten
Avatar billede dmg Nybegynder
22. marts 2004 - 17:51 #10
yes det fandt jeg ud af :-)

Takker !
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