|
|
|
รูปไม่อัพโหลดไปในโฟลเดอร์ |
|
|
|
|
|
|
|
รูปมันไม่อัพโหลดไปในโฟลเดอร์ครับ ที่อยู่โฟลเดอร์ = C:\AppServ\www\bookshop\pimg
ลองใส่ชื่อที่อยู่แบบเต็มๆแล้วก็ไม่เข้าครับ
saveorder.php
<?php
error_reporting( error_reporting() & ~E_NOTICE );
session_start();
/*
echo "<pre>";
print_r($_SESSION);
echo "<hr>";
print_r($_POST);
echo "</pre>";
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Confirm</title>
</head>
<body>
<!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ -->
<?php
require_once('Connections/condb.php');
//Set ว/ด/ป เวลา ให้เป็นของประเทศไทย
date_default_timezone_set('Asia/Bangkok');
//สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด
$date1 = date("Ymd_His");
//สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
$numrand = (mt_rand());
$name = $_POST["name"];
$address = $_POST["address"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$total = "";
$order_date = date("Y-m-d H:i:s");
$status = 1;
$slip = (isset($_POST['slip']) ? $_POST['slip'] : '');
$parcel_number =0;
$upload=$_FILES['slip'];
if($upload <> '')
$path=".../pimg/";
$type = strrchr($_FILES['slip']['name'],".");
$newname ='slip'.$numrand.$date1.$type;
$path_copy=$path.$newname;
$path_link=".../pimg/".$newname;
move_uploaded_file($_FILES['slip']['tmp_name'],$path_copy);
//บันทึกการสั่งซื้อลงใน order_detail
mysql_db_query($database_condb, "BEGIN");
$sql1 = "INSERT INTO tb_order VALUES
(NULL,
'$name',
'$address',
'$email',
'$phone',
'$total',
'$status',
'$order_date',
'$newname',
'$parcel_number'
)";
$query1 = mysql_db_query($database_condb, $sql1) or die ("Error in query: $sql1 " . mysql_error());
$sql2 = "SELECT MAX(order_id) AS order_id FROM tb_order WHERE phone='$phone'";
$query2 = mysql_db_query($database_condb, $sql2);
$row = mysql_fetch_array($query2);
$order_id = $row['order_id'];
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty)
{
$sql3 = "SELECT * FROM tbl_product where p_id=$p_id";
$query3 = mysql_db_query($database_condb, $sql3);
$row3 = mysql_fetch_array($query3);
$total=$row3['p_price']*$p_qty;
// $p_name = $row2['p_name'];
$sql4 = "INSERT INTO tb_order_detail
values(null,
'$order_id',
'$p_id',
'$p_qty',
'$total')";
$query4 = mysql_db_query($database_condb, $sql4);
}
if($query1 && $query4){
mysql_db_query($database_condb, "COMMIT");
$msg = "บันทึกข้อมูลเรียบร้อยแล้ว ";
foreach($_SESSION['shopping_cart'] as $p_id)
{
unset($_SESSION['shopping_cart']);
}
}
else{
mysql_db_query($database_condb, "ROLLBACK");
$msg = "บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ ";
}
mysql_close($condb);
?>
<script type="text/javascript">
alert("<?php echo $msg;?>");
window.location ='profile.php';
</script>
</body>
</html>
Tag : PHP, MySQL, Appserv, Windows
|
|
|
|
|
|
Date :
2021-01-17 13:17:33 |
By :
gadiaw24 |
View :
1420 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. แน่ใจเหรอว่ามันมี input file name="slip" ส่งไปด้วย? ได้ลอง print_r($_FILES) หรือยังว่ามันมีอะไรไปด้วยไหม?
2. if ส่วนไหนถึงส่วนไหนก็เอา {..} ครอบให้มันรู้เรื่องหน่อย อย่ามักง่ายครับ.
3. mysql_xxx กระทู้ก็ปักหมุดอยู่ เคยอ่านไหมน่ะ? https://www.thaicreate.com/php/forum/095986.html
4. มีทั้ง $path_copy $path_link $slip อันไหนไม่ใช่จะเอาไว้ทำไม? รก!
5. $path เป็น relative path เคยลองตรวจไหมว่ามันตรงหรือเปล่า? ทดลอง var_dump(realpath($path)); ได้อะไร?
|
|
|
|
|
Date :
2021-01-18 01:38:26 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็ชี้เป้าให้หมดแล้ว ทดลองอย่างที่บอกแล้วเอาผลมาดู
|
|
|
|
|
Date :
2021-01-18 10:53:32 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มาอีกแล้ว บอกให้ทดลองทำอะไรก็ไม่ทำ เอารูปฐานข้อมูลมาดูแล้วมันจะช่วยอะไรได้ไหม?
มันเข้าฐานข้อมูลก็เพราะข้อมูลประเภท text มันเข้าไป
มันคนละเรื่องกับการอัพโหลด
ถ้าให้ทดลองทำเพื่อหาข้อบกพร่องแล้วไม่ทำ ก็รอคนอื่นมาแก้ให้ละกันครับ
|
|
|
|
|
Date :
2021-01-18 11:38:50 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- ผมว่าคุณลองทดลองเขียนเพียวๆ เฉพาะ upload ก่อนดีกว่าครับคุณจะได้เข้าใจ Logic ไม่เอาสาย copy&paste
- แล้วก็เลิกใช้ AppServ เปลี่ยนไปใช้ Xampp
- ส่วน path รูป กลับไปดูเลย .|..|... มันต่างกันยังไง
- ทำไป dump ไป print_r ไปไม่ต้องรีบ
|
|
|
|
|
Date :
2021-01-18 11:53:25 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาม คห 2 ครับ เอาตรงนี้มาดูก่อนครับ
print_r($_FILES)
บางทีเห็นเอง ก็อาจจะเข้าใจได้เลย ก็ได้ ว่าผิดตรงไหน
ปล. ผมไม่เคยใช้นะ 3 จุด $path=".../pimg/";
มากสุด 2 จุด
หรือเขาเพิ่มมาใหมม่ 55555
|
ประวัติการแก้ไข 2021-01-18 15:36:59
|
|
|
|
Date :
2021-01-18 15:32:27 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยนจาก
Code (PHP)
$upload=$_FILES['slip'];
if($upload <> '')
$path=".../pimg/";
$type = strrchr($_FILES['slip']['name'],".");
$newname ='slip'.$numrand.$date1.$type;
$path_copy=$path.$newname;
$path_link=".../pimg/".$newname;
move_uploaded_file($_FILES['slip']['tmp_name'],$path_copy);
เป็น
Code (PHP)
$filename = $_FILES['slip']['name'];
$type = strrchr($filename, ".");
$newname ='slip'.$numrand.$date1.$type;
$path_copy='/bookshop/pimg/' . $newname;
if (move_uploaded_file($_FILES['slip']['tmp_name'],$path_copy)) {}
ดูว่ามีอะไรเปลี่ยนแปลงหรือไม่
Code (PHP)
if (/* condition */)
/*do1*/;
/*do2*/;
/*do3*/;
จะได้ผลเหมือน
Code (PHP)
if (/* condition */) :
/*do1*/;
endif;
/*do2*/;
/*do3*/;
และ
Code (PHP)
if (/* condition */) {
/*do1*/;
}
/*do2*/;
/*do3*/;
|
ประวัติการแก้ไข 2021-01-19 16:32:14
|
|
|
|
Date :
2021-01-19 16:16:28 |
By :
lakornworld |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|