ขอคำแนะนำ เกี่ยวกับการเปลี่ยน จาก session_register มาใช้ $_SESSION หน่อยค่ะ
เป็นมือใหม่ เพิ่งเริ่มเขียน php เว็บที่เขียนอยู่นี้ก็ เป็นเว็บแรก มีปัญหากับ session_register อ่ะคะ คือตอนแรกที่สร้างเว็บนี้มา ก็จะใช้ session_register แล้วทดสอบใน localhost ก็ผ่านค่ะ ไม่มีปัญหาอะไร แต่พอเอาขึ้น server ค่ะ งานเกิดเลย โดยส่วนตัวพอจะรู้มาก่อนบ้างแล้วว่า php5 จะไม่ใช้ session_register แต่ก็ชะล่าใจเองแหละค่ะ ยังดันทุลังใช้อยู่ แต่ก็กะว่าจะเปลี่ยนหลังจากเอาขึ้น server แล้ว
โค้ดหน้าที่มีปัญหา คือ หน้าที่จะหยิบสินค้าใส่ตะกร้าสินค้าค่ะ โครงสร้างเป็นแบบนี้ค่ะ [หน้าแสดงรายละเอียด >> หน้าของ session_register ที่มีปัญหา >> หน้าตะกร้าสินค้า] แบบนี้ค่ะ
และนี่คือ โค้ดที่จะเปลี่ยนจาก session_register เป็น $_SESSION ค่ะ
Code (PHP)
<?php
session_start();
$id_prd=$_GET['pro_id'];
header("location:your_besket.php");
session_register("sess_id");
session_register("sess_name");
session_register("sess_pic");
session_register("sess_price");
session_register("sess_color");
session_register("sess_size");
session_register("sess_amount");
session_register("sess_member_id");
session_register("sess_member_name");
if(count($sess_id)=="0"){
$check=1;
}else if (!in_array($id_prd,$sess_id)){
echo"<script>alert('ซ้ำค่ะ')</script>";
$check=1;
}
if($check==1){
include"../cn.php";
$sql="select * from products where pro_id='$id_prd'";
$result=mysql_db_query($dbname,$sql);
$rs=mysql_fetch_array($result);
include('chksession.php');
$sess_id[]=$rs[pro_id];
$sess_name[]=$rs[pro_name];
$sess_pic[]="../img_product/".$rs[pic];
$sess_price[]=$rs[price];
$sess_color[]=$rs[colors];
$sess_size[]=$rs[size];
$sess_amount[]=1;
$sess_member_id[]=$rs[member_id];
$sess_member_name[]=$rs[member_name];
}
?>
จากโค้ดชุดนี้ จะทำการส่งค่ามายังโค้ดชุดต่อไปนี้ค่ะ ช่วยดูหน้านี้ให้ด้วยนะคะ ว่าถ้าเปลี่ยนแล้ว มันจะส่งผลต่อครงไหนบ้าง แล้วเราต้องเพิ่ม หรือลบ อะไรออกไปบ้างอ่ะค่ะ
<?php
session_start();
include('chksession.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>petsidence</title>
...ตรงนี้เป็น css ธรรมดา น่าจะไม่เกี่ยว ขอย่อไว้นะคะ.....
</head>
<body>
<div id="apDiv23">
<?php include('../cn.php');?>
<table border="0" align="center" width="400">
<tr>
<td width="10%"> </td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>PRODUCT</b></font></td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>DETAIL</b></font></td>
<td width="15%" align="center"><font face="arial" color="#400000"><b>QTY</b></font></td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>PRICE</b></font></td>
</tr>
</table><br/>
<form method="post" action="besket_cal.php">
<div id="Showorder">
<table width="510" height="273" border="0" align="center">
<tr>
<td height="200" valign="top"><center></center>
<?php
if(count($sess_id)==0){
echo"<center><font face='arial' color='#400000'>ยังไม่มีสินค้าอยู่ในตะกร้า ^_^</font></center><br>";
}else{
?>
<!--แสดงรายการสินค้าที่ถูกหยิบลงตะกร้า-->
<table>
<table border="0" align="center" width="400" >
<?php
for($i=0;$i<count($sess_id);$i++){
$unit_price=$sess_amount[$i]*$sess_price[$i];
$total=$total+$unit_price;
$total_amount=count($sess_amount);
echo"
<tr >
<td width='10%'><center>
<input type='checkbox' name='prd_del[]' value='$sess_id[$i]'>
</center>
</td>
<td width='40%' align='center'><img src='$sess_pic[$i]' width='80' height='80'/></td>
<td width='60%'><font face='arial' color='#400000'>$sess_name[$i]<br>สี :$sess_color[$i]<br>ขนาด :$sess_size[$i]</font></td>
<td width='20%'><center>
<input type='text' name='prd_num[]' value='$sess_amount[$i]' size='1'>
</center></td>
<td width='60%'><center><font face='arial' color='#400000'><samp>".number_format($sess_price[$i],0,'.',',')."</samp></font></center></td>
</tr>
";
}
?>
<tr>
</tr>
</table>
</table>
<?php
}
?>
</td>
</tr>
</table>
</div>
<div id="apDiv48">
<input type="submit" name="calculate" value="ลบ" />
<input type="submit" name="complete" value="ยืนยันการสั่งซื้อ" />
</div>
</form>
<div id="apDiv45"><a href="products.php"><img src="../picture/word/menu/products.gif" width="116" height="29" /></a></div>
</div>
<!-------Tag Welcom--------->
<div id="showaccount" align="center">
<font face="arial" color="#330000">
Hello <b><?=$sess_username?></b><br />
<font size="-1">
<a href="profile.php">Profile </a>| <a href="../after_login/logout.php">Log out</a>
</font>
</font>
</div>
<?php
include('../cn.php');
$sql="SELECT * FROM members WHERE username='$sess_username'";
$result = mysql_db_query($dbname, $sql);
$rs=mysql_fetch_array($result);
$id=$rs[member_id];
$user=$rs[username];
$name=$rs[member_name];
$idcard=$rs[ID_card];
$gender=$rs[gender];
$bd=$rs[birthday];
$email=$rs[email];
$tel=$rs[tel];
$avt=$rs[avatar];
if ($avt=="") {
$avt="../after_login/img_avatar/profile.png";
}else{
$avt="../after_login/img_avatar/".$rs['avatar'];
}
?>
<div id="pic" align="center">
<img src="<?=$avt;?>" width="100" height="100"/>
</div>
<!-------Your Order menu--------->
<div id="apDiv36"><img src="/petsidence/picture/DT.png" width="169" height="75" />
<div id="apDiv37"><a href="/petsidence/after_login/your_besket.php"><img src="/petsidence/picture/word/check-list2.png" width="152" height="23" /></a></div>
<div id="apDiv38"><img src="/petsidence/picture/word/your-basket.png" width="200" height="23" /></div>
<!------------------------------->
<!-------------------------------------------แสดงวันที่ปัจจุบัน------------------------------------------------------------->
<div id="apDiv39">
<font face="arial" color="#400000"><b>Date :</b><span id="Date_time"></span></font>
<script type="text/javascript">
function date_time(id) {
date = new Date;
year = date.getFullYear() < 2500 ? date.getFullYear() : date.getFullYear();
month = date.getMonth();
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
d = date.getDate();
day = date.getDay();
h = date.getHours();
if (h < 10) {
h = "0" + h;
}
m = date.getMinutes();
if (m < 10) {
m = "0" + m;
}
s = date.getSeconds();
if (s < 10) {
s = "0" + s;
}
result = ''+ d +' '+ months[month] + ' ' + year;
document.getElementById(id).innerHTML = result;
setTimeout('date_time("' + id + '");', '1000');
return true;
}
window.onload = date_time('Date_time');
</script>
</div>
<!------------------------------------------------------------------------------------------------------------------------------>
<!---------slide--------------->
<div id="apDiv30"></div>
<!------------------------------>
<div id="apDiv41"><font face="arial" color="#400000"><b>User ID : <?=$id;?></b></font></div>
<div id="apDiv42"><font face="arial" color="#400000"><b>Name : <?=$name;?></b></font></div>
<div id="apDiv43"><font face="arial" color="#400000"><b>Amount :<font color="#FFFFFF"><?=$total_amount;?></font></b></font></div>
<div id="apDiv44"><font face="arial" color="#400000"><b>Total price :<font color="#FFFFFF"><?php echo"<samp>".number_format($total,2,'.',',')."</samp></font> THB";?></b></font></div>
</div>
</div>
</body>
</html>
เป็นมือใหม่ ยังไม่ค่อยเข้าใจอะไรมากนัก ขอคำแนะนำด้วยนะคะ ขอบคุณล่วงหน้าเลยค่ะTag : PHP, MySQL, HTML/CSS, CakePHP
Date :
2012-09-07 16:05:42
By :
จุฑามาศ
View :
8891
Reply :
23
session_register เป็นของ PHP Version 4-5 ครับ
ถ้าเป็น Version 5. ขึ้นไป ไม่ได้นะครับ
ต้องใช้
$_SESSION['sess_id'] = 'ค่าที่ต้องการ';
$_SESSION['sess_name'] = 'ค่าที่ต้องการ';
ทำนองนี้
ตอนนี้คิดว่า host ที่ใช้น่าจะ Version 5.4 กว่าๆ
Date :
2012-09-07 16:11:30
By :
adaaugusta
ต้องทำ $_SESSION Muti array ครับ
เช่น
Code (PHP)
$ProductID=$_GET['ProductID'];
if($ProductID != ""){
$_SESSION['NUM']=$_SESSION['NUM']+1;
$_SESSION['ProductID'][$_SESSION['NUM']]=$ProductID;
}
Date :
2012-09-07 17:18:19
By :
Ex-[S]i[L]e[N]t
น่าจะเปลี่ยนแค่ SESSION ก็พอครับ
ลบ
Code (PHP)
session_register("sess_id");
session_register("sess_name");
session_register("sess_pic");
session_register("sess_price");
session_register("sess_color");
session_register("sess_size");
session_register("sess_amount");
session_register("sess_member_id");
session_register("sess_member_name");
ออกให้หมด
แล้วแก้จาก
Code (PHP)
$sess_id[]=$rs[pro_id]; เป็น $_SESSION['sess_id'] = $rs['pro_id'];
$sess_name[]=$rs[pro_name]; เป็น $_SESSION['sess_name'] = $rs['pro_name'];
ตัวอื่นๆก็ทำแบบเดียวกันครับ
Code (PHP)
$sess_pic[]="../img_product/".$rs[pic];
$sess_price[]=$rs[price];
$sess_color[]=$rs[colors];
$sess_size[]=$rs[size];
$sess_amount[]=1;
$sess_member_id[]=$rs[member_id];
$sess_member_name[]=$rs[member_name];
Date :
2012-09-07 17:22:32
By :
adaaugusta
https://www.thaicreate.com/free-web-script/php-shopping-cart-session-array.html
ลองดูตามลิ้งนี้ก็ได้ครับ ^^
Date :
2012-09-07 17:33:49
By :
Ex-[S]i[L]e[N]t
เมื่อกี้ ดิฉันได้ลองทำตามวิธีของ คุณ กะล่อน ดูโดยโค้ดเปลี่ยนเป็นแบบนี้ค่ะ
Code (PHP)
<?php
session_start();
$id_prd=$_GET['pro_id'];
header("location:your_besket.php");
if(count($sess_id)=="0"){
$check=1;
}else if (!in_array($id_prd,$sess_id)){
echo"<script>alert('ซ้ำค่ะ')</script>";
$check=1;
}
if($check==1){
include"../cn.php";
$sql="select * from products where pro_id='$id_prd'";
$result=mysql_db_query($dbname,$sql);
$rs=mysql_fetch_array($result);
include('chksession.php');
$_SESSION['sess_id'] = $rs['pro_id'];
$_SESSION['sess_name'] = $rs['pro_name'];
$_SESSION['sess_pic'] = $rs['pic'];
$_SESSION['sess_price'] = $rs['price'];
$_SESSION['sess_color']=$rs['colors'];
$_SESSION['sess_size']=$rs['size'];
$_SESSION['sess_amount'] = 1;
$_SESSION['sess_member_id'] = $rs['member_id'];
$_SESSION['sess_member_name'] = $rs['member_name'];
}
?>
ส่วนโค้ดอีกชุดนึง ไม่ได้เปลี่ยนอะไร
ปรากฏว่า ไม่ได้ค่ะ
Code (PHP)
$_SESSION['sess_name'] = $rs['pro_name'];
$_SESSION['sess_pic'] = $rs['pic'];
$_SESSION['sess_price'] = $rs['price'];
$_SESSION['sess_color']=$rs['colors'];
$_SESSION['sess_size']=$rs['size'];
$_SESSION['sess_amount'] = 1;
ไม่มีค่าอะไร ในโค้ดชุดที่ 2 (หน้าที่มีการ header("location:your_besket.php");ไปน่ะคะ)
ไม่ทราบว่าที่ดิฉัน ทำนี้ เป็นไปตามที่คุณ กะล่อน แนะนำหรือป่าวคะ หรือต้องแก้ไขตรงไหนอีก
Date :
2012-09-07 17:50:58
By :
จุฑามาศ
อ้าว เอา header location ไปไว้ข้างบนก่อน $_SESSION
มันก็ไม่ทำ $_SESSION ข้างล่างสิครับ โดน header location ไปหน้าอื่นเสียก่อน
ลองเอา header location ไปไว้ล่างสุด
แล้วอย่างลืม
session_start();
ในไฟล์ your_besket.php
ด้วยนะ
Date :
2012-09-07 20:32:17
By :
adaaugusta
No.9
อ๋อ มันอย่างงี้นี่เอง
Date :
2012-09-08 09:12:19
By :
จุฑามาศ
คุณกะล่อนคะ ดิฉันลองทำแล้ว มันไม่ได้อ่ะคะ ไม่มีค่าอะไรส่งไปเลยอ่ะคะ เดี๋ยวว่าจะลองทำวิธีของ คุณ Ex-[S]i[L]e[N]t ดูอ่ะคะ ได้ผล/ไม่ได้ผลยังไง จะมาเล่าให้ฟังใหม่นะคะ
Date :
2012-09-08 11:26:37
By :
จุฑามาศ
ลองทำวิธี session multi array ก็เริ่มมีเค้าลางว่ามันจะได้แล้วค่ะ คือมันก็แสดง ข้อมูลออกมาเกือบหมดแล้ว ยังติดอยู๋หน่อยนึงคือ มันไม่วนลูปอ่ะคะ คือเลือกสินค้าชิ้นแรก มันก็แสดงออกมาในตะกร้าสินค้านะคะ แต่พอเลือกสินค้าชิ้นที่ 2 มันไม่แสดงในตะกร้าอ่ะคะ แต่รารารวมดันบวกเพิ่มซะงั้น
นี่ค่ะ โค้ดที่แก้ไขแล้ว แล้วมันแสดงผลอย่างที่บอกอ่ะคะ
Code (PHP)
<?php
ob_start();
session_start();
if(!isset($_SESSION["no"]))
{
$_SESSION["no"] = 0;
$_SESSION["strProductID"][0] = $_GET["pro_id"];
$_SESSION["strQty"][0] = 1;
header("location:your_besket.php");
}else{
$key = array_search($_GET["pro_id"], $_SESSION["strProductID"]);
if((string)$key != "")
{
$_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1;
}
else
{
$_SESSION["no"] = $_SESSION["no"] + 1;
$intNewLine = $_SESSION["no"];
$_SESSION["strProductID"][$intNewLine] = $_GET["pro_id"];
$_SESSION["strQty"][$intNewLine] = 1;
}
header("location:your_besket.php");
}
?>
อันนี้โค้ดชุดแรกที่จะส่งสินค้าลงตะกร้าสินค้านะคะ ต่อไปคือนี่ค่ะโค้ดชุดที่ใช้แสดงตะกร้าสินค้าค่ะ โค้ดที่เป็นปัญหา
Code (PHP)
<?php
session_start();
include('chksession.php');
mysql_connect("localhost","root","1234");
mysql_select_db("petsidence");
mysql_query("SET NAMES utf8");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>petsidence</title>
</head>
<body>
<!-------------------------------------------------------------ปุ่มเมนูหลักซ้ายมือ-------------------------------------------------------------->
<div id="apDiv1">
<div id="apDiv3"><a href="home.php" target="_parent"><img src="../picture/head.gif" width="1026" height="125"/></a></div>
<div id="apDiv4" align="center"><img src="../picture/DT.png" width="169" height="79" />
<div id="apDiv11"><a href="home.php"><img src="../picture/word/hometxt.png" width="109" height="28" /></a></div>
</div>
<div id="apDiv5" align="center"><img src="../picture/DT.png" width="169" height="79" />
<div id="apDiv12"><a href="products.php"><img src="../picture/word/products.png" width="154" height="32" align="middle" /></a></div>
</div>
<div id="apDiv6"><img src="../picture/DT.png" width="169" height="79" />
<div id="apDiv13"><a href="../befor_login/payment.php" target="_new"><img src="../picture/word/payment.png" width="147" height="28" /></a></div>
</div>
<div id="apDiv7"><img src="../picture/DT.png" width="169" height="79" />
<div id="apDiv14"><a href="../alert_under_cons.php"><img src="../picture/word/board.png" width="140" height="30" align="middle" /></a></div>
</div>
<div id="apDiv8"><img src="../picture/DT.png" width="169" height="79" />
<div id="apDiv15"><a href="contact.php"><img src="../picture/word/contact.png" width="146" height="33" /></a></div>
</div>
<div id="apDiv17"><img src="../picture/word/copyright.png" width="332" height="14" /></div>
<div id="apDiv18" align="center"><a href="http://www.linkedin.com/" target="_new"><img src="../picture/logolink/512 (3).png" width="30" height="30" /></a></div>
<div id="apDiv19" align="center"><a href="http://www.youtube.com" target="_new"><img src="../picture/logolink/youtube-icon (1).png" width="30" height="30" align="middle" /></a></div>
<div id="apDiv20" align="center"><a href="http://twitter.com/" target="_new"><img src="../picture/logolink/512 (1).png" width="30" height="30" /></a></div>
<div id="apDiv21" align="center"><a href="http://www.facebook.com/" target="_new"><img src="../picture/logolink/512 (2).png" width="30" height="30" /></a></div>
<!--------------------------------------------------------------------------------------------------------------------------------------->
<div id="apDiv23">
<table border="0" align="center" width="400">
<tr>
<td width="10%"> </td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>PRODUCT</b></font></td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>DETAIL</b></font></td>
<td width="15%" align="center"><font face="arial" color="#400000"><b>QTY</b></font></td>
<td width="30%" align="center"><font face="arial" color="#400000"><b>PRICE</b></font></td>
</tr>
</table><br/>
<form method="post" action="besket_cal.php">
<div id="Showorder">
<table width="510" height="273" border="0" align="center">
<tr>
<td height="200" valign="top"><center></center>
<?php
$Total = 0;
$SumTotal = 0;
?>
<!--แสดงรายการสินค้าที่ถูกหยิบลงตะกร้า-->
<table>
<table border="0" align="center" width="400" >
<?php
for($i=0;$i<=(int)$_SESSION["no"];$i++){
if($_SESSION["strProductID"][$i] != "") {
$strSQL = "SELECT * FROM products WHERE pro_id= '".$_SESSION["strProductID"][$i]."' ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
$objResult = mysql_fetch_array($objQuery);
$Total = $_SESSION["strQty"][$i] * $objResult["price"];
$SumTotal = $SumTotal + $Total;
?>
<tr >
<td width="10%"><center>
<input type="checkbox" name="prd_del[]" value="<?=$_SESSION["no"][$i];?>">
</center>
</td>
<td width="40%" align="center"><img src="<?='../img_product/'.$objResult["pic"];?>" width="80" height="80"/></td>
<td width="60%"><font face="arial" color="#400000"><?=$objResult["pro_name"];?><br>สี :<?=$objResult["colors"];?><br>ขนาด :<?=$objResult["size"];?></font></td>
<td width="20%"><center>
<input type="text" name="prd_num[]" value="<?=$_SESSION["strQty"][$i];?>" size="1">
</center></td>
<td width="60%"><center><font face="arial" color="#400000"><?=number_format($SumTotal,2);?></font></center></td>
</tr>
<?php
}
?>
<tr>
</tr>
</table>
</table>
<?php
}
?>
</td>
</tr>
</table>
</div>
<div id="apDiv48">
<input type="submit" name="calculate" value="ลบ" />
<input type="submit" name="complete" value="ยืนยันการสั่งซื้อ" />
</div>
</form>
<div id="apDiv45"><a href="products.php"><img src="../picture/word/menu/products.gif" width="116" height="29" /></a></div>
</div>
<!-------Tag Welcom--------->
<div id="showaccount" align="center">
<font face="arial" color="#330000">
Hello <b><?=$sess_username?></b><br />
<font size="-1">
<a href="profile.php">Profile </a>| <a href="../after_login/logout.php">Log out</a>
</font>
</font>
</div>
<?php
include('../cn.php');
$sql="SELECT * FROM members WHERE username='$sess_username'";
$result = mysql_db_query($dbname, $sql);
$rs=mysql_fetch_array($result);
$id=$rs[member_id];
$user=$rs[username];
$name=$rs[member_name];
$idcard=$rs[ID_card];
$gender=$rs[gender];
$bd=$rs[birthday];
$email=$rs[email];
$tel=$rs[tel];
$avt=$rs[avatar];
if ($avt=="") {
$avt="../after_login/img_avatar/profile.png";
}else{
$avt="../after_login/img_avatar/".$rs['avatar'];
}
?>
<div id="pic" align="center">
<img src="<?=$avt;?>" width="100" height="100"/>
</div>
<!-------Your Order menu--------->
<div id="apDiv36"><img src="/petsidence/picture/DT.png" width="169" height="75" />
<div id="apDiv37"><a href="/petsidence/after_login/your_besket.php"><img src="../picture/word/check-list2.png" width="152" height="23" /></a></div>
<div id="apDiv38"><img src="/petsidence/picture/word/your-basket.png" width="200" height="23" /></div>
<!------------------------------->
<!-------------------------------------------แสดงวันที่ปัจจุบัน------------------------------------------------------------->
<div id="apDiv39">
<font face="arial" color="#400000"><b>Date :</b><span id="Date_time"></span></font>
<script type="text/javascript">
function date_time(id) {
date = new Date;
year = date.getFullYear() < 2500 ? date.getFullYear() : date.getFullYear();
month = date.getMonth();
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
d = date.getDate();
day = date.getDay();
h = date.getHours();
if (h < 10) {
h = "0" + h;
}
m = date.getMinutes();
if (m < 10) {
m = "0" + m;
}
s = date.getSeconds();
if (s < 10) {
s = "0" + s;
}
result = ''+ d +' '+ months[month] + ' ' + year;
document.getElementById(id).innerHTML = result;
setTimeout('date_time("' + id + '");', '1000');
return true;
}
window.onload = date_time('Date_time');
</script>
</div>
<!------------------------------------------------------------------------------------------------------------------------------>
<!---------slide--------------->
<div id="apDiv30"></div>
<!------------------------------>
<div id="apDiv41"><font face="arial" color="#400000"><b>User ID : <?=$id;?></b></font></div>
<div id="apDiv42"><font face="arial" color="#400000"><b>Name : <?=$name;?></b></font></div>
<div id="apDiv43"><font face="arial" color="#400000"><b>Amount :<font color="#FFFFFF"><?=$_SESSION["strQty"][$i];?></font></b></font></div>
<div id="apDiv44"><font face="arial" color="#400000"><b>Total price :<font color="#FFFFFF"><?php echo"<samp>".number_format($SumTotal,2)."</samp></font> THB";?></b></font></div>
</div>
</div>
</body>
</html>
ช่วยดูหน่อยนะคะ โค้ดดิ้งเองก็งงเหมือนกัน
ประวัติการแก้ไข 2012-09-08 12:50:03
Date :
2012-09-08 12:48:45
By :
จุฑามาศ
ถามๆๆ หน่อยจร้า คือ กำลังทำตะกร้าสินค้า อยู่อ่ะคะ ก็เกือบๆ จะ ดีแล้วเชียว แต่เรื่องมันมีอยู๋ว่า
ไอ้เจ้าตัวระบบที่เขียนมันดัน ง๊องแง๊ง คือว่า เวลาเราเลือกสินค้าใส่ในตะกร้าอ่ะคะ ถ้าเลือกครั้งแรก (สินค้าชิ้นแรกที่ถูกใส่ในตะกร้าอ่ะคะ) มันดันไม่แสดงในตะกร้าสินค้า ซะงั้น
แต่พอชิ้นที่ 2 ,3,4,... ก็แสดงขึ้นมาปกติดีค่ะ คำนวณ ราคา อะไรต่อมิอะไร เรียบร้อเลยค่ะ
แล้วที่ ทำไม่ได้(ไม่รู้จะทำยังไง) อีกอย่างนึงคือ อยากจะให้มัน นับจำนวน สินค้าที่อยู่ในตะกร้าทั้งหมด ว่า user ได้ซื้อไปกี่ชิ้น ด้วยอ่ะคะ
ลองเอา $_SESSION["intLine"] มานับดูปรากฏว่ามันจะได้ 1 เสมอ ไม่ว่าจะเลือกมากี่ชิ้นอ่ะคะ
มีโค้ดตัวอย่างให้ดูด้วยค่ะ
คือ มันจะรับค่ามาจากหน้า product detail นะคะ
<a href='basket_add.php?pro_id=$id_prd'>หยิบใส่ตะกร้าสินค้า</a> แบบนี้นะคะ
มาใส่ session ในหน้า add to basket
ช่วยดูหน่อยนะคะ ขอบคุณมากๆ เลยจร้า ^_^
ประวัติการแก้ไข 2012-09-12 11:31:22
Date :
2012-09-12 11:24:47
By :
จุฑามาศ
ประวัติการแก้ไข 2012-09-12 11:32:55 2012-09-12 11:44:14
Date :
2012-09-12 11:31:58
By :
Ex-[S]i[L]e[N]t
Code (PHP)
for($i=0;count($_SESSION["strProductID"]);$i++){
$SelectProduct=mysql_query("SELECT * FROM products WHERE pro_id='".$_Session['strProductID'][$i]."'") or die (mysql_error());
$Product=mysql_fetch_array($SelectProduct);
if($Product){
echo $Product['ProductName'];
echo $_SESSION['strQty'][$i];
}
}
อธิบาย
1. เราต้องหาร จำนวน array ทั้งหมดก่อนโดยการใช้ count : for($i=0;count($_SESSION["strProductID"]);$i++)
2. เมื่อได้ Array แต่ละตัวแล้ว นำมา SELECT แล้วหาค่าความเป็นจริงโดยใช้ if($product)
ประวัติการแก้ไข 2012-09-12 11:43:12
Date :
2012-09-12 11:42:28
By :
Ex-[S]i[L]e[N]t
มันขึ้นว่า
Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\petsidence\after_login\your_besket.php on line 515
แต่แสดงสินค้าในตะกร้านะคะ
Date :
2012-09-12 12:08:16
By :
จุฑามาศ
ดิฉันได้แก้โค้ดเป็นแบบนี้ค่ะ
for($i=0;count($_SESSION["strProductID"]);$i++){
if($_SESSION["strProductID"][$i] != ""){
include('../cn.php');
$strSQL = "SELECT * FROM products WHERE pro_id = '".$_SESSION["strProductID"][$i]."'";
$objQuery = mysql_db_query($dbname,$strSQL);
$objResult = mysql_fetch_array($objQuery);
if($objResult){
echo $objResult['pro_name'];
echo $_SESSION['strQty'][$i];
}
echo mysql_error();
$Total = $_SESSION["strQty"][$i] * $objResult["price"];
$SumTotal = $SumTotal + $Total;
?>
ไม่ทราบว่าดิฉันเข้าใจถูกหรือผิดค่ะ ปล. ดิฉันก็งง อ่ะคะ TT_TT
Date :
2012-09-12 12:10:27
By :
จุฑามาศ
ขอโทดทีครับ ลองแก้บรรทัดนี้อีกนิดเนิงครับ
Code (PHP)
for($i=0;$i<=count($_SESSION["strProductID"]);$i++){
Date :
2012-09-12 12:20:39
By :
Ex-[S]i[L]e[N]t
เหมือนเดิมค่ะ เลือกสินค้าชิ้นแรกไม่ลง อ่ะคะ
Date :
2012-09-12 12:49:50
By :
จุฑามาศ
ผมว่า มันน่าจะเป็น ตอนเพิ่มสินค้า เข้าตระกร้าแล้วหละครับ
Date :
2012-09-12 13:59:45
By :
Ex-[S]i[L]e[N]t
นั่นแหละค่ะ ที่นี้แก้ยังไง ดีคะ
Date :
2012-09-16 15:01:18
By :
จุฑามาศ
Code (PHP)
if( $_GET["id_prd"] != ""){
$_SESSION['Str']=$_SESSION['Str']+1;
$_SESSION['ProductID'][$_SESSION['Str']]=$_GET['id_prd'];
$_SESSION['Quanlity'][$_SESSION['Str']]=1;
}
เอาโค๊ดนี้ไปใส่ตอนเพิ่มสินค้าก่อน อยากได้อะไรบอกเพิ่มเติมครับ
Date :
2012-09-17 10:05:25
By :
Ex-[S]i[L]e[N]t
ช่วยเหลือเรื่อง session_register หน่อยครับ ไม่รู้แก้ยังไง php v5
Code (PHP)
<?php
session_start();
date_default_timezone_set('Asia/Bangkok');
$pass = $_POST['Pass'];
$na = $_POST['User'];
$En = Encrypt($pass); //เรียกใช้ฟังก์ชั่นเข้ารหัส Encrypt
session_register("ses_name");
include("CONN.php"); //เรียกใช้ไฟล์ CONN.php เพื่อติดต่อฐานข้อมูล
$query = sqlsrv_query($dbhandle, "SELECT USNA,ENNA,PASS FROM USERS WHERE USNA = '$na' AND PASS = '$En' ");
$obj = sqlsrv_fetch_object($query);
if(!$obj){
echo "<center>Login Fail !";
?>
<script type="text/javascript">
window.alert("User and password incorrect !")
window.location='Home.php'
</script>
<?php
}else {
echo "<center>Login Correct !<br>Welcome ";
echo $obj->ENNA;
$_SESSION['ses_name']=$obj->ENNA;
$_SESSION['ses_date'] = date("m/j/Y");
$_SESSION['ses_time'] = date("H:i:s");
?>
<script type="text/javascript">
// window.alert("Welcome <?php //echo $obj->ENNA; ?>") //เอาออก เนื่องจากเพิ่อ อำนวยความสะดวกแก่ผู้ใช้ที่ไม่ถนัดใช้คอมพิวเตอร์
window.location='Master.php'
</script>
<?php
}
function Encrypt($pass){
$ichar = strlen($pass);
for ($icount = 0; $icount < $ichar; $icount++){
$Sord = ord(substr($pass, $icount, 1));
if (strlen( $Sord)==2){
$Sord = "0". $Sord;
} //นับจำนวนตัวอักษรที่ได้รับเข้ามา และนำมาเข้ารหัสทีละตัว
$tmpPsd = $tmpPsd .$Sord ; //นับอักษรที่เข้ารหัสที่ละตัวมาต่อเป็นคำ
}
if (strlen($tmpPsd )<30 ){
for ($i=0; $i < (30 - strlen( $tmpPsd ));++$i){
$strZero = $strZero ."0" ;
} //ตรวจสอบว่าค่าจากที่ Encrypt มีค่าน้อยกว่า 30 หรือไม่ ? ถ้าไม่ให้เติม 0 ให้ครอบ 30
}
return $tmpPsd.$strZero ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
Date :
2016-02-26 09:46:22
By :
wut line: qqwutt
Load balance : Server 01