|
|
|
ปัญหาบันทึก cookie บน host ค่าตัวแปรไม่บวกค่าให้ลองที่เครื่องตัวเองไม่เป็นไรครับ |
|
|
|
|
|
|
|
ตัวอย่าง code นี้ ผมทำในเครื่องไม่มีปัญหาอะไรครับ สามารถบันทึกและแสดงค่าได้ปกติ แต่เมื่ออัพขึ้น host แล้ว เกิดอาการไม่บันทึกค่า cookie ให้ครับ รบกวนช่วยดูให้ด้วยครับ เกิดจากอะไร
หน้าบันทึกcookie
Code (PHP)
<?
$pid=$_POST["Pid"];
$strsql = "select productid,prodname,catname,unitprice from products where productid='$pid' ";
$objquery = mysql_query($strsql) or die ("error query [".$strsql."]");
while($objResult = mysql_fetch_row($objquery))
{
echo $objResult[0];
echo "<br>";
echo $objResult[1];
echo "<br>";
echo $objResult[2];
echo "<br>";
echo $objResult[3];
echo "<br>";
//set ใส cookie
setcookie("cart[$numproduct]",$objResult[0],0);
setcookie("cartprice[$numproduct]",$objResult[3],0);
$numproduct++;
setcookie("numproduct",$numproduct,0);
}
mysql_close();
?>
หน้าแสดงcookie
Code (PHP)
<?
$a=1;
for($i=0;$i<$numproduct;$i++)
{
echo "รายการที่ ",$a,"<br>";
echo "สินค้าที่สั่งซื้อ = ",$_COOKIE["cart"][$i],"<br>";
echo "ราคาสินค้า = ",$_COOKIE["cartprice"][$i],"<br>";
echo "<a onClick=\"deletepro('",$_COOKIE["cart"][$i],"');\">ลบ</a>";
echo "<br>";
$sumprice += $_COOKIE["cartprice"][$i];
$a++;
}
echo "<hr>";
echo "สินค้าทั้งหมด = ",$_COOKIE["numproduct"],"<br>";
echo "ราคารวม = ",$sumprice;
?>
ซึ่งเท่าที่ดูน่าจะเกิดจากการไม่บันทึกค่าในcookie ในหน้าบันทึกcookie ตัวแปร numproduct ไม่ยอมบวกค่าให้ครับ
ตอนนี้กำลังหาทางทำให้ค่าตัวแปรสามารถ+ค่าได้ รบกวนด้วยครับ หรือมีวิธีอื่น รบกวนแนะนำด้วยครับ
Tag : PHP
|
|
|
|
|
|
Date :
2011-05-17 01:15:20 |
By :
vissarud |
View :
1310 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$numproduct มาจากไหนครับ
ข้อควรระวังในการเขียนถ้าจะใช้จริงบนโฮสติ้ง ต้องรับค่าด้วย $_POST , $_GET , $_REQUEST เสมอ
จะได้ไม่ต้องมาลำบากที่หลังเพราะ register_global = Off
|
|
|
|
|
Date :
2011-05-17 01:26:36 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมทำระบบบันทึกสินค้า addตะกร้า ในแบบ ajax ครับ
โดยทำการบันทึก cookie หลังจากที่คลิกลงตะกร้า ครับ
ตอนนี้ผมกำลังคิดว่าจะทำยังไงให้ตัวแปร $numproduct + ค่าไปเลื่อยๆ หลังจากที่คลิกปุ่มลงตะกร้า
|
|
|
|
|
Date :
2011-05-17 12:42:02 |
By :
vissarud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บวกเข้าไปแล้วยัดใส่ cookie แต่เวลาดึงค่าไม่เห็นดึงจาก cookie อีกอย่าง เปิดดูด้วยว่า cookie มันสร้างได้จริงหรือเปล่า
|
|
|
|
|
Date :
2011-05-17 16:14:11 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนอื่นขอบคุณ คุณ PlaKriM ครับที่ยังตามมาตอบกระทู้ผม
ตอนนี้ผมกำลังศึกษา cookie ว่า บันทึกคนล่ะ sub foder แล้วทำไมค่าไม่บันทึกแต่ถ้า sub เดียวกันบันทึกค่าให้ อันนี้ต้องทำความเข้าใจใหม่อย่างแรง
ส่วนด้านล่าง ผมแปะ code ของผมไว้ก่อนเลยแล้วกันครับ เผื่อใครพอจะแนะนำได้บ้างว่าใครเพิ่มตรงไหน
shop.php
Code (PHP)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<?
include('shop.inc.php');
?>
<body onload="javascript:productsload();">
<table width="900" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td height="40" colspan="2">ตัวทดลอง ชื้อขาย <a href='#' onclick='delectcook();'>ยกเลิกสินค้า</a> </td>
</tr>
<tr>
<td width="280" height="40">
<table width="200" border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<div id="cartarea"> </div>
</td>
</tr>
<tr>
<td>
<div id="showpro"> </div>
</td>
</tr>
</table>
</td>
<td width="620">
<div id="mySpan"> </div>
</td>
</tr>
</table>
</body>
</html>
shop.inc.php
Code (JavaScript)
<script language="javascript">
var HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
function productsload(Search)
{
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
//----------------------------------------------------------------
var str=Math.random();/*ทำเำพื่อให้ค่าในการรับส่งแต่ละรอบไม่ซ้ำกัน*/
var url ='shopajax.php?var='+str;
var pmeters = 'mySearch='+ encodeURI(Search);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 4) // Return Request
{
window.document.getElementById('mySpan').innerHTML = HttPRequest.responseText;
showcook();
}
}
}
function addtocart(id)
{
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
//----------------------------------------------------------------
var url ='addtocart.php';
var pmeters = 'Pid='+ encodeURI(id);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 4) // Return Request
{
window.document.getElementById('cartarea').innerHTML = HttPRequest.responseText;
showcook();
}
}
}
function showcook(id)
{
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url ='showcook.php';
var pmeters = 'P='+ encodeURI(id);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 4) // Return Request
{
window.document.getElementById('showpro').innerHTML = HttPRequest.responseText;
showcook();
}
}
}
function delectcook(id)
{
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url ='dcook.php';
var pmeters = 'P='+ encodeURI(id);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
}
//-----------------------
function deletepro(id)
{
alert(id);
}
</script>
addtocart
Code (PHP)
<?
ob_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<?
include('connect.inc.php');
?>
<body>
<?
$pid=$_POST["Pid"];
$strsql = "select productid,prodname,catname,unitprice from products where productid='$pid' ";
$objquery = mysql_query($strsql) or die ("error query [".$strsql."]");
while($objResult = mysql_fetch_row($objquery))
{
echo $objResult[0];
echo "<br>";
echo $objResult[1];
echo "<br>";
echo $objResult[2];
echo "<br>";
echo $objResult[3];
echo "<br>";
//set ใส cookie
setcookie("cart[$numproduct]",$objResult[0],0);
setcookie("cartprice[$numproduct]",$objResult[3],0);
$numproduct++;
setcookie("numproduct",$numproduct);
}
mysql_close();
?>
</body>
</html>
<?
ob_end_flush();
?>
shopajax.php
Code (PHP)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<?
include('connect.inc.php');
include('shop.inc.php');
?>
<body>
<?
$strsql = "select productid,prodname,catname,unitprice from products where categoryid='01' ";
$objquery = mysql_query($strsql) or die ("error query [".$strsql."]");
?>
<table width="400" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>รายการสินค้า</td>
</tr>
<?
while($objResult = mysql_fetch_row($objquery))
{
?>
<tr>
<td>
<?=$objResult[0];?> : <?=$objResult[1];?><br />
ประเภท <?=$objResult[2];?><br />
ราคา <?=$objResult[3];?><br />
<a href="#" onclick="javascript:addtocart('<?=$objResult[0]?>');">addtocart</a>
</td>
<?
}
?>
</tr>
</table>
<?
/*สามารถทำแบบนี้ก็ได้
while($objResult = mysql_fetch_row($objquery))
{
echo("<tr>");
echo("<td>");
echo("$objResult[0] : $objResult[1]<br>");
echo("ประเภท : $objResult[2]<br>");
echo("ราคา : $objResult[3] <br>");
echo("<a href='#' onclick='javascript:addtocart('$objResult[0]);')'>addtocart</a> ");
echo("</td>");
echo("</tr>");
}
*/
?>
</body>
</html>
dcook.php
Code (PHP)
<?
ob_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<?
setcookie("numproduct");
?>
</body>
</html>
<?
ob_end_flush();
?>
showcook.php
Code (PHP)
<?
ob_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<?
include('shop.inc.php');
?>
<body>
<strong>showcook</strong><br />
<?
$a=1;
for($i=0;$i<$numproduct;$i++)
{
echo "รายการที่ ",$a,"<br>";
echo "สินค้าที่สั่งซื้อ = ",$_COOKIE["cart"][$i],"<br>";
echo "ราคาสินค้า = ",$_COOKIE["cartprice"][$i],"<br>";
echo "<a onClick=\"deletepro('",$_COOKIE["cart"][$i],"');\">ลบ</a>";
echo "<br>";
$sumprice += $_COOKIE["cartprice"][$i];
$a++;
}
echo "<hr>";
echo "สินค้าทั้งหมด = ",$_COOKIE["numproduct"],"<br>";
echo "ราคารวม = ",$sumprice;
?>
</body>
</html>
<?
ob_end_flush();
?>
ส่วนตอนนี้ผมต้องไปทำความเข้าใจกับ cookie ผมก่อน ว่าทำไม คนล่ะ subfoder มันไม่บันทึกค่าให้
(ผมพลาดในส่วนไหนไปหรือเปล่าเนี้ย)
|
|
|
|
|
Date :
2011-05-17 23:30:27 |
By :
vissarud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหา ณ ตอนนี้ น่าจะแก้ปัญหาตรง ค่าตัวแปรได้แล้ว จากที่ คุณ อ้นคุง ได้แนะนำ
https://www.thaicreate.com/php/forum/060320.html#2
เท่าที่ลองมีการ + จำนวนสินค้าแล้ว น่าจะแก้ปัญหา ตัวแปรได้แล้ว
https://www.thaicreate.com/php/php-register_global-on-off.html
แต่ตอนนี้ต้องดูต่อว่า คุกกี้ทำไมถึงไม่บันทึก
แล้วจะมารายงานต่อไปจบข่าวช่วงเที่ยงวัน อิๆ
ผม vissarud รายงาน
|
|
|
|
|
Date :
2011-05-18 13:04:13 |
By :
vissarud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|