webForumDet fria alternativet
Logga in / Bli medlem

session raderas delvis

PHP

2 svar · 221 visningar · startad av Jonny Puma

Medlem sedan jan. 200420 inlägg
Trådstart#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!

Medlem sedan jan. 200420 inlägg
#2

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

Medlem 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.

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)