Avatar billede smooth Nybegynder
28. januar 2003 - 00:03 Der er 7 kommentarer og
1 løsning

Hvad sker der med sessions ??

Hej

Jeg har lige lavet et script hvor man kan samle sin egen cykel. Let nok !!

Men der er noget helt skummelt med sessions.

Her kan I se koden så vil jeg prøve at give et par ord om problemmmmmet :


<?
session_start();
include("include/functions.php");

if($_POST[action] =="beregn"){
session_destroy();

$stel          = $_POST[stel];
$styr          = $_POST[styr];
$styrbaand      = $_POST[styrbaand];
$frempind      = $_POST[frempind];
$geargruppe    = $_POST[geargruppe];
$sadele        = $_POST[sadele];
$sadelpind      = $_POST[sadelpind];
$hjulsaet      = $_POST[hjulsaet];
$navsaet        = $_POST[navsaet];
$faelg          = $_POST[faelg];
$eger          = $_POST[eger];
$deak          = $_POST[deak];
$slanger        = $_POST[slanger];
$faelgbaand    = $_POST[faelgbaand];
$faelgbaand    = $_POST[flaskeholder];

session_register("stel");
session_register("styr");
session_register("styrbaand");
session_register("frempind");
session_register("geargruppe");
session_register("sadele");
session_register("sadelpind");
session_register("hjulsaet");
session_register("navsaet");
session_register("faelg");
session_register("eger");
session_register("deak");
session_register("slanger");
session_register("faelgbaand");
session_register("flaskeholder");

$pris = $stel + $styr + $styrbaand + $frempind + $geargruppe + $sadele + $sadelpind + $hjulsaet + $navsaet + $faelg + $eger + $deak + $slanger + $faelgbaand + $flaskeholder;

$total_pris    = "$pris";


session_register("total_pris");

header("Location: bygselv.php?status=ok");

}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Byg selv </title>
<link rel='stylesheet' type='text/css' href='style.css'>
</head>

<body>
<font face="tahoma" size="1"><br>

Det er her muligt at sammensætte din helt egen cykel af nedenstående dele.<br><br>

Felter markeret med * skal udvælges!

</font>
<br><br>
<?
con_db();
echo"
<center>
<form method='post' action='bygselv.php'>
<input type='hidden' name='action' value='beregn'>";
$stel = mysql_query("SELECT * FROM bygselv WHERE kat = '1' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Stel* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='stel'>
      <option  value='0'>vælg stel...</option>";
while($row = mysql_fetch_array($stel)) {
      if($_SESSION[stel] =="$row[pris]"){
      echo"
      <option selected value='$row[pris]'>$row[titel]</option>";
      }
      else{
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$styr = mysql_query("SELECT * FROM bygselv WHERE kat = '2' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Styr* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='styr'>
      <option  value='0'>vælg styr...</option>";
while($row = mysql_fetch_array($styr)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$styrbaand = mysql_query("SELECT * FROM bygselv WHERE kat = '3' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Styrbånd </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='styrbaand'>
      <option  value='0'>vælg styrbånd...</option>";
while($row = mysql_fetch_array($styrbaand)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$frempind = mysql_query("SELECT * FROM bygselv WHERE kat = '4' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Frempind* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='frempind'>
      <option  value='0'>vælg frempind...</option>";
while($row = mysql_fetch_array($frempind)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$geargruppe = mysql_query("SELECT * FROM bygselv WHERE kat = '5' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Geargruppe* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='geargruppe'>
      <option  value='0'>vælg geargruppe...</option>";
while($row = mysql_fetch_array($geargruppe)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$sadele = mysql_query("SELECT * FROM bygselv WHERE kat = '6' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Sadel* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='sadele'>
      <option  value='0'>vælg sadele...</option>";
while($row = mysql_fetch_array($sadele)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$sadelpind = mysql_query("SELECT * FROM bygselv WHERE kat = '7' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Sadelpind* </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='sadelpind'>
      <option  value='0'>vælg sadelpind...</option>";
while($row = mysql_fetch_array($sadelpind)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$hjulsaet = mysql_query("SELECT * FROM bygselv WHERE kat = '8' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Hjulsæt </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='hjulsaet'>
      <option  value='0'>vælg hjulsæt...</option>";
while($row = mysql_fetch_array($hjulsaet)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$navsaet = mysql_query("SELECT * FROM bygselv WHERE kat = '9' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Navsæt </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='navsaet'>
      <option  value='0'>vælg navsæt...</option>";
while($row = mysql_fetch_array($navsaet)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$faelg = mysql_query("SELECT * FROM bygselv WHERE kat = '10' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Fælg </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='faelg'>
      <option  value='0'>vælg fælg...</option>";
while($row = mysql_fetch_array($faelg)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$eger = mysql_query("SELECT * FROM bygselv WHERE kat = '11' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Eger </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='eger'>
      <option  value='0'>vælg eger...</option>";
while($row = mysql_fetch_array($eger)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$deak = mysql_query("SELECT * FROM bygselv WHERE kat = '12' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Dæk </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='deak'>
      <option  value='0'>vælg dæk...</option>";
while($row = mysql_fetch_array($deak)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$slanger = mysql_query("SELECT * FROM bygselv WHERE kat = '13' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Slanger </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='slanger'>
      <option  value='0'>vælg slanger...</option>";
while($row = mysql_fetch_array($slanger)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$faelgbaand = mysql_query("SELECT * FROM bygselv WHERE kat = '14' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Fælgbånd </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='faelgbaand'>
      <option  value='0'>vælg fælgbånd...</option>";
while($row = mysql_fetch_array($faelgbaand)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
$flaskeholder = mysql_query("SELECT * FROM bygselv WHERE kat = '15' ORDER BY titel DESC") or die(mysql_error());
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='145' valign='top'><span class='m'><b>Flaskeholder </b></span></td>
    <td width='5' valign='top'><span class='m'>:</span></td>
    <td width='450' valign='top'>
      <select name='flaskeholder'>
      <option  value='0'>vælg flaskeholder...</option>";
while($row = mysql_fetch_array($flaskeholder)) {
      echo"
      <option value='$row[pris]'>$row[titel]</option>";
      }
      echo"
      </select>   
    </td>
  </tr>
</table>";
echo"
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='100%' valign='top' align='center'><input class='input_send' type='submit' name='beregn' value='Beregn'></td>
  </tr>
</table>";
?>
</form>
</center>
<?
if($_GET[status] =="ok"){
echo"
<center>
<table border='0' width='600' cellspacing='2' cellpadding='0'>
  <tr>
    <td width='100%' valign='top' align='center'><span class='m'>Total pris = <b>$_SESSION[total_pris]</b></span></td>
  </tr>
</table></center>";
}
?>
</center>
</body>
</html>



Når man trykker på beregn så skal alle $_POST[] variabler laves om til $variabel. Der efter skal alle lægges sammen som så give $pris.
Efter at havde fundet prisen omskriver jeg $pris til $total_pris og gemmer data i en SESSION

$total_pris    = "$pris";
session_register("total_pris");

Jeg lægger alle andre variabler ind i SESSIONS så jeg sender i scriptet kan hente dem igen.

Men DET KAN JEG IKKE ..  Den vil godt gemme $total_pris i en session og vise $_SESSION[total_pris] men den vil ikke gemme alle andre variabler.

Eller lidt. Hvis jeg udskriver dem så skriver den bare "0"

Er det bare mig der har kodet alt for lang tid og er kommet til at glemme noget eller fucker sessions ??

Jeg håber at I kan hjælpe :)

Med venlig hilsen
Smooth
Avatar billede Slettet bruger
28. januar 2003 - 00:12 #1
Hvilken PHP version?

(Det kunne jo tyde på alle dine $_POST['slanger'] mv. er tomme)
Avatar billede Slettet bruger
28. januar 2003 - 00:14 #2
Læs iøvrigt:
http://dk.php.net/manual/en/function.session-register.php

Og overvej at bruge

$_SESSION['slanger'] = $_POST['slanger'] i stedet for session_register().
Avatar billede smooth Nybegynder
28. januar 2003 - 00:20 #3
Jeg kører med version 4.2.2

Mine $_POST[] er ikke tomme.

Ellers vil den ikke kunne beregne $pris.

Slev om jeg kun vælger at købe noget fra kategorien "stel" som eks er 100kr

Så klikker jeg på beregn og i bunden kommer det til at stå Tital pris = 100.-
Det henter jeg ved at skrive $_SESSION[total_pris]

Altså det vil sige at variablen $stel og $_POST[stel] ikke er tomme.
Hvis jeg vider sender data over $_GET[stel] så kommer der også til at stå 100.-hvis jeg udskriver $_GET[stel] på siden.

Men det er den dumme session dims der ikke vil gemme data. Det er sjovt at $total_pris gemmes men ikke alt andet
Avatar billede smooth Nybegynder
28. januar 2003 - 00:32 #4
Jeg har prøvet med $_SESSION['slanger'] = $_POST['slanger']

Og der vil den slet ikke
Avatar billede avminarm Juniormester
28. januar 2003 - 09:06 #5
prøv at rette din session_register("total_pris"); til $_SESSION['total_pris'] = $pris;

og $_SESSION['slanger'] = $_POST['slanger'] bør altså virke???, med mindre $_POST er tom når den når til $_SESSION['slanger']
Avatar billede sukos Juniormester
28. januar 2003 - 13:12 #6
Måske:

if(isset($_POST['action']) && $_POST['action'] =="beregn"){
$_SESSION = array();
session_destroy();

$_SESSION['stel'] = $_POST['stel'];
$_SESSION['styr'] = $_POST['styr'];
$_SESSION['styrbaand']  = $_POST['styrbaand'];

o.s.v.
Avatar billede swaxi Nybegynder
28. januar 2003 - 16:47 #7
hvis ikke jeg tager meget fejl, så skal du reloade siden efter du har lavet et session_destroy() - eg. session_destroy() træder først i kraft når scriptet slutter.
Avatar billede smooth Nybegynder
28. januar 2003 - 18:35 #8
Hej

Jeg fandt selv ud af det. Jeg skulle lave en del om på koden men nu kører det.

:
<?
session_start();
include("include/functions.php");
session_destroy();

if($_POST[action] =="beregn"){

con_db();
$stel = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[stel]' and kat ='1' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($stel)) {

$stel_n = $row[titel];
$stel_p = $row[pris];

session_register("stel_n");
session_register("stel_p");
}
$styr = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[styr]' and kat ='2' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($styr)) {

$styr_n = $row[titel];
$styr_p = $row[pris];

session_register("styr_n");
session_register("styr_p");
}
$styrbaand = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[styrbaand]' and kat ='3' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($styrbaand)) {

$styrbaand_n = $row[titel];
$styrbaand_p = $row[pris];

session_register("styrbaand_n");
session_register("styrbaand_p");
}
$frempind = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[frempind]' and kat ='4' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($frempind)) {

$frempind_n = $row[titel];
$frempind_p = $row[pris];

session_register("frempind_n");
session_register("frempind_p");
}
$geargruppe = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[geargruppe]' and kat ='5' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($geargruppe)) {

$geargruppe_n = $row[titel];
$geargruppe_p = $row[pris];

session_register("geargruppe_n");
session_register("geargruppe_p");
}
$sadele = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[sadele]' and kat ='6' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($sadele)) {

$sadele_n = $row[titel];
$sadele_p = $row[pris];

session_register("sadele_n");
session_register("sadele_p");
}
$sadelpind = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[sadelpind]' and kat ='7' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($sadelpind)) {

$sadelpind_n = $row[titel];
$sadelpind_p = $row[pris];

session_register("sadelpind_n");
session_register("sadelpind_p");
}
$hjulsaet = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[hjulsaet]' and kat ='8' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($hjulsaet)) {

$hjulsaet_n = $row[titel];
$hjulsaet_p = $row[pris];

session_register("hjulsaet_n");
session_register("hjulsaet_p");
}
$navsaet = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[navsaet]' and kat ='9' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($navsaet)) {

$navsaet_n = $row[titel];
$navsaet_p = $row[pris];

session_register("navsaet_n");
session_register("navsaet_p");
}
$faelg = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[faelg]' and kat ='10' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($faelg)) {

$faelg_n = $row[titel];
$faelg_p = $row[pris];

session_register("faelg_n");
session_register("faelg_p");
}
$eger = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[eger]' and kat ='11' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($eger)) {

$eger_n = $row[titel];
$eger_p = $row[pris];

session_register("eger_n");
session_register("eger_p");
}
$deak = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[deak]' and kat ='12' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($deak)) {

$deak_n = $row[titel];
$deak_p = $row[pris];

session_register("deak_n");
session_register("deak_p");
}
$slanger = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[slanger]' and kat ='13' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($slanger)) {

$slanger_n = $row[titel];
$slanger_p = $row[pris];

session_register("slanger_n");
session_register("slanger_p");
}
$faelgbaand = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[faelgbaand]' and kat ='14' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($faelgbaand)) {

$faelgbaand_n = $row[titel];
$faelgbaand_p = $row[pris];

session_register("faelgbaand_n");
session_register("faelgbaand_p");
}
$flaskeholder = mysql_query("SELECT * FROM bygselv WHERE id = '$_POST[flaskeholder]' and kat ='15' ORDER BY titel DESC") or die(mysql_error());
while($row = mysql_fetch_array($flaskeholder)) {

$flaskeholder_n = $row[titel];
$flaskeholder_p = $row[pris];

session_register("flaskeholder_n");
session_register("flaskeholder_p");
}



$pris = $stel_p + $styr_p + $styrbaand_p + $frempind_p + $geargruppe_p + $sadele_p + $sadelpind_p + $hjulsaet_p + $navsaet_p + $faelg_p + $eger_p + $deak_p + $slanger_p + $faelgbaand_p + $flaskeholder_p;

$total_pris    = "$pris";


session_register("total_pris");

header("Location: bygselv.php?status=ok");

}
?>
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