24. oktober 2003 - 15:36
Der er
3 kommentarer og 1 løsning
Problemer med sessions
Jeg har følgende to scripts. Det ene siger ingen fejl, men når man skal videre til den anden sider når man har trykket submit, så opdaterer den bare den same side igen. Her kommer de to scripts: track_prefs1.php : <? session_start(); session_register("first"); session_register("last"); session_register("email"); session_register("news_prefs"); ?> <html> <head> <!-- Minus AutoDato --> <title>Velkommen</title> <meta name="Generator" content="Stone's WebWriter 4"> <style type="text/css"> p, ul, h3 {font-family: verdana, helvetica, sans-serif;} .enabled {font-weight: bold; color: green;} .disabled {font-weight: bold; color: red;} </style> </head> <body> <? function load_user_data(){ global $first, $last, $email, $news_prefs; $_SESSION['first'] = "Karen"; $_SESSION['last'] = "Hansen"; $_SESSION['email'] = "karen@hansen.dk"; $_SESSION['news_prefs'] = array( "Politik" => 0, "Familie" => 1, "Børn" => 1, "Tegneserier" => 0, ); } echo load_user_data(); ?> <h3>Velkommen</h3> <p>Velkommen tilbage <b><? echo $_SESSION['first']?></b> <p>Dine indstillinger er indlæst. <p><a href=track_prefs2.php>Se oversigt over dine valg</a>. </body> </html> track_prefs2.php : <? session_start(); ?> <html> <head> <!-- Minus AutoDato --> <title>Indstillinger</title> <meta name="Generator" content="Stone's WebWriter 4"> <style type="text/css"> p, ul, h3 {font-family: verdana, helvetica, sans-serif;} .ja {font-weight: bold; color: green;} .nej {font-weight: bold; color: red;} </style> </head> <body> <h3>Indstillinger</h3> <p>Hej <b><?=$_SESSION['first']?> <?=$_SESSION['last']?></b>, <p>E-mail: <?=$_SESSION['email']?> <p>Dine valg:<ul> <? while(list($key,$value) = each($_SESSION['news_prefs'])) { if($value) { $value = "Ja"; } else { $value = "Nej"; } print("<li class=$value>$key: $value</li>"); } ?> </ul> </body> </html> håber i kan hjælpe mig ;)
Annonceindlæg fra Lector
24. oktober 2003 - 23:47
#2
Jeg har skreet nogle forkerte kode ind istedet for dem jeg ville have skrevet, de der koder er rigtige nok, det må i undskylde. Her kommer de rigtige koder: session_cart.php: <? error_reporting(E_ALL); session_start(); $inventory = array( "001" => "Tandpasta", "002" => "Ansigtsservietter", "003" => "Vatpinde", "004" => "Shampoo", "005" => "Balsam", "006" => "Deodorant" ); function populate_cart() { global $name, $email, $items; $items = array(0, 0, 0, 0, 0, 0); session_register("name"); session_register("email"); session_register("items"); } ?> <html> <body> <? function get_user_info() { ?> <h3>Indtast venligst følgende information, inden du fortsætter:</h3> <form action=session_cart.php method=post> <p>Navn: <input type="text" name="name"> <br>E-mail: <input type="text" name="email"> <p><input type="submit" name="infosubmit" value="Send"> </form> <? } function shop() { global $name, $email, $items, $inventory; ?> <p>Foretag dine indkøb her: <form action=session_cart.php method=post><p> <? $total = 0; for($i = 0; $i < sizeof($inventory); $i++) { ?> Varenummer: <b><?=key($inventory);?></b> Beskrivelse: <b><?=$inventory[key($inventory)]?></b> Antal: <input type="text" name="items_in[<?=$i?>]" value="<?=$_SESSION[items][$i]?>" size="2" maxlength="2"><br> <? next($inventory); $total = $total + $_SESSION[items][$i]; } ?> <p>Du har <?=$total?> varer i din indkøbsvogn. <p><input type="submit" name="additems" value="Læg i indkøbsvogn"> </form> <? if($total > 0) { ?> <form action=session_cart_checkout.php> <input type="submit" name="checkout" value="Check ud!"> <!-- Minus AutoDato --> </form> <? } } /* MAIN */ if(isset($_POST['additems'])) { $_SESSION[items] = $_POST[items_in]; echo("<h3>Din indkøbsvogn er opdateret!</h3>"); shop(); }elseif(!isset($_SESSION['name'])) { get_user_info(); } elseif(isset($_POST[infosubmit])) { populate_cart(); shop(); } else { shop(); } ?> </body> </html> session_cart_checkout: <? session_start(); $inventory = array( "001" => "Tandpasta", "002" => "Ansigtsservietter", "003" => "Vatpinde", "004" => "Shampoo", "005" => "Balsam", "006" => "Deodorant" ); if(!isset($name)) { ?> <h2>UPS! Du skal <a href=session_cart.php>lægge noget i indkøbsvognen</a>, før du kan checke ud! <? }elseif(isset($finish)) { ?> <h3>Bestilling afsluttet!<h3> <? // send e-mail bekræftelse... // send ordre til script der håndterer videre behandling af ordren... session_unset(); session_destroy(); } else { ?> <h2>Check ud</h3> <p>Tak <?=$name?> fordi du handlede hos os - du har foretaget følgende bestilling: <p><table border=1> <? $total = 0; for($i = 0; $i < sizeof($inventory); $i++) { ?> <tr><td>Varenummer: <b><?=key($inventory);?></b></td> <td>Beskrivelse: <b><?=$inventory[key($inventory)]?></b></td> <td>Antal: <?=$items[$i]?></td></tr> <? next($inventory); $total = $total + $items[$i]; } ?> <tr><td colspan=3 align=right>Total: <?=$total?></td></tr> </table> <p>Når du har afsluttet din bestilling, sender vi en bekræftelse til e-mail-adressen: <b><?=$email?></b>! <p> <form action=session_cart.php> <input type="submit" name="continue" value="Læg mere i indkøbsvognen"> </form> <form action=session_cart_checkout.php> <input type="submit" name="finish" value="Afslut bestilling"> </form> <? } ?> Håber i gider at hjælpe MHV Asger