webForumDet fria alternativet

session raderas delvis

2 svar · 219 visningar · startad av Jonny Puma

Jonny PumaMedlem sedan jan. 200420 inlägg
#1

Hej alla!

Håller på att bygga en liten webshop och har problem med sessionen på en viss sida.

Varje gång som jag går in på show_orders.php (för att få se alla ordrar som en kund gjort) så raderas vissa delar av innehållet i sessionen.
Jag hämtar in en del sidor med require(), men det beror inte på dom för det är exakt samma sidor som jag hämtar in överallt och där blir det inget fel.

Nån som ser vad det kan bero på?

<?php
session_save_path(".\\temp");
session_start();

if(!isset($_SESSION['kid'])){
  header ("Location: main.php");
  exit;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" href="ms.css" type="text/css" />
</head>
<body>
<div id="container">

<?php
require ("top.htm");
require ("log_in.php");
require ("nav_bar.php");

print "<div id=\"content\">";

$conn = odbc_connect("MS", "", "");
$sql1 = "SELECT idnr,datum FROM [order] WHERE kund LIKE '" .$_SESSION['kid']. "' ORDER BY idnr DESC";
$query_id1 = odbc_exec($conn, $sql1);
$tot_pris = 0;
while (odbc_fetch_row($query_id1)){
		$idnr = odbc_result($query_id1, "idnr");
		$datum = odbc_result($query_id1, "datum");
		print "<table>";
		print "<tr><td colspan=\"3\">Ordernummer: $idnr</td><td>Datum: $datum</td></tr>";
		print "<tr><td>Antal</td><td>Artist</td><td>Titel</td><td>Pris</td></tr>";
		
		$sql2 = "SELECT skiva, antal FROM [orderrad] WHERE [order] LIKE '$idnr'";
		$query_id2 = odbc_exec($conn, $sql2);
		while (odbc_fetch_row($query_id2)){
				$skiva = odbc_result($query_id2, "skiva");
				$antal = odbc_result($query_id2, "antal");
				
				$sql3 = "SELECT Artist, Titel, Pris FROM skiva WHERE Idnr LIKE '$skiva'";
				$query_id3 = odbc_exec($conn, $sql3);
				while (odbc_fetch_row($query_id3)){
					  $artist = odbc_result($query_id3, "Artist");
						$titel = odbc_result($query_id3, "Titel");
						$pris = odbc_result($query_id3, "Pris");
						$tot_pris += $pris;
						print "<tr><td>$antal st.</td>";
						print "<td><a href='visa_artist.php?artist=$artist'>$artist</a></td>";
						print "<td><a href='visa_skiva.php?idnr=$skiva'>$titel</a></td>";
						print "<td>$pris</td></tr>";
						
				}
		}
		print "<tr><td colspan=\"3\" align=\"right\">Summa:</td><td>$tot_pris</td></tr>";
		print "</table><br/>";
		
}

odbc_close($conn);

print "</div>";

require ("bottom.php");
?>

</div>
</body>
</html>

Sessionen innan besöket på show_orders.php:

kid|s:2:"20";anamn|s:3:"ola";typ|s:4:"Kund";skiva|a:1:{i:30;a:4:{s:5:"antal";i:1;s:6:"artist";s:4:"Kent";s:5:"titel";s:20:"Vapen och Ammunition";s:4:"pris";s:2:"99";}}

Efter besöket:

kid|s:2:"20";anamn|s:3:"ola";typ|s:4:"Kund";skiva|s:2:"25";

Tack på förhand!

Jonny PumaMedlem sedan jan. 200420 inlägg
#2

Igentligen är det \\ innan temp längst upp men en försvann.

Jonny PumaMedlem sedan jan. 200420 inlägg
#3

Jag lyckades lösa det.
Genom att beskriva felet här så kom jag på lösningen:
Jag har liknande variabelnamn på sidan som jag har i sessionen. Det har väl blivit någon konflikt där.

251 ms totalt · 3 externa anrop · v20260731065814-full.30151723
127 ms — hämta forumlista (db)
120 ms — hämta statistik (db)
120 ms — hämta tråd, inlägg och bilagor (db)