itผมทำระบบ shoping ครับแต่ระบบไม่ยอมจำ session ทั้งที่เปิด session_start(); แล้ว ช่วยตรวจสอบให้ทีครับ ขอบคุณครับ
Form
<?
ob_start();
session_start();
//header("Content-Type:text/plain;chareset=utf-8");
require_once("include/config.inc.php");
require_once("class/func.class.php");
$func = new Func();
?>
<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" bgcolor="#FFFFFF"> </td>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td height="30" colspan="2" align="center" background="asset/tap/bg-tap-gold350.jpg" bgcolor="#CCCC00"><p class="style18 style19"><span class="style6"><?=$record[prod_name_en] ?></span></p></td>
</tr>
<tr>
<td align="center"><img src="asset/product/<?=$record[prod_pic] ?>" alt="<?=$record[prod_name_en] ?>" width="200" height="250" /></td>
<td align="center"><table width="550" border="0">
<tr>
<td>
<div class="style1">
<div align="left">Detail</div>
</div>
<div align="left">
<div class="style9"><?=$record[prod_detail_en] ?></div>
</div>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><div class="style1">
<div align="left">how to use</div>
</div>
<div class="style9">
<?=$record[prod_how_en] ?>
</div></td>
</tr>
<tr><td>
<form name="frm" action="order_prod2.php?prod_id=<?=$record[prod_id]?>" method="post" enctype="multipart/form-data" autocomplete="off">
<strong>BUY</strong>
<? if ($record[prod_stock]>=1){?>
<label>
<select name="prod_qty" id="prod_qty">
<? for($i=1;$i<=$record[prod_stock];$i++){
if(strlen($i)<2){
$i= "0".$i;
echo "<option value='$i'>$i</option>";
}else{
echo "<option value='$i'>$i</option>";
}
}?>
</select>
</label>
<input name="prod_id" type="hidden" id="prod_id" value="<?=$record[prod_id]?>">
<label>
<input type="submit" name="button" id="button" value="Submit" style="border:#0C6; width:60px; height:25px; ">
</label>
<? }else{ echo "<font color='#FF0000' size='5'>No stock Product</font>";}?>
</form>
</td></tr>
</table></td>
</tr>
</table>
ส่วนนี้จะส่งค่าจำนวนสินค้าและรหัสสินค้าครับ
$_SESSION['sess_user_login'] คือusernameลูกค้าครับ
ส่วนแสดงออเดอร์
<?
ob_start();
session_start();
//header("Content-Type:text/plain;chareset=utf-8");
require_once("include/config.inc.php");
require_once("class/func.class.php");
$func = new Func();
?>
<? $sql = "select * from tb_product
where prod_id = '$_GET[prod_id]' ";
$result = mysql_db_query($db,$sql)or die(mysql_error());
$record = mysql_fetch_array($result)?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30"> </td>
</tr>
<tr>
<td height="0" align="center" background="images/content_top.jpg"><br />
<br />
<br />
<?
$StrSQL = "SELECT * FROM tb_customer
WHERE cus_user='".$_SESSION['sess_user_login']."' ";
$re=mysql_db_query($db,$StrSQL);
$rec = mysql_fetch_array($re);
?>
<? $sql = "select prod_id,
prod_name_en,
prod_detail_en,
prod_price2,
prod_stock,
prod_pic
from tb_product
where prod_id = '$_POST[prod_id]'
";
$result = mysql_db_query($db,$sql)or die(mysql_error());
$record = mysql_fetch_array($result);
echo $sql;
if (!isset($_SESSION['shop'])){ $_SESSION['shop'] = array(); }
if (isset($record[prod_name_en]) && isset($record[prod_price]) && isset($_POST[prod_qty])){
$item = array(
'prod_name' => $record[prod_name_en],
'prod_id' => $record[prod_id],
'prod_price' => $record[prod_price2],
'prod_qty' => $_POST[prod_qty]
);
$_SESSION['shop'][] = $item;
header('Location: ' . $_SERVER['PHP_SELF']);
}else if (isset($_GET['remove'])){
unset($_SESSION['shop'][$_GET['remove']]);
header('Location: ' . $_SERVER['PHP_SELF']);
}else if(isset($_GET['confirm'])){
$tem1= date("d");
$tem2= date("s");
$order_id = $rec[cus_id]."".$tem1."".$tem2;
$order_date = date("Y-m-d");
$sql1 = "insert into tb_orders
(order_id, cus_id,order_date)
VALUES ('$order_id','$rec[cus_id]','$order_date ')
";
$result1 = mysql_db_query($db,$sql1);
echo "<script>alert('Recorded successfully.')</script>";
echo "<meta http-equiv='refresh' content='0;url=confirm_order.php?order_id=$order_id'>" ;
}
?>
<!-- ส่วน shoping -->
<form action="" method="post" name="shoppingcart" id="shoppingcart">
<table width="547" height="90" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#111111" style="border-collapse: collapse; border: 1px dotted #008000">
<tr>
<th colspan="5" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"><h1>Temporary orders.</h1></th>
</tr>
<tr>
<th width="52" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"><center>
DEl
</center></th>
<th width="265" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"> <font color="#000080">Name</font></th>
<th width="95" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"> <font color="#000080">Price</font></th>
<th width="47" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"> <center>
Num
</center></th>
<th width="76" bgcolor="#FFFFCC" style="border: 1px dotted #008000" scope="col"> <center>
<font color="#000080">Sum </font>
</center></th>
</tr>
<?
$_SESSION['total'] = 0;
foreach ($_SESSION['shop'] as $item_num => $item) {
?>
<!--echo "<script>alert('Select a product unique.')</script>";
echo "<meta http-equiv='refresh' content='0; url=../form/view_product.php'>";-->
<tr id="item<? echo $item_num; ?>">
<td style="border: 1px dotted #008000" bgcolor="#CCFFFF"><center>
<font><a href="?remove=<? echo $item_num; ?>">[DEL]</a></font>
</center></td>
<td style="border: 1px dotted #008000" bgcolor="#CCFFFF"><p class="style1"> <? echo $item['prod_name']; ?> </p></td>
<td style="border: 1px dotted #008000" bgcolor="#CCFFFF"><p class="style2"> <? echo number_format($item['prod_price'],2,'.',','); ?> </p></td>
<td style="border: 1px dotted #008000" bgcolor="#CCFFFF"><font>
<center>
<? echo $item['prod_qty']; ?>
</center>
</font></td>
<td style="border: 1px dotted #008000" bgcolor="#CCFFFF"><p class="style2"> <? echo number_format($item['prod_qty'] * $item['prod_price'],2,'.',','); ?> </p></td>
</tr>
<?
$_SESSION['total'] += $item['prod_qty'] * $item['prod_price'];
}
?>
<tr id="total">
<td style="border: 1px dotted #008000" bgcolor="#FFFFCC" colspan="3" align="left"><b><font color="#008000"> Total price</font></b></td>
<td style="border: 1px dotted #008000" bgcolor="#FFFFCC" colspan="2"><p align="right"><b><font color="#008000"><? echo number_format($_SESSION['total'],2,'.',','); ?> Baht</font></b></p></td>
</tr>
</table>
<? $_SESSION['SHOPPING_CART_HTML'] = ob_get_flush(); ?>
</form><br>
<strong>[<a href='javascript:history.back();' target="_top">Back to Shop</a>] - [<a href="?confirm=1" onclick="return Conf(this)">confirm order</a>]</strong></td>
</tr>
</table>
Tag : PHP, MySQL, CakePHP
Date :
2011-08-04 12:53:21
By :
golderboy
View :
1360
Reply :
15
ช่วยดูให้หน่อยครับ ไม่รู้ผมไปแก้ตรงไหน มันเลยไม่จำ session อะ
Date :
2011-08-04 16:16:01
By :
golderboy
คงจะต้องนั่ง debug ดูแล้วครับ ว่าตอนที่ Create Session มันจำค่าไว้อยูหรือไม่
Date :
2011-08-04 17:47:16
By :
webmaster
ครับจะลองดู
แต่ debug ยังไงอะครับ
หรือคือการ echo ดูทีละตัวใช่ไหมครับ
Date :
2011-08-04 17:50:56
By :
golderboy
ใช่ครับ php
Date :
2011-08-04 21:43:57
By :
webmaster
ไม่ทราบว่าไป assign ค่าให้ $_SESSION['sess_user_login'] ตอนไหนครับ ผมไม่เห็นเลย อยู่ดีๆ คุณก็เรียกใช้มันมันไม่มีค่าอะไรก็น่าจะถูกต้องแล้วนะ
Date :
2011-08-04 22:24:52
By :
ikikkok
$_SESSION['sess_user_login']
มาตั้งแ่ต่หน้า login มาครับ
Date :
2011-08-04 23:46:36
By :
golderboy
print_r($_SESSION); ออกมาดูครับว่ามีอะไรใน session บ้าง
Date :
2011-08-04 23:48:49
By :
ikikkok
Array ( [sess_user_login] => aaa [shop] => Array ( ) [total] => 0 [SHOPPING_CART_HTML] =>
มันมีแค่นี้ละครับ
Date :
2011-08-05 00:18:58
By :
golderboy
sess_user_login มันก็มีนิครับ
Date :
2011-08-05 00:45:22
By :
ikikkok
งงมากมายครับ เมื่อวันก่อนมันก็ใช้งานไ้ด้อยู่เลย ก็เลยไปทำส่วนอื่ืนของระบบ ทำระบบ logout อัตโนมัติ พอวันจะส่งงาน มาเทสอีกทีไม่ได้ซะงั้นละครับ
Date :
2011-08-05 01:10:39
By :
golderboy
ทำระบบ logout อัตโนมัติ
ไม่ใช่มัน destroy session ไปแล้วหรอคัรบ ไล่ work flow ดูดีๆ ครับ
Date :
2011-08-05 01:25:25
By :
ikikkok
อันนี้ครับที่เขียนไว้
<?
// set timeout period in seconds
$inactive = 60;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location:../../home.php"); }
}
$_SESSION['timeout'] = time();
?>
อันนี้ครับที่เขียนไว้
หรือต้องแก้แบบนี้ครับ
<?
// set timeout period in seconds
$inactive = 60;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_register($_SESSION[sess_user_login]); header("Location:../../home.php"); }
}
$_SESSION['timeout'] = time();
?>
หรือต้องแก้แบบนี้ครับ
Date :
2011-08-05 01:53:30
By :
golderboy
ง่ายๆครับ ลองเอาตัวที่ set เกี่ยวกับค่า session ออกครับ
ลอง debug ดูครับ ตามพี่วินครับ
ทำทุกอย่างให้เป็นปกติ แล้วค่อยเอานู้นเอานี่ใส่ครับ
Date :
2011-08-05 11:40:07
By :
l3luEbirD
ลองechoออกมาแล้วครับ
<?
echo "SESSION[sess_user_login] = ".$_SESSION['sess_user_login']."<br>";
echo "SESSION[shop] = ".$_SESSION['shop']."<br>";
echo "SESSION[total] = ".$_SESSION['total']."<br>";
echo "SESSION[SHOPPING_CART_HTML] = ".$_SESSION['shopSHOPPING_CART_HTML']."<br>";
echo "item_num = ".$item_num."<br>";
echo "item[prod_name] = ".$item[prod_name]."<br>";
echo "item[prod_id] = ".$item[prod_id]."<br>";
echo "item[prod_price] = ".$item[prod_price]."<br>";
echo "item[prod_qty] = ".$item[prod_qty]."<br>";
?>
SESSION[sess_user_login] = aaa
SESSION[shop] = Array
SESSION[total] = 0
SESSION[SHOPPING_CART_HTML] =
item_num =
item[prod_name] =
item[prod_id] =
item[prod_price] =
item[prod_qty] =
มันไม่มาซักตัวเลยครับ
Date :
2011-08-05 15:59:01
By :
golderboy
ผมก็เป็น
Date :
2013-05-22 17:54:55
By :
ฟหกด
Load balance : Server 02