Avatar billede asger.friis Nybegynder
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&aelig;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 ;)
Avatar billede sukos Juniormester
24. oktober 2003 - 18:57 #1
Brug enten
$_SESSION["first"] = "Karen";

eller

$karen = "Karen";
session_register("karen");

Lad være med at blande de to måder at sætte sessions på!

http://dk.php.net/manual/en/ref.session.php

Og lad hellere være med at bruge æ, ø og å m.m.
Avatar billede asger.friis Nybegynder
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
Avatar billede cpfrande Nybegynder
10. november 2003 - 19:45 #3
Du fik vidst et svar på IRC!
Avatar billede asger.friis Nybegynder
08. juni 2005 - 15:03 #4
Lukket
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