Jump to content

eeeeeeeek.... Session Clashes!


OilSheikh

Recommended Posts

Hi,

 

I copied this code from a Site's Shopping Cart Tutorial and it doens't work! Yes, I copied it carefully and followed all the advice! But, I just get this error -

 

[color=navy]

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\menu.php: in C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\SQL2.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\menu.php: in C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\SQL2.php on line 14


[/color]

 

 

Menu.php is a CSS based menu. No PHP or SQL in it.

 

 

I fear that the session started in SQL2.php is conflicting with the session already started during LOGIN

 

LOGIN.PHP


<?php

ob_start(); 

include("menu.php"); 
include("SQL.php"); 
  
#########	CHECKS THAT FIELDS ARE NOT EMPTY	##########
if (isset($_POST ['submit']))
{
$usern = $_POST['username'];
$passw = $_POST['pass'];
$encryptedpass = md5($_POST['pass']);

	if (!$usern | !$passw)
	{
		die ('<br><br><br><font face="Verdana" size="4" color = red>ERROR: Please make sure that all Information is provided.</font> <br><br> <input type="button" value="  Retry  " onClick="history.go(-1)"> ');
	}

#########	CHECKS IF username AND CORRESPONDING password EVEN EXIST !	##########

	$check = mysql_query("SELECT * FROM customer WHERE username = '$usern' AND password = 	'$encryptedpass' ")
	or die(mysql_error());
	$check2 = mysql_num_rows($check);

	if ($check2 == 1)
	{
		session_register("usern");
		session_register("passw");
		header("location:acc.php");	
	}					
	else if ($check2 == 0)
	{	 	   	
    	 die ('<br><br><br><font face="Verdana" size="4" color = red>ERROR : The Username and/or Password you have entered does not exist. <br><br>If you are a New User, please <a href = "register.php"><u>Register</u></a> first. </font> <br><br> <input type="button" value="  Retry  " onClick="history.go(-1)">');		 
	}
}
	else 

{
ob_end_flush();
?>
<html>
<head>
<title>Login to your Account or Register for a new Account</title>
<link rel="stylesheet" href="styler.css">
</head>
<body>
<br><br><br>
<h2>Please Log in to view Your Account<br><br></h2>
<h3>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="101%" cellspacing="1" id="table1" bordercolorlight="#0066FF" height="75">
<tr>
	<td width="106" height="48">Username</td>
	<td height="48" width="259"> <input type = "text" name = "username" size="34" maxlength ="7" style = "color:blue"></td>
	<td height="48" width="32"> </td>
	<td height="95" rowspan="2">Are you a New User ? Please Register.</td>
</tr>
<tr>
	<td width="106" height="47">Password</td>
	<td height="47" width="259"> <input type = "password" name = "pass" size="34" maxlength = "7" style = "color:blue"></td>
	<td height="47" width="32"> </td>
</tr>
<tr>
	<td width="106"> </td>
	<td width="259"> </td>
	<td width="32"> </td>
	<td> </td>
</tr>
<tr>
	<td width="106"> </td>
	<td width="259">
	<p align="center">
	<input type = "submit" name = "submit" value = "" style="background : url(login.jpg);	width:107px; height:25px; ">
	</td>
	<td width="32"> 
	</td>
	<td>
	<a href="register.php">
	<img border="0" src="reg.jpg" width="101" height="20"></a></td>
</tr>
<tr>
	<td width="106"> </td>
	<td width="259"> 
	</td>
	<td width="32"> 
	</td>
	<td> 
	</td>
</tr>
<tr>
	<td width="365" colspan="2"><font size="2">Forgotten your Password?  
	<span style="background-color: #FFFFFF">
	<a href="recover.php">Recover your password</a>.</span></font></td>
	<td width="32"> 
	</td>
	<td> 
	</td>
</tr>
</table>
</form>
</h3>
<?php include("base.php"); ?>
</body>
</html>
<?php
}

?> 

 

 

Here's the SQL2.php code

 

  <?php
  	mysql_connect ("localhost", "root" , "zforce") or die (mysql_error());
mysql_select_db("express") or die (mysql_error());

function GetCartId()
{
if (isset($_COOKIE["cartid"]) )
{
	return $_COOKIE["cartid"];
}
else
{
	session_start();
	setcookie("cartid",session_id(),time()+((3600*24)*2) );
	return session_id();
}
}

  ?>



 

 

Here's the code for the Shopping Cart , CART.PHP

 


<?php


include("menu.php"); 
include("SQL2.php"); 

?>

<script language="JavaScript">

function UpdateQty(item)
{
productid = product.name;
newQty = product.options[product.selectedIndex].text;

document.location.href = 'cart.php?action=update_item&id='+productid+'&qty='+newQty;
}

</script>

<?php
switch($_GET["action"])
{
case "add_item":
{
	AddItem($_GET["id"], $_GET["qty"]);
	ShowCart();
	break;
}

case "update_item":
{
	UpdateItem($_GET["id"], $_GET["qty"]);
	ShowCart();
	break;
}

case "remove_item":
{
	RemoveItem($_GET["id"]);
	ShowCart();
	break;
}

default:
{
	ShowCart();
}
} 

function AddItem($itemid, $qty)
{
	$result = mysql_query("select count(*) from cart where cookieid = '" . GetCartId() . "' and productid = $productid");

	$row = mysql_fetch_row($result);
	$numRows = $row[0];

	if($numRows == 0)
	{
	// This item doesn't exist in the users cart,
	// we will add it with an insert query

	mysql_query("INSERT INTO cart(cookieid, productid, qty) values('" . GetCartId() . "', $productid, $qty)");
	}
	else
	{
	// This item already exists in the users cart,
	// we will update it instead

	UpdateItem($productid, $qty);
	}
}

function UpdateItem($productid, $qty)
{
mysql_query("UPDATE cart set qty = $qty where cookieid = '" . GetCartId() . "' and productid = $productid");	
}

function RemoveItem($productid)
{
mysql_query("DELETE from cart where cookieId = '" . GetCartId() . "' and productid = $productid");
}

function ShowCart()
{
$result = mysql_query("select * from cart inner join product on cart.productid = product.productid where cart.cookieId = '" . GetCartId() . "' order by product.name asc");



while($row = mysql_fetch_array($result))
{
// Increment the total cost of all items
$totalCost += ($row["qty"] * $row["price"]);
?>
<html>
<head></head>
<body>
<table>
<tr>
<td width="15%" height="25">
<font face="verdana" size="1" color="black">
<select name="<?php echo $row["productid"]; ?>" onChange="UpdateQty(this)">

<?php

for($i = 1; $i <= 5; $i++)
{
	echo "<option ";
	if($row["qty"] == $i)
	{
		echo " SELECTED ";
	}
	echo ">" . $i . "</option>";
}
?>

</select>

</font>
</td>

<td width="55%" height="25">
<font face="verdana" size="1" color="black">
<?php echo $row["name"]; ?>
</font>
</td>
<td width="20%" height="25">
<font face="verdana" size="1" color="black">
$<?php echo number_format($row["price"], 2, ".", ","); ?>
</font>
</td>
<td width="10%" height="25">
<font face="verdana" size="1" color="black">
<a href="cart.php?action=remove_item&id=<?php echo $row["productid"]; ?>">Remove</a>
</font>
</td>
</tr>

<tr>
<td width="100%" colspan="4">
<hr size="1" color="red" NOSHADE>
</td>
</tr>
<tr>
<td width="70%" colspan="2">
<font face="verdana" size="1" color="black">
<a href="home.php"><< Keep Shopping</a>
</font>
</td>
<td width="30%" colspan="2">
<font face="verdana" size="2" color="black">
<b>Total: <?php echo number_format($totalCost, 2, ".", ","); ?> </b>
</font>
</td>
</tr>
</table>
</body>
</html>
<?php
}
}
?>	

 

Code for a Sample Item which can be added to the Cart

 


<?php


include("menu.php"); 
include("SQL2.php"); 

$sql = mysql_query("SELECT * FROM product WHERE productid = '1'")
or die(mysql_error());
$rows=mysql_fetch_array($sql);

?>

<html>

<head>
<title>Core 2 Duo</title>
<link rel="stylesheet" href="styler.css">
</head>

<body>
<br><br><br>

<table border="0" width="87%" cellspacing="1" id="table1">
<tr>
	<td rowspan="6">
	<img src="http://www.webuildsolutions.com/images/products/intel-core2duo-lga775-box.jpg"></td>
	<td width="398" colspan="2">Intel Core 2 Duo E6300</td>
</tr>
<tr>
	<td width="398" colspan="2"> </td>
</tr>
<tr>
	<td width="118">Clock Speed</td>
	<td width="277"> 3.72 GHz  ( 2 X 1.86 GHz)</td>
</tr>
<tr>
	<td width="118">Bus Speed</td>
	<td width="277">1066 MHz</td>
</tr>
<tr>
	<td width="118">L2 Cache</td>
	<td width="277">2 MB </td>
</tr>
<tr>
	<td width="118">Features</td>
	<td width="277">Enhanced Speedstep Technology<br>Intel Extended Memory 
	64 Technology<br>Intel Virtualization Technology<br>Intel ViiV 
	Technology</td>
</tr>
<tr>
	<td>
	<p align="center">         
	<i><p align="center"><? echo $rows['stock']; ?> in Stock   </i>      
	<p align="center">£ <? echo $rows['price']; ?> inc. VAT   
	<a href ="cart.php?action=add_item@id=<?php echo $rows["productid"]; ?> &qty=1" > <img src = "add.jpg"> </a>
	</td>
	<td width="118">Warranty</td>
	<td width="277">3 Years</td>
</tr>
</table>
<br><br><br>	
<?php include("base.php"); ?>
</body>

</html>

 

 

Help is needed urgently. please help me out guys.

Link to comment
https://forums.phpfreaks.com/topic/49472-eeeeeeeek-session-clashes/
Share on other sites

One went away cos I decided to remove session( ) from within the code.

 

Another remains.

 


Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\menu.php: in C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\SQL2.php on line 16

 

SQL2.PHP now looks like

 


<?php
ob_start();

  	mysql_connect ("localhost", "root" , "zforce") or die (mysql_error());
mysql_select_db("express") or die (mysql_error());

function GetCartId()
{
if (isset($_COOKIE["cartid"]) )
{
	return $_COOKIE["cartid"];
}
else
{

	setcookie("cartid",session_id(),time()+((3600*24)*2) );
	return session_id();
}
}
ob_flush();
?>


Sorry about the late reply guys .. Damn flu kept me occupied.

 

This is the latest only error that I get

 

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\cart.php:4) in C:\Program Files\ZSOFT\XAMPP\xampp\htdocs\SQL2.php on line 16


 

SQL2.PHP

 


<?php
ob_start();

  	mysql_connect ("localhost", "root" , "zforce") or die (mysql_error());
mysql_select_db("express") or die (mysql_error());

function GetCartId()
{
if (isset($_COOKIE["cartid"]) )
{
	return $_COOKIE["cartid"];
}
else
{

	setcookie("cartid",session_id(),time()+((3600*24)*2) );
	return session_id();
}
}
ob_flush();
?>


 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.