|
|
|
สอบถามเรื่องการอัพโหลดรูปภาพไปยังฐานข้อมูล แบบที่ใช้ชื่อเดิม(ไม่มีการเลือกภาพใหม่) |
|
|
|
|
|
|
|
ณ ตอนนี้มีรูปที่ใช้ในการแสดงทั้งหมด 6รูปค่ะ
ในฟอร์ม edit detail my club_club leader.php ทั้ง6รูปไม่มีปัญหาเกิดขึ้นหากกดเลือกรูปแล้วอัพไปยังฐานข้อมูล ภาพสามารถแสดงได้ปกติ
แต่มีปัญหาตรงที่ หากเราไม่กดเลือกรูป แต่ทำการกดปุ่มอัปเดตข้อมูล ระบบจะไม่มีบันทึกชื่อปัจจุบันของรูปภาพในฟิลด์นั้นกลับไปยังฐานข้อมูล ระบบจะแรนด้อมชื่อใหม่ทันที ทำให้พอเปิดดูรูปก็จะไม่แสดงรูปค่ะ เพราะว่าในโฟลเดอร์ที่เก็บรูปภาพไม่มีรูปที่ชื่อตรงกันกับฐานข้อมูล
อยากจะทราบแนวทางแก้ไขค่ะเพราะสเตปที่ใช้ตอนนี้คือ หากค่าในช่องที่เก็บชื่อภาพที่เราเลือกนั้น != ให้ดำเนินการเปลี่ยนชื่อรูปภาพและนำชื่อใหม่ไปเก็บไว้ในตัวแปร $newnameนำค่าในตัวแปรนี้ไปเก็บในฐานข้อมูล และก็อปปี้ภาพไปยังโฟลเดอร์ที่เรากำหนดไว้ แต่ถ้าเป็นelse(ค่าในช่องที่เก็บชื่อภาพเท่ากับค่าว่าง)ให้ตั้งค่า $newname = ตัวแปรที่echoออกมาก่อนหน้านี้เพื่อแสดงรูปภาพ (ตัวอย่างตามภาพด้านล่าง อันนี้คือที่ทำไว้เพื่อให้ผู้ใช้เห็นรูปที่อัพโหลดไปก่อนหน้านี้) รบกวนช่วยชี้แนะทางแก้ไขและข้อผิดพลาดที่เกิดขึ้นด้วยค่ะ ว่าผิดพลาดตรงไหน
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ดูและแก้ไขรายละเอียดของชมรม</title>
<!--bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- ckeditor-->
<script src="//cdn.ckeditor.com/4.6.2/standard/ckeditor.js"></script>
</head>
<head>
<link href="dist/css/bootstrap-datepicker.css" rel="stylesheet" />
<script src="dist/js/bootstrap-datepicker-custom.js"></script>
<script src="dist/locales/bootstrap-datepicker.th.min.js" charset="UTF-8"></script>
</head>
<?php
include("connect.php");
include "MenuBar_Club Leader.php";
?>
<script type="text/javascript">
function autoTab(obj){
var pattern=new String("__/__/____"); // กำหนดรูปแบบในนี้
var pattern_ex=new String("/"); // กำหนดสัญลักษณ์หรือเครื่องหมายที่ใช้แบ่งในนี้
var returnText=new String("");
var obj_l=obj.value.length;
var obj_l2=obj_l-1;
for(i=0;i<pattern.length;i++){
if(obj_l2==i && pattern.charAt(i+1)==pattern_ex){
returnText+=obj.value+pattern_ex;
obj.value=returnText;
}
}
if(obj_l>=pattern.length){
obj.value=obj.value.substr(0,pattern.length);
}
}
</script>
<body>
<?php
$ID_club = $_GET['editdetails'];//รับค่า ID_Club
$result = mysqli_query($conn," SELECT *
FROM club_information
WHERE ID_Club = '$ID_club'");
if (is_object($result)) {
while($row= mysqli_fetch_array($result)) {
$id_club = $row['ID_Club'];
$nameclub = $row['Name_Club'];
$Club_description = $row['Club_description'];
$img_club = $row['img_logo_club'];
$ID_head_Club = $row['ID_head_Club'];
$Exp_Date = $row['Exp_Date'];
$Current_state = $row['Current_state'];
$type_culb = $row['type'];
$name_bank = $row['name_bank'];
$name_payee = $row['name_payee'];
$number_bank = $row['number_bank'];
$scan_bank_img = $row['scan_bank_img'];
$amout_to_join = $row['amout_to_join'];
$name_Advisor = $row['name_Advisor'];
$name_Advisor2 = $row['name_Advisor2'];
$name_Advisor3 = $row['name_Advisor3'];
$name_board = $row['name_board'];
$name_board2 = $row['name_board2'];
$treasurer = $row['treasurer'];
$Club_detail = $row['Club_detail'];
$img1 = $row['img1'];
$img2 = $row['img2'];
$img3 = $row['img3'];
$img4 = $row['img4'];
$img5 = $row['img5'];
$path = 'images/'; //---->เช่น 'images/';
}}
?>
<div class="container">
<div class="row">
<div class="col-md-12">
<form action="update edit detail club from club leader_to_DB.php" method="POST" enctype="multipart/form-data" name="addform" class="form-horizontal" id="addform">
<div class="form-group">
<div class="col-sm-2"></div>
<div class="col-sm-8">
<b> ดูและแก้ไขรายละเอียดของชมรม</b>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รหัสไอดีชมรม : </div>
<div class="col-sm-8" align="left">
<input name="id_club" id="id_club" required class="form-control" ReadOnly="True"value="<?php echo $id_club ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> ชื่อชมรม : </div>
<div class="col-sm-8" align="left">
<input name="name_Club" id="name_Club" required class="form-control" value="<?php echo $nameclub ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รหัสนักศึกษาประธานชมรม : </div>
<div class="col-sm-8" align="left">
<input name="ID_head_Club" id="ID_head_Club " required class="form-control" ReadOnly="True" value="<?php echo $ID_head_Club ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รหัสนักศึกษารองประธานชมรมคนที่ 1 : </div>
<div class="col-sm-8" align="left">
<input name="name_board" id="name_board" required class="form-control" value="<?php echo $name_board ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รหัสนักศึกษารองประธานชมรมคนที่ 2 : </div>
<div class="col-sm-8" align="left">
<input name="name_board2" id="name_board2" required class="form-control" value="<?php echo $name_board2 ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รหัสนักศึกษาเหรัญญิก : </div>
<div class="col-sm-8" align="left">
<input name="treasurer" id="treasurer" required class="form-control" value="<?php echo $treasurer ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> วัตถุประสงค์ชมรม : </div>
<div class="col-sm-8" align="left">
<textarea cols="80" id="des_club" name="des_club" rows="10" class="ckeditor" ><?php echo $Club_description;?></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> รายละเอียดชมรม : </div>
<div class="col-sm-8" align="left">
<textarea cols="80" id="detail_club" name="detail_club" rows="10" class="ckeditor" ><?php echo $Club_detail;?></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> ภาพเพิ่มเติม : </div>
<div class="col-sm-8" align="left">
<img src="images/<?php echo $img1 ?>" width="200" height="100"/>
<input type="file" name="img1_new" id="img1_new" class="form-control" >
<br></br>
<img src="images/<?php echo $img2 ?>" width="200" height="100"/>
<input type="file" name="img2_new" id="img2_new" class="form-control" >
<br></br>
<img src="images/<?php echo $img3 ?>" width="200" height="100"/>
<input type="file" name="img3_new" id="img3_new" class="form-control" >
<br></br>
<img src="images/<?php echo $img4 ?>" width="200" height="100"/>
<input type="file" name="img4_new" id="img4_new" class="form-control" >
<br></br>
<img src="images/<?php echo $img5 ?>" width="200" height="100"/>
<input type="file" name="img5_new" id="img5_new" class="form-control" >
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> วันหมดอายุชมรม : </div>
<div class="col-sm-8" align="left">
<input id="date" name="date" type="text" onkeyup="autoTab(this)" ReadOnly="True" value="<?php echo $Exp_Date ?>"> ปี(พ.ศ.)/เดือน/วัน
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> สถานะปัจจุบัน : </div>
<div class="col-sm-8" align="left">
<input name="Current_state" id="Current_state" required class="form-control" ReadOnly="True" value="<?php echo $Current_state?>"/>
</div>
</div>
<div class="form-group">
<div class="form-group">
<div class="col-sm-2" align="right">ประเภทของชมรม : </div>
<div class="col-sm-4" align="left">
<select name="type_club" value="">
<option value="<?php echo $type_culb ?>"> ประเภทปัจจุบัน : <?php echo $type_culb ?></option>
<option value="วิชาการ">วิชาการ</option>
<option value="ศิลปวัฒนธรรม">ศิลปวัฒนธรรม</option>
<option value="บำเพ็ญประโยชน์">บำเพ็ญประโยชน์</option>
<option value="กีฬาและนันทนาการ">กีฬาและนันทนาการ</option>
</select>
</div> </div> </div>
<div class="form-group">
<div class="col-sm-2" align="right"> อาจารย์ที่ปรึกษาชมรม : </div>
<div class="col-sm-8" align="left">
<input name="name_Advisor" id="name_Advisor" required class="form-control" value="<?php echo $name_Advisor?>"/>
<input name="name_Advisor2" id="name_Advisor2" class="form-control" value="<?php echo $name_Advisor2?>"/>
<input name="name_Advisor3" id="name_Advisor3" class="form-control" value="<?php echo $name_Advisor3?>"/>
</div>
</div>
<h3><strong>รายละเอียดด้านการโอนเงิน </strong></h3>
<div class="form-group">
<div class="col-sm-2" align="right"> ชื่อธนาคาร : </div>
<div class="col-sm-8" align="left">
<input name="name_bank" id="name_bank" required class="form-control" value="<?php echo $name_bank ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> ชื่อบัญชีผู้รับโอน : </div>
<div class="col-sm-8" align="left">
<input name="name_payee" id="name_payee" required class="form-control" value="<?php echo $name_payee ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> หมายเลขบัญชีธนาคาร : </div>
<div class="col-sm-8" align="left">
<input name="number_bank" id="number_bank" required class="form-control" value="<?php echo $number_bank ?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> ชำระผ่าน QR Code : </div>
<div class="col-sm-3" align="left">
<input type="file" name="img_scan_money_new" id="img_scan_money_new" >
<img src="images/<?php echo $scan_bank_img ?>" width="200" height="100"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2" align="right"> จำนวนเงิน : </div>
<div class="col-sm-8" align="left">
<input name="amout_to_join" id="amout_to_join" required class="form-control" value="<?php echo $amout_to_join?>"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-2"> </div>
<div class="col-sm-6">
<button type="submit" class="btn btn-primary" id="btn"> บันทึกการแก้ไขข้อมูลชมรม
</button>
<a href="show article full_Club Leader.php?ID_Club=<?= $ID_club ?>" class="btn btn-primary" >ย้อนกลับ</a>
<input type="hidden" name="cerrent_img1" id="cerrent_img1" value="<?php echo $img1 ?>">
<input type="hidden" name="cerrent_img2" id="cerrent_img2" value="<?php echo $img2 ?>">
<input type="hidden" name="cerrent_img3" id="cerrent_img3" value="<?php echo $img3 ?>">
<input type="hidden" name="cerrent_img4" id="cerrent_img4" value="<?php echo $img4 ?>">
<input type="hidden" name="cerrent_img5" id="cerrent_img5" value="<?php echo $img5 ?>">
<input type="hidden" name="cerrent_scan" id="cerrent_scan" value="<?php echo $scan_bank_img ?>">
</div>
</div>
</form> </div>
</div>
</div>
<div class="wrapper row5">
<div id="copyright" class="hoc clear">
<!-- ################################################################################################ -->
<p class="fl_left">Copyright © 2017 - All Rights Reserved - <a href="#">Domain Name</a></p>
<p class="fl_right">Template by <a target="_blank" href="http://www.os-templates.com/" title="Free Website Templates">OS Templates</a></p>
<!-- ################################################################################################ -->
</div>
</div>
<!-- ################################################################################################ -->
<!-- ################################################################################################ -->
<!-- ################################################################################################ -->
<a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
<!-- JAVASCRIPTS -->
<script src="layout/scripts/jquery.min.js"></script>
<script src="layout/scripts/jquery.backtotop.js"></script>
<script src="layout/scripts/jquery.mobilemenu.js"></script>
</body>
</html>
ไฟล์บันทึกไปยังฐานข้อมูล
Code (PHP)
<!doctype html>
<?php
require_once('connect.php');
session_start(); //รับค่าไอดียุเซอจากตอนล้อกอิน
//Set ว/ด/ป เวลา ให้เป็นของประเทศไทย
date_default_timezone_set('Asia/Bangkok');
//สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด
$date1 = date("Ymd_His");
//สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
$numrand = (mt_rand());
$numrand1 = (mt_rand());
$numrand2 = (mt_rand());
$numrand3 = (mt_rand());
$numrand4 = (mt_rand());
$numrand5 = (mt_rand());
//รับชื่อไฟล์จากฟอร์ม
$id_club = $_POST['id_club'];
$nameclub = $_POST['name_Club'];
$name_board = (isset($_POST['name_board']) ? $_POST['name_board'] : '');
$name_board2 = (isset($_POST['name_board2']) ? $_POST['name_board2'] : '');
$treasurer = (isset($_POST['treasurer']) ? $_POST['treasurer'] : '');
$des_club = $_POST['des_club'];
$detail_club = $_POST['detail_club'];
$type_club = $_POST['type_club'];
$name_Advisor = $_POST['name_Advisor'];
$name_Advisor2 = $_POST['name_Advisor2'];
$name_Advisor3 = $_POST['name_Advisor3'];
$name_bank = $_POST['name_bank'];
$name_payee = $_POST['name_payee'];
$number_bank = $_POST['number_bank'];
$amout_to_join = (isset($_POST['amout_to_join']) ? $_POST['amout_to_join'] : '');
$img_scan_money_new = (isset($_POST['img_scan_money_new']) ? $_POST['img_scan_money_new'] : '');
$cerrent_scan = $_POST['cerrent_scan'];
$img1_new = (isset($_POST['img1_new']) ? $_POST['img1_new'] : '');
$cerrent_img1 = $_POST['cerrent_img1'];
$img2_new = (isset($_POST['img2_new']) ? $_POST['img2_new'] : '');
$cerrent_img2 = $_POST['cerrent_img2'];
$img3_new = (isset($_POST['img3_new']) ? $_POST['img3_new'] : '');
$cerrent_img3 = $_POST['cerrent_img3'];
$img4_new = (isset($_POST['img4_new']) ? $_POST['img4_new'] : '');
$cerrent_img4 = $_POST['cerrent_img4'];
$img5_new = (isset($_POST['img5_new']) ? $_POST['img5_new'] : '');
$cerrent_img5 = $_POST['cerrent_img5'];
//ภาพคิวอาร์โค้ดรับเงิน
$upload=$_FILES['img_scan_money_new'];
if($upload !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type = strrchr($_FILES['img_scan_money_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname =$numrand.$date1.$type;
$path_copy=$path.$newname;
$path_link="images/".$newname;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img_scan_money_new']['tmp_name'],$path_copy); }
else
{
$newname = $cerrent_scan;
}
//img1
$upload2=$_FILES['img1_new'];
if($upload2 !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type2 = strrchr($_FILES['img1_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname2 =$numrand1.$date1.$type2;
$path_copy2=$path.$newname2;
$path_link="images/".$newname2;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img1_new']['tmp_name'],$path_copy2); }
else
{
$newname2 = $cerrent_img1;
}
//img2
$upload3=$_FILES['img2_new'];
if($upload3 !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type3 = strrchr($_FILES['img2_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname3 =$numrand2.$date1.$type3;
$path_copy3=$path.$newname3;
$path_link="images/".$newname3;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img2_new']['tmp_name'],$path_copy3); }
else
{
$newname3 = $cerrent_img2;
}
//img3
$upload4=$_FILES['img3_new'];
if($upload4 !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type4 = strrchr($_FILES['img3_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname4 =$numrand3.$date1.$type4;
$path_copy4=$path.$newname4;
$path_link="images/".$newname4;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img3_new']['tmp_name'],$path_copy4); }
else
{
$newname4 = $cerrent_img3;
}
//img4
$upload5=$_FILES['img4_new'];
if($upload5 !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type5 = strrchr($_FILES['img4_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname5 =$numrand4.$date1.$type5;
$path_copy5=$path.$newname5;
$path_link="images/".$newname5;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img4_new']['tmp_name'],$path_copy5); }
else
{
$newname5 = $cerrent_img4;
}
//img5
$upload6=$_FILES['img5_new'];
if($upload6 !='') {
//โฟลเดอร์ที่เก็บไฟล์
$path="images/";
//ตัวขื่อกับนามสกุลภาพออกจากกัน
$type6 = strrchr($_FILES['img5_new']['name'],".");
//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname6 =$numrand5.$date1.$type6;
$path_copy6=$path.$newname6;
$path_link="images/".$newname6;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['img5_new']['tmp_name'],$path_copy6); }
else
{
$newname6 = $cerrent_img5;
}
$sql = "UPDATE club_information SET Name_Club='$nameclub' ,
Club_description = '$des_club' ,
type = '$type_club' ,
name_bank = '$name_bank' ,
name_payee = '$name_payee',
number_bank = '$number_bank' ,
scan_bank_img = '$newname' ,
amout_to_join = '$amout_to_join' ,
name_Advisor = '$name_Advisor' , name_Advisor2 = '$name_Advisor2', name_Advisor3 = '$name_Advisor3' , name_board = '$name_board' , name_board2 = '$name_board2', treasurer = '$treasurer' ,
Club_detail = '$detail_club' ,
img1 = '$newname2' , img2 = '$newname3' , img3 = '$newname4', img4 = '$newname5' , img5 = '$newname6'
WHERE ID_Club ='$id_club'";
$result = mysqli_query($conn,$sql) or die ("Error in query: $sql " . mysqli_error($conn,$sql));
if($result)
{
echo "<script type='text/javascript'>";
echo "alert('แก้ไขข้อมูลเรียบร้อย');";
echo "window.location='MyClub_Club Leader.php';";
echo "</script>";
}
else{
echo "<script type='text/javascript'>";
echo "alert('เกิดข้อผิดพลาดกรุณาตรวจสอบข้อมูลอีกครั้ง');";
echo "window.location='MyClub_Club Leader.php';";
echo "</script>";
}
?>
Tag : PHP, C
|
|
|
|
|
|
Date :
2020-11-10 08:07:06 |
By :
TleCena |
View :
1207 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไมก่อนจะเรียกใช้ตัวแปรไม่เอาเงื่อนไขมาเช็คซะก่อนล่ะ?
$_FILES ถ้าลองทำฟอร์มเล่นๆดูแล้วลอง submit โดยไม่เลือกไฟล์อะไรเลยมันเป็นยังไง ลองดูซิ
จู่ๆก็ไปเรียกเหมือนกับว่ามันมีอยู่ได้ยังไง?
นี่ยังไม่นับว่าทำการ move uploaded โดยไม่ตรวจประเภทไฟล์เลยอีก ความปลอดภัยติดลบ!
|
|
|
|
|
Date :
2020-11-11 01:11:35 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ได้เรียบร้อยแล้วนะคะ ปรากฏว่าลืมใส่ [name] ที่บรรทัด55และบรรทัดอื่นอีก5บรรทัด
|
|
|
|
|
Date :
2020-11-11 07:41:50 |
By :
TT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|