|
|
|
ปัญหาโลกแตกอีกแล้วครับเรื่อง session ครับ ใครรู้ช่วยทีครับ |
|
|
|
|
|
|
|
ขอบคุณครับ พอดีทราบว่า เลิกใช้session_register แล้ว แต่ เขียนโค้ดไม่ถูกน่ะครับ ขอบคุณนะครับ จะลองดูครับ
|
|
|
|
|
Date :
2014-01-21 05:51:51 |
By :
พลลพิสิษฐ์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆก็ไม่อยากใช้ @ ครับ แต่ขึ้นโฮสจริง มันไม่ทำงาน พอใส่ @ แล้วทำงานได้ อีกอย่างครับ โค้ดข้างบนก็ยังทำงานไม่ถูกครับ
|
|
|
|
|
Date :
2014-01-21 10:01:50 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ใหม่แล้วครับ ทดสอบใน appserve ใช้ได้ครับ ขึ้นโฮสจริง ไม่ได้ ครับ
basket_add.php
Code (PHP)
<?
@session_start();
$id_prd=$_GET[id_prd];
$_session['$sess_id'] = "$sess_id";
$_session['$sess_name'] = "$sess_name";
$_session['$sess_price'] = "$sess_price";
$_session['$sess_num'] = "$sess_num";
if (count($sess_id)==0) {
$check=1;
} else if (!in_array($id_prd, $sess_id)) {
$check=1;
}
if ($check==1) {
include "connect.php";
$sql="select * from tb_product where id_prd='$id_prd' ";
$result=mysql_db_query($dbname,$sql);
$rs=mysql_fetch_array($result);
$sess_id[]=$rs[id_prd];
$sess_name[]=$rs[name_prd];
$sess_price[]=$rs[price_prd];
$sess_num[]=1;
}
header("Location: basket.php");
?>
|
|
|
|
|
Date :
2014-01-21 11:12:06 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่เกี่ยวข้องครับ
basket.php
Code (PHP)
<? @session_start();?>
<h2>ระบบสั่งจองไข่ไหม</h2>
<div class="product_box ">
<P>
[ <A HREF="index.php">หน้าแรก</A> ]
[ <A HREF="basket.php">รายการสั่งจอง</A> ]
</P>
<TABLE WIDTH="770" BORDER="0">
<TR>
<TD WIDTH="174" HEIGHT="200" VALIGN="top" BGCOLOR="#EAEAEA">
<CENTER><B>รายการที่มีให้สั่งจอง</B></CENTER>
<?
include "connect.php";
include "type_list.php";
?>
</TD>
<TD WIDTH="580" VALIGN="top">
<?
if (count($sess_id)==0) {
echo "ยังไม่มีรายการสั่งจองรายการใดๆ <BR>";
} else {
?>
<FORM METHOD="post" ACTION="basket_cal.php">
<TABLE WIDTH="100%" BORDER="1">
<TR BGCOLOR="#E8E8E8">
<TD WIDTH="6%"><CENTER><B>ลบ</B></CENTER></TD>
<TD WIDTH="60%"><CENTER><B>รายการ</B></CENTER></TD>
<TD WIDTH="12%"><CENTER><B>จำนวน</B></CENTER></TD>
<TD WIDTH="10%"><CENTER><B>ราคา</B></CENTER></TD>
<TD WIDTH="12%"><CENTER><B>รวม</B></CENTER></TD>
</TR>
<?
for ($i=0;$i<count($sess_id);$i++) {
$total_unit=$sess_num[$i]*$sess_price[$i];
$total=$total+$total_unit;
echo "
<TR>
<TD><CENTER>
<INPUT TYPE='checkbox' NAME='prd_del[]' VALUE='$sess_id[$i]'>
</CENTER></TD>
<TD>$sess_name[$i]</TD>
<TD><CENTER>
<INPUT TYPE='text' NAME='prd_num[]' VALUE='$sess_num[$i]' SIZE='4' >
</CENTER></TD>
<TD><CENTER>$sess_price[$i]</CENTER></TD>
<TD><CENTER>$total_unit</CENTER></TD>
</TR>";
}
?>
</TABLE>
<P ALIGN="right">
<? echo "จำนวนเงินทั้งหมด $total บาท"; ?><BR><BR>
<INPUT TYPE="submit" NAME="calculate" VALUE="คำนวณใหม่">
<INPUT TYPE="submit" NAME="complete" VALUE="ยืนยันการสั่งจอง">
</P>
</FORM>
<?
}
?>
</TD>
</TR>
</TABLE>
</body>
</html>
|
|
|
|
|
Date :
2014-01-21 11:13:49 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อีกอัน ครับ
<?
@session_start();
if (count($prd_del)==0) {
$prd_del=array();
}
for ($i=0;$i<count($sess_id);$i++) {
if (!in_array($sess_id[$i],$prd_del)) {
$temp_id[]=$sess_id[$i];
$temp_name[]=$sess_name[$i];
$temp_price[]=$sess_price[$i];
$temp_num[]=$prd_num[$i];
}
}
$sess_id=$temp_id;
$sess_name=$temp_name;
$sess_price=$temp_price;
$sess_num=$temp_num;
if ($calculate) {
header("Location: basket.php");
} else if ($complete) {
header("Location: prd_order.php");
}
?>
|
|
|
|
|
Date :
2014-01-21 11:29:48 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
และ อัยสุดท้าย วอนผู้รู้ด้วยนะครับ ในเซฟเวอร์จำลอง ทำงานดีมาก แต่เวลาขึ้นโฮสจริง กลับไม่ทำงานครับ มีวิธีใดอีกไหมครับ
prd_order.php
<? @session_start();?>
<title>ระบบสั่งจองไข่ไหม</title>
<H2>::ระบบสั่งจองไข่ไหม ::</H2>
<P>
[ <A HREF="index.php">หน้าแรก</A> ]
[ <A HREF="basket.php">รายการสั่งจอง</A> ]
</P>
<?
if (count($sess_id)==0) {
echo "ยังไม่มีการสั่งจองใดๆ <BR>";
} else {
?>
</P>
<FORM METHOD="post" ACTION="prd_order2.php">
<P><H3>ใบสั่งจองไข่ไหม</H3></P>
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="0">
<TR>
<TD WIDTH="137">ชื่อ - สกุล : </TD>
<TD width="293"><INPUT TYPE="text" NAME="name_order" SIZE="40">
* </TD>
</TR>
<TR>
<TD>เลขบัตรประชาชน : </TD>
<TD><INPUT TYPE="text" NAME="cid_order">
</TD>
</TR>
<TR>
<TD>โทรศัพท์:</TD>
<TD><INPUT TYPE="text" NAME="tel_order">
</TD>
</TR>
<TR>
<TD>ที่อยู่</TD>
<TD><p>
<TEXTAREA NAME="address_order" COLS="40" ROWS="4"></TEXTAREA>
* </p></TD>
<p> </p>
</CENTER></TD>
<tr>
<TD><p>วันเปิดไข่
<TD><select name="gen_name">
<option value="0">----เลือกวันเปิดไข่---</option>
<?
include "connect.php";
$sql="select * from tb_gen";
$result=mysql_db_query($dbname,$sql);
while($rs=mysql_fetch_array($result)) {
$id_gen=$rs[id_gen];
$gen_name=$rs[gen_name];
echo "<OPTION VALUE='$id_gen'>$gen_name</OPTION>";
}
?>
</select>
*</TD>
<td> </td></p>
</TR>
<tr>
<TD><p>ประจำเดือน
<TD><select name="gen_month">
<option value="0">----เลือกเดือน---</option>
<option value="1">มกราคม</option>
<option value="2">กุมภาพันธ์</option>
<option value="3">มีนาคม</option>
<option value="4">เมษายน</option>
<option value="5">พฤษภาคม</option>
<option value="6">มิถุนายน</option>
<option value="7">กรกฎาคม</option>
<option value="8">สิงหาคม</option>
<option value="9">กันยายน</option>
<option value="10">ตุลาคม</option>
<option value="11">พฤศจิกายน</option>
<option value="12">ธันวาคม</option>
</select>
*</TD>
<td> </td></p>
</TR>
</TABLE>
<p> </p>
<TABLE WIDTH="600" BORDER="1">
<TR BGCOLOR="#E8E8E8">
<TD WIDTH="15%"><CENTER><B>รหัสสินค้า</B></CENTER></TD>
<TD WIDTH="31%"><CENTER><B>ชื่อสินค้า</B></CENTER></TD>
<TD WIDTH="10%"><CENTER><B>จำนวน</B></CENTER></TD>
<TD WIDTH="7%"><CENTER><B>ราคา</B></CENTER></TD>
<TD WIDTH="6%"><CENTER><B>รวม</B></CENTER></TD>
</TR>
<?
for ($i=0;$i<count($sess_id);$i++) {
$total_unit=$sess_num[$i]*$sess_price[$i];
$total=$total+$total_unit;
$code=sprintf("%05d",$sess_id[$i]);
echo "
<TR>
<TD>$code</TD>
<TD> $sess_name[$i]</TD>
<TD><CENTER>$sess_num[$i]</CENTER></TD>
<TD><CENTER>$sess_price[$i]</CENTER></TD>
<TD><CENTER>$total_unit</CENTER></TD>
</TR>";
}
?>
</TABLE><BR>
<? echo "จำนวนเงินทั้งหมด $total บาท"; ?>
<BR><BR>
<INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
<INPUT TYPE="hidden" NAME="total_order" VALUE="<?=$total?>">
</P>
</FORM>
<?
}
?>
</body>
</html>
|
|
|
|
|
Date :
2014-01-21 11:32:15 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆ ที่ไม่ทำงาน อยากให้ลองมองเรื่อง พื้นฐานดูนะครับ เช่น tag PHP ที่คุณเขียน เนอะ
ลองดู info ของ server ครับว่าเค้า short_open_tag อะไร ระหว่าง on/off และลองอ่านเรื่องดู น่าจะ กระจ่างครับ
|
|
|
|
|
Date :
2014-01-21 13:17:11 |
By :
geidtiphong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เลิกใช้ session_register ไปแล้ว การเขียนโค๊ดแบบนี้ไม่ได้เป็ฯ SESSION นะครับ
Code (PHP)
$sess_id[]=$rs[id_prd];
$sess_name[]=$rs[name_prd];
$sess_price[]=$rs[price_prd];
$sess_num[]=1;
|
|
|
|
|
Date :
2014-01-21 13:28:07 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_session['$sess_id'] = "$sess_id";
$_session['$sess_name'] = "$sess_name";
$_session['$sess_price'] = "$sess_price";
$_session['$sess_num'] = "$sess_num";
^^^^ จงใจใช้แบบนี้หรอครับ ปกติ เขาจะใช้กับแบบนี้นะครับ ^^^^
$_session['sess_id'] = $sess_id;
$_session['sess_name'] = $sess_name;
$_session['sess_price'] = $sess_price;
$_session['sess_num'] = $sess_num;
|
|
|
|
|
Date :
2014-01-21 13:36:32 |
By :
champkung226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เนื่องจาก php เวอร์ชั่นใหม่ๆ จะมีการลดการฟังก์การตัดฟังก์บางอย่างออกด้วย และการเขียนในเวอร์ชั่นใหม่นั้นมีความปลอดภัยสูงขึ้น
ถ้าจะพัฒนาระบบในโอกาสต่อไปต้องพัฒนา php เวอร์ชั่นล่าสุดครับ ผมก็เจอเพราะ php คนละเวอร์ชั่นทำให้มีปัญหาตามมาหลายอย่างครับ
การไปปิดเออเรอเป็นทางเลือกหนึ่งแต่ไม่ดีแน่อนอนครับ การแก้โปรแกรมให้ทำงานได้จึงเป็นเรื่องใหญ่สำหรับเรา เพราะเหนื่อยครับถ้าออกแบบมาไม่ดี ยังไงก็สู้ต่อไปครับ
|
|
|
|
|
Date :
2014-01-21 14:31:57 |
By :
narubet |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สงสัยต้องทำใหม่แล้วหล่ะครับ เหนื่อยใจจัง
|
|
|
|
|
Date :
2014-01-21 15:54:58 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สู้ๆ ครับ ลองศึกษาจากในเว็บนี้ดูครับ เนื้อหาครอบคลุม
|
|
|
|
|
Date :
2014-01-21 16:09:37 |
By :
champkung226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันไม่ฟ้องว่าเออเร่อ ครับ มันเหมือนไม่ทำงานครับ
|
|
|
|
|
Date :
2014-01-21 21:29:59 |
By :
salieaf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองง่ายๆ ครับว่า session ทำงานหรือไม่
สร้างเพจใหม่สักหน้านึง เช่น test.php แล้วอัพขึ้นโฮส จากนั้นลองเปิดดู
Code (PHP)
<?PHP
session_start();
$_SESSION['sess_id'] = session_id();
$_SESSION['test'] = 'Test';
#----ส่วนนี้สั่งให้แสดงผลครับ---#
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
/*
ถ้า session สามารถทำงานได้ จะได้ผลลัพธ์ประมาณนี้
Array
(
[sess_id] => uu4vcm17dv7pbiaakkf95fsp77
[test] => Test
)
*/
?>
|
|
|
|
|
Date :
2014-01-22 09:44:42 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|