Avatar billede nomisweb Nybegynder
01. oktober 2007 - 13:18 Der er 6 kommentarer og
1 løsning

$_SESSION virker ikke som jeg vil!?

Hej,

Jeg laver en meget simpel indkøbskurv og vil derfor gøre brug af sessions i php. Men jeg kan ikke få det til at virke! :-(
På den første side hvor en bestemt session variabel bliver dannet kan jeg godt echo min session variabel og få det rigtige ud, men det virker ikke på næste side, og så ryger pointen lidt jo!

SIDE 1:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<link rel="stylesheet" href="kvartus.css" type="text/css">
<script type='text/javascript' src="flexcroll.js"></script>
<?php
include ('db.php');
$result = mysql_query("SELECT * FROM indhold WHERE sidenavn = 'bestilling'");
$row = mysql_fetch_array($result);

session_start();
$omraade=$_GET['omraade'];

?>
</head>
<body>

    <!-- MENU -->
<div class="menu">
        <a href="index.php">Forside</a><br />
        <a href="vinomraader.php<? echo '?omraade=1';?>">Vinområder og producenter</a><br />
        <?php if ($omraade==1) {?><div id="submenu"><?php } else { ?><div id="submenu_hide"><?php }
   
        $omraadeMenu = mysql_query("SELECT id, vinomraade FROM vinomraade ORDER BY vinomraade ASC");
        while ($subomraade = mysql_fetch_assoc($omraadeMenu)){
        echo "<a href=\"omraade.php?omraade=1&o=".$subomraade['id']."\">".$subomraade['vinomraade']."</a><br />";
        } ?>
       
        </div>
        <a href="vinsmagning.php">Vinsmagning</a><br />
        <a href="vinrejse.php">Vinrejser</a><br />
        <a href="nyhedsbrev.php">Nyhedsbrev</a><br />
        <a href="handel.php">Sådan handler vi</a>       
</div>

    <!-- INDHOLD -->
<div id="indhold" class='flexcroll'>
<?php

$continue=$_POST['continue'];
$buy=$_POST['buy'];

?>
<table>

<form method="post" action="">
<input type="hidden" name="send" value="1">
<tr><td colspan="2" id="overskrift">Bestilling<br /></td></tr>
<tr><td colspan="2" id="text">
<?php
$antal_array = $_POST['antal'];
$produktID_array = $_POST['id'];
$price_array = $_POST['price'];

for ($a=0; $a<count($antal_array);$a++) {
    if($antal_array[$a] != null){
        echo $antal_array[$a]." fla. ".$produktID_array[$a];
    $priceProdukt[$a] = $antal_array[$a]*$price_array[$a];
        echo " - kr. ".$priceProdukt[$a]."<br />";
    $fullPrice += $priceProdukt[$a];
        echo "<input type=\"hidden\" name=\"david[]\" value=\"".$antal_array[$a]." stk. ".$produktID_array[$a]." kr. ".$priceProdukt[$a]."\n\">";
    $_SESSION['order'] .= $antal_array[$a]." stk. ".$produktID_array[$a]." kr. ".$priceProdukt[$a]."<br />";
   
    }
}

echo "<br />samlet pris  kr. ".$fullPrice."<br /><br />";
echo "<input type=\"hidden\" name=\"Fprice\" value=\"".$fullPrice."\">";

?>
</td></tr>
<tr><td id="text">Fortsæt dine køb</td><td><input type="button" name="continue" value="Fotsæt" onclick="window.location.href='vinomraader.php?omraade=1';"></td></tr>
<tr><td id="text">Afslut dine køb</td><td><input type="button" name="buy" value="Afslut" onclick="window.location.href='order.php';"></td><tr>
</form>

</table>

<?php
echo $_SESSION['order']."<br />";

include ('foot.php');
?>


SIDE 2 er præcis det samme som SIDE 1 fra toppen til <!-- INDHOLD --> så derfor først derfra:
<table>
<?php

if (isset($_POST['frommail']))
    {
    $frommail=$_POST['frommail'];
    } else {
    $frommail = '';
}

$name =$_POST['navn'];
$adresse =$_POST['adresse'];
$message =$_POST['message'];
$tlf = $_POST['tlf'];
$david = $_POST['david'];

if (isset($_POST['message']))
    {
    $message1 = "besked";
    } else {
    $message1='';
    }
   
$subject= "Bestilling af vin";

if (isset($_POST['send']))
    {
    $send = $_POST['send'];
    } else {
    $send = false;
    }

$headers= 'From: ' . $frommail . "\r\n";
?>


<form method="post" action="succes.php">
<input type="hidden" name="send" value="1">
<tr><td colspan="2" id="overskrift">Bestilling<br /></td></tr>
<tr><td colspan="2" id='text'>
<?php
echo $_SESSION['order']."order";

?>
</td></tr>
<tr><td id='text'>Dit Navn:</td><td><input type="text" name="navn" size="60"></td></tr>
<tr><td id='text'>Din email adresse:</td><td><input type="text" name="frommail" size="60"></td></tr>
<tr><td id='text'>Din post adresse:</td><td><input type="text" name="adresse" size="60"></td></tr>
<tr><td id='text'>Dit telefon nr.:</td><td><input type="text" name="tlf" size="60"></td></tr>
<tr><td id='text'>Besked:</td><td><textarea name="message" cols="45" rows="5">Skriv eventuelle beskeder her.</textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send"></td><tr>
</form>

</table>

<?php
$sendto .= 'mail@mail.dk'.', ';
$sendto .= $frommail;

if ($send) {
mail($sendto, $subject, $message1, $headers);
?>
<span class="headline">Tak for din bestilling og på gensyn.</span>
<?php
}


include ('foot.php');
?>

Jeg skal så bare have $_SESSION['order'] til at tilføje nye ordre for hver gang man besøger side 1 og når man så vælger at besøge side 2 har den alle bestillinger med, men som sagt kommer $_SESSION['order'] ikke med over på side 2...nogen der kan se min fejl?
Avatar billede pidgeot Nybegynder
01. oktober 2007 - 13:31 #1
Du skal kalde session_start inden der er sendt noget output til browseren - dvs. allerøverst på siden, før din doctype kommer ud.
Avatar billede phliplip Nybegynder
01. oktober 2007 - 13:36 #2
Er det i øvrigt ikke en forkert kategori du spørger i?
Avatar billede nomisweb Nybegynder
01. oktober 2007 - 13:37 #3
Det ser ud til at virke! Fedt. Det er det mest syrede ved alt det her internet halløj at der ikke skal mere til at fucke det op!
Tak for hjælpen, smider du et svar?
S
Avatar billede nomisweb Nybegynder
01. oktober 2007 - 13:38 #4
Jo det ser jeg nu, havde ellers scrollet ned til programmering:script:PHP, men fik vidst åbenbart ikke valgt det!
Undskyld!
Avatar billede pidgeot Nybegynder
01. oktober 2007 - 13:39 #5
Svar kommer her. Du havde i øvrigt fået at vide det var det der var galt hvis du havde fejlbeskeder fra PHP slået til.
Avatar billede nomisweb Nybegynder
01. oktober 2007 - 13:49 #6
Hvordan slår jeg de fejlbeskeder til? kan jeg godt ændre i det når jeg har den liggende på et tilfældigt webhotel?
Avatar billede pidgeot Nybegynder
01. oktober 2007 - 13:57 #7
Det kommer an på hvor du er hosted. Hvis du er hosted hos One.com kan du slå det til inde i dit kontrolpanel (PHP error messages under Avanceret), men ellers må du spørge dit webhotel.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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