สอบถามเกี่ยวกับการ upload file PHP+MySQL หน่อยครับ
มันขึ้นแบบนี้อะครับ เหมือนมันไม่รู้จัก filupload กับ newname แต่ผมก็กำหนดไปแล้วนะครับ ต้องทำยังไงครับ ผู้รู้ช่วยดูให้หน่อยนะครับ
Notice: Undefined index: filupload in C:\xampp\htdocs\project2\save_contact.php on line 7
Notice: Undefined variable: newname in C:\xampp\htdocs\project2\save_contact.php on line 33
save_contact.php
<?php
include('conn.php');
$topic = $_POST["topic"];
$mail = $_POST["email"];
$des = $_POST["des"];
$fileupload = $_REQUEST['filupload'];
$upload = $_FILES['filupload'];
if($upload <> '') { //not select file
//โฟลเดอร์ที่จะ upload file เข้าไป
$path="fileupload/";
//เอาชื่อไฟล์ที่มีอักขระแปลกๆออก
$remove_these = array(' ','`','"','\'','\\','/','_');
$newname = str_replace($remove_these, '', $_FILES['filupload']['name']);
//ตั้งชื่อไฟล์ใหม่โดยเอาเวลาไว้หน้าชื่อไฟล์เดิม
$newname = time().'-'.$newname;
$path_copy=$path.$newname;
$path_link="fileupload/".$newname;
//คัดลอกไฟล์ไปเก็บที่เว็บเซริ์ฟเวอร์
move_uploaded_file($_FILES['fileupload']['tmp_name'],$path_copy);
}
// เพิ่มไฟล์เข้าไปในตาราง uploadfile
$sql = "INSERT INTO tbl_inform (inform_name, inform_description, inform_email)
VALUES('$topic', '$des', '$mail')";
$result = mysqli_query($con, $sql) or die ("Error in query: $sql " . mysqli_error());
$sql2 = "INSERT INTO tbl_inform_image (inform_filename)
VALUES('$newname')";
$result2 = mysqli_query($con, $sql2) or die ("Error in query: $sql2 " . mysqli_error());
//ปิดการเชื่อมต่อ database
mysqli_close($con);
//จาวาสคริปแสดงข้อความเมื่อบันทึกเสร็จและกระโดดกลับไปหน้าโฮม
if($result2){
echo "<script type='text/javascript'>";
echo "alert('บันทึกข้อมูลเสร็จสิ้น');";
echo "window.location = '#'; ";
echo "</script>";
}
else{
echo "<script type='text/javascript'>";
echo "alert('Error!!');";
echo "</script>";
}
?>
อันนี้หน้า form ครับ
contact.php
<html>
<head>
<title>Home</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="main/css/bootstrap.min.css">
<link rel="stylesheet" href="main/css/main.css"/>
</head>
<body class="landing">
<!-- Header -->
<header id="header" class="alt">
<h1><a href="index.html">FAQ : IT Device</a></h1>
<a href="#nav">Menu</a>
</header>
<!-- Nav -->
<nav id="nav">
<ul class="links">
<li><a href="login.php">Login</a></li>
<li><a href="reg.php">Register</a></li>
</ul>
</nav>
<!-- Banner -->
<section id="banner">
<i class="icon fa fa-home"></i>
<h2>Contact</h2>
<p></p>
<ul class="actions">
<li><a href="index.php" class="button big special">Back to Home</a></li>
</ul>
</section>
<!-- One -->
<section id="one" class="wrapper style1">
<div class="inner">
<form name="contact" method="post" action="save_contact.php">
<div class="form-group">
<label for="topic" class="col-form-label">Issue Topic</label>
<input id="topic" name="topic" type="text" class="form-control">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input id="email" name="email" type="email" placeholder="
[email protected] " class="form-control">
</div>
<div class="form-group">
<label for="des">Description</label>
<textarea class="form-control" id="description" name="des" rows="10"></textarea>
</div>
<div class="custom-file mb-3">
<input type="file" class="custom-file-input" id="filupload" name="filupload">
<input type="hidden" id="hdnOldFile" name="hdnOldFile" value="<?php echo $objResult["inform_filename"];?>">
<label class="custom-file-label" for="filupload">Upload Image</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</section>
<!-- Footer -->
<footer id="footer">
<div class="inner">
<ul class="icons">
<li><a href="#" class="icon fa-facebook">
<span class="label">Facebook</span>
</a></li>
<li><a href="#" class="icon fa-twitter">
<span class="label">Twitter</span>
</a></li>
<li><a href="#" class="icon fa-instagram">
<span class="label">Instagram</span>
</a></li>
<li><a href="#" class="icon fa-linkedin">
<span class="label">LinkedIn</span>
</a></li>
</ul>
<ul class="copyright">
<li>© Untitled.</li>
<li>Images: <a href="http://unsplash.com">Unsplash</a>.</li>
<li>Design: <a href="http://templated.co">TEMPLATED</a>.</li>
</ul>
</div>
</footer>
<!-- Scripts -->
<script src="main/js/jquery.min.js"></script>
<script src="main/js/bootstrap.min.js"></script>
<script src="main/js/skel.min.js"></script>
<script src="main/js/util.js"></script>
<script src="main/js/main.js"></script>
</body>
</html>
ส่วนอันนี้ table ครับ
Tag : PHP, MySQL, HTML, XAMPP
Date :
2020-01-21 15:47:40
By :
rooney11115
View :
1035
Reply :
17
Copy Paste มารึเปล่าครับ ?? น่าจะศึกษาและเขียนเองมากกว่านะครับจะได้ความรู้เพิ่มเติม
- enctype
Code (PHP)
<form name="contact" method="post" action="save_contact.php" enctype="multipart/form-data">
- แล้วก็ควรเปลี่ยนจาก $_REQUEST เป็น $_FILES
- เช็ค isset ก่อนรับค่าตัวแปร
Date :
2020-01-21 15:58:35
By :
Genesis™
concept คือจะทำอะไรครับ ??
Date :
2020-01-21 18:42:24
By :
Genesis™
เปลี่ยน schema ใหม่
tb_inform [id (primarykey,auto),name,descriptio,email]
ib_image[id(primarykey,auto),inform_id ,name]
เมื่อ insert ตารางin_form ดึงค่า insertล่าสุด $last_id = mysqli_insert_id($conn) ไปลง tb_image[inform_id]
Date :
2020-01-22 09:37:31
By :
Genesis™
tinyInt
Date :
2020-01-22 12:55:55
By :
Chaidhanan
บันทัด 136
<table id="example4" class="table table-striped table-bordered" style="width:100%">
ทดสอบ data ยังไม่ต้องใส่ class แก้เป็น
<table xid="example4" xclass="table table-striped table-bordered" style="width:100%">
ไว้ข้อมูลโชว์แล้วค่อยแก้เป็นแบบเดิม
//----------------------------------------
บันทัด 142.
$query = "SELECT * FROM tbl_inform" or die("Error:" . mysqli_error());
$result = mysqli_query($con, $query);
โค๊ดข้างบน ไม่ได้ประโยชน์ แก้เป็น
$query = "SELECT * FROM tbl_inform";
$result = mysqli_query($con, $query) or die("Error:" . mysqli_error());
//----------------------------------------
while($row = mysqli_fetch_array($result)) {
เมื่อใช้ oop แล้วก็ควรเขียนแบบ oop เพราะ ใกล้จะ deprecate อยู่แล้ว หลายรุ่นก็ deprecate ไปแล้ว แก้เป็น
while($row = $result->fetch_object()) {
//----------------------------------------
รูปแบบการ echo แบบสั้น และการอ้างอิงตัวแปรสำหรับ oop
<td><?=$row->inform_name ?></td>
ประวัติการแก้ไข 2020-01-22 16:11:34
Date :
2020-01-22 16:10:02
By :
Chaidhanan
ก็บอกให้ใช้ tinyint ไงครับ และ where clause ไม่มี มันอัพเดท ทั้งตารางเลยนะจะบอกให้
$query_b = "UPDATE tbl_inform SET inform_status='Approve'";
$query_b = "UPDATE tbl_inform SET inform_status='Reject'";
แก้เป็น
$query_b = "UPDATE tbl_inform SET inform_status=1 where id = xxx";
$query_b = "UPDATE tbl_inform SET inform_status=0 where id = xxx";
และก็สิ่งที่บอกไปแก้ไขซะก่อนดีไหม โค๊ดมันยังเขียนผิดรูปแบบอยู่เลย
แก้ไขแล้วเอาโค๊ดมาลงใหม่
ไม่อยากจะว่าหรอกนะ แต่โค๊ดแบบนี้มันเขียนโดยไม่คิดวิเคราะห์และแยกแยะ(อย่าใส่เป็นคำย่อล่ะ 55555)
Date :
2020-01-23 12:14:16
By :
Chaidhanan
Load balance : Server 01