ดูโค๊ด ลบไฟล์ ในฐานข้อมูลกับไล์ในโฟลเดอร์โดยใช้ unlink ทีครับมันผิดตรงไหนอ่ะครับ
บรรทัดที่ 9 ครับ เปลียนจาก . เป็น + ครับ แล้วลอง echo $strSQL ออกมาดูครับว่ามีค่าหรือป่าว
Date :
2010-11-22 22:17:04
By :
kanchen
มันก็ฟ้องว่า
Error Delete [0]
ทั้งๆที่มีข้อมูลอยู่นะครับ
ลองดูcode 2ไฟล์เลยนะครับ
อันนี้จากฟอร์มครับ
Code (PHP)
<html>
<head>
<title>Insert</title>
<link href="../soundmanager/soundmanagerv297a-20101010/demo/mp3-player-button/css/mp3-player-button.css" rel="stylesheet" type="text/css">
</head>
<body>
<form action="phpMySQLAddSave.php" name="frmAdd" method="post" enctype="multipart/form-data">
<table width="471" border="1">
<tr>
<th width="91"> <div align="center">Files </div></th>
<th width="160"> <div align="center">Song </div></th>
<th width="198"> <div align="center">Album </div></th>
<th width="198"> <div align="center">Music </div></th>
</tr>
<tr>
<td><div align="center"><input type="file" name="Files"></div></td>
<td><input type="text" name="txtSong" size="20"></td>
<td><input type="text" name="txtAlbum" size="20"></td>
<td><input type="file" name="Music"></td>
</tr>
</table>
<input type="submit" name="submit" value="submit">
</form>
<a href="phpMySQLEditRecordList.php">Edite</a>
<a href="../soundmanager/soundmanagerv297a-20101010/demo/jsAMP-preview/audio/office_lobby.mp3" title="Play "Office Lobby"" class="sm2_button">Office Lobby</a>
</body>
</html>
อันนี้ โปรแกรมdeleteครับ แก้อย่างที่บอกแล้ว
Code (PHP)
<html>
<head>
<title>Delete</title>
</head>
<body>
<?
include('../connect/connect.php');
$strSQL = "DELETE FROM customer ";
$strSQL +="WHERE Files = '"+$_GET["CusID"]+"' ";
$objQuery = mysql_query($strSQL);
$flgDelete = @unlink($_FILES["Files"]["tmp_name"],"myfile/".$_FILES["Files"]["name"]);
if($objQuery AND $flgDelete)
{
echo "Record Deleted.";
}
else
{
echo "Error Delete [".$strSQL."]";
}
mysql_close($objconnect);
?>
</body>
</html>
Date :
2010-11-23 07:44:17
By :
kenghockey
คุณลอง select ข้อมูลมันมาก่อนครับแล้วใช้คำสั่ง unlink ต่อด้วยคำสั่ง delete(มันเป็นวิธีแก้ปัญหาเบื้องต้นของผมเองครับ)
Date :
2010-11-23 09:54:57
By :
Dragons_first
ถ้าแบบนั้นมันจะลบไฟล์ ก่อน ลบฐานข้อมูลรึป่าวครับ หรือว่ามันจะไปดูเงื่อนไข
เพราะผมทําตาม ของเว็บคือ หน้าที่ให้เลือก ว่าจะ แก้ไข หรือจะลบ นั้นมัน select * from customer มาแล้ว แล้วส่วนถ้าต้องการลบให้กดปุ่มลบโดยจะเข้า โปรแกรมดูจากโค๊ดครับ
Code (PHP)
<?
include('../connect/connect.php');
$strSQL = "SELECT * FROM customer";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
Code (PHP)
<td align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='phpMySQLDeleteRecord.php?CusID=<?=$objResult["Music"];?>';}">Delete</a></td>
แต่ที่สงสัยตรงนี้ผิดหรือถูกครับ เพราะว่าฟิลเป็นชื่อ Files
Code (PHP)
'"+$_GET["CusID"]+"' ";
[CusID] จะต้องเปลี่ยนเป็นFilesไหม
ประวัติการแก้ไข 2010-11-23 10:39:06 2010-11-23 10:40:07 2010-11-23 10:42:29
Date :
2010-11-23 10:33:35
By :
kenghockey
ใส่ where สิครับ
Date :
2010-11-23 11:03:50
By :
Dragons_first
มันมีตรงนี้แล้วไม่ร่ายสักกะที
Code (PHP)
$strSQL ="WHERE Files = '"+$_GET["CusID"]+"' ";
Code (PHP)
ส่วน $_FILES["Files"]["tmp_name"],"myfile/".$_FILES["Files"]["name"]
เอามาจาก ของไฟล์ save.phpครับ
Code (PHP)
if(copy($_FILES["Files"]["tmp_name"],"myfile/".$_FILES["Files"]["name"]))
มันจะผิดรึป่าวครับ
คิดไม่ออกจริงมันงงว่ากําหนด ให้Where ไปที่ ฟิล ชื่อ Files มันก็ยังerror มันผิดตรงไหนยังไงครับ
ประวัติการแก้ไข 2010-11-23 11:47:33 2010-11-23 11:49:05
Date :
2010-11-23 11:27:41
By :
kenghockey
กำใครเขาเขียนกันอย่างนี้
<?
include('../connect/connect.php');
$strSQL = "SELECT * FROM customer WHERE Files = '"+$_GET["CusID"]+"' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
Date :
2010-11-23 11:48:39
By :
Dragons_first
อันนี้เป็นตัวอย่าง
$id =$_GET["id"];
if($_REQUEST["id"]){
$sql = "select image from table_name where id='$id' ";
$result = mysql_query($sql,$dbcon);
$array = mysql_fetch_array($result);
@unlink("../images/$array[image]");
$sql_del = "delete from groups where id = '$id' ";
$result_del = mysql_query($sql_del,$dbcon) or die (mysql_error());
if($result_del){
?>
<script>
window.location="group_product.php";
</script>
<?
}
else
{
?>
<script>
window.location="group_product.php";
</script>
<?
}}
?>
Date :
2010-11-23 11:50:00
By :
Dragons_first
ทําเหมือนตัวอย่างก็ไม่ได้ครับ มันฟ้องว่าerror query[0]
อธิบายเลยได้ไหมครับจะได้รู้วิธีทํางานแต่ละบรรทัด อยางนี้จะเข้าใจหน่อย
Code (PHP)
@unlink("../images/$array[image]");
ของผมต้องใส่ยังไงครับ
<html>
<head>
<title>Delete</title>
</head>
<body>
<?
include('../connect/connect.php');
$strSQL = "SELECT * FROM customer WHERE Files = '"+$_GET["CusID"]+"' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$flgDelete = @unlink($_FILES["Files"]["tmp_name"],"myfile/".$_FILES["Files"]["name"]);
$strSQL_del = "DELETE FROM customer WHERE Files = '"+$_GET["CusID"]+"' ";
$result_del = mysql_query($strSQL_del) or die ("Error Query [".$strSQL."]");
if($result_del AND $flgDelete)
{
echo "Record Deleted.";
}
else
{
echo "Error Delete [".$strSQL."]";
}
mysql_close($objconnect);
?>
</body>
</html>
ประวัติการแก้ไข 2010-11-23 13:31:10 2010-11-23 13:43:02
Date :
2010-11-23 13:30:11
By :
kenghockey
$flgDelete = unlink("myfile/".$_FILES["Files"]["name"]);
Date :
2010-11-23 13:36:25
By :
ultrasiam
ก็ขึ้นแบบนี้อ่ะ
Warning: unlink(myfile/) [function.unlink]: Permission denied in C:\AppServ\www\keng\admin\Edit\phpMySQLDeleteRecord.php on line 11
Error Delete [0]
Date :
2010-11-23 13:46:21
By :
kenghockey
อ่าน error ค่ะ
Warning: unlink(myfile/) [function.unlink]: Permission denied in C:\AppServ\www\keng\admin\Edit\phpMySQLDeleteRecord.php on line 11
file ที่จะลบอยู่ที่ myfile/ ไหม?
ชื่อไฟล์ที่จะลบมาถูกต้องหรือเปล่า?
folder ติด permission ไหม?
ตรวจสอบดู
Date :
2010-11-23 13:51:15
By :
ultrasiam
ลองดูโค๊ดทั้งหมดเลยดีกว่า ว่าผิดตรงไหนอธิบายให้ทีแล้วแก้ไขให้ทีนะครับ ผมจะได้สอนตัวเองไปในตัวด้วย
connect.php
Code (PHP)
<?php
$objhost="localhost";
$objuser="root";
$objpassword="keng";
$objdb="admin";
$objconnect=mysql_connect("$objhost","$objuser","$objpassword","$objdb") or die ("ติดต่อฐานข้อมูลไม่ได้");
$objDB = mysql_select_db("$objdb");
?>
code ฟอร์มเลือกจะ แก้ไข หรือลบ ตารางไหนออก
Code (PHP)
<html>
<head>
<title>Edit</title>
</head>
<body>
<?
include('../connect/connect.php');
$strSQL = "SELECT * FROM customer";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Files </div></th>
<th width="98"> <div align="center">Song </div></th>
<th width="198"> <div align="center">Album </div></th>
<th width="91"> <div align="center">Music </div></th>
<th width="30"> <div align="center">Edit </div></th>
<th width="30"> <div align="center">Delete </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["Files"];?></div></td>
<td><?=$objResult["Song"];?></td>
<td><?=$objResult["Album"];?></td>
<td><?=$objResult["Music"];?></td>
<td><div align="center"><a href="phpMySQLEditRecordForm.php?CusID=<?=$objResult["Files"];?>">Edit</a></div></td>
<td align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='phpMySQLDeleteRecord.php?CusID=<?=$objResult["Files"];?>';}">Delete</a></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objconnect);
?><br><br><br>
<a href="phpMySQLAddForm.php">Back insert</a>
</body>
</html>
code delete
Code (PHP)
<html>
<head>
<title>Delete</title>
</head>
<body>
<?
include('../connect/connect.php');
$strSQL = "DELETE FROM customer ";
$strSQL +="WHERE Files = '"+$_GET["CusID"]+"' ";
$objQuery = mysql_query($strSQL);
$flgDelete = unlink("myfile/".$_FILES["Files"]["name"]);
if($objQuery AND $flgDelete)
{
echo "Record Deleted.";
}
else
{
echo "Error Delete [".$strSQL."]";
}
mysql_close($objconnect);
?>
</body>
</html>
code save อันนี้ ถ้าsubmit จากฟอร์มจะ action มาไฟล์นี้นะครับ
Code (PHP)
<html>
<head>
<title>Upload</title>
</head>
<body>
<?
if($_POST){
if(copy($_FILES["Files"]["tmp_name"],"myfile/".$_FILES["Files"]["name"]) AND copy($_FILES["Music"]["tmp_name"],"mymusic/".$_FILES["Music"]["name"]))
{
include('../connect/connect.php');
$strSQL = "INSERT INTO customer";
$strSQL .="(Files,Song,Album,Music) ";
$strSQL .="VALUES ";
$strSQL .="('".$_FILES["Files"]["name"]."' ";
$strSQL .=",'".$_POST["txtSong"]."','".$_POST["txtAlbum"]."','".$_FILES["Music"]["name"]."') ";
$objQuery = mysql_query($strSQL);
}
if($objQuery)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$strSQL."]";
}
mysql_close($objconnect);
}
?>
</body>
</html>
Date :
2010-11-23 13:53:31
By :
kenghockey
folder ติด permission ไหม?
เครื่องผมไม่ได้ลงป้องกันไวรัสครับ
file ที่จะลบอยู่ที่ myfile/ ไหม?
อยู่ครับ
แล้วไฟล์ code ที่เขียนก็ อยู่ dir เด๊่ยวกับ myfileครับ
Date :
2010-11-23 13:58:07
By :
kenghockey
ลอง echo "myfile/".$_FILES["Files"]["name"]; ดูค่ะ ว่าได้อะไรมา
Date :
2010-11-23 14:00:53
By :
ultrasiam
แล้วแก้ยังไงครับ ขอวิธีหน่อยครับ ถือว่าสอนคนครับ
Date :
2010-11-23 14:36:08
By :
kenghockey
อันนี้เป็นcode ไฟล์ deleteครับที่ผมทําการแก้ไขแต่เวลารันแล้วมันจะขึ้น ฟ้องเรื่องpermission
Code (PHP)
<html>
<head>
<title>Delete</title>
</head>
<body>
<?
include('../connect/connect.php');
$strSQL = "SELECT * FROM customer WHERE Files='Files'";
$objQuery = mysql_query($strSQL);
$objresult = mysql_fetch_array($objQuery);
$strSQL = $objresult[File];
$strSQL = "DELETE FROM customer WHERE Files='Files'";
$objQuery = mysql_query($strSQL);
$flgDelete = unlink("myfile/".$_FILES["Files"]["name"]);
if($flgDelete)
{
echo "Record Deleted.";
}
else
{
echo "Error Delete [".$strSQL."]";
}
mysql_close($objconnect);
?>
</body>
</html>
ช่วยเช๊คกับโค๊ดด้านบนของไฟล์อื่นให้ทีครับว่ามีปัญหาตรงไหนใส่ dirตรงไหมครับ แต่ถ้าติดเรื่อง permission ก็อธิบายและวิธีแก้เรื่องนี้ให้ทีนะครับผมจะได้เข้าใจเพราะเห็นว่าถ้าทําแบบนี้แล้ว อัพขึ้นโฮสก็จะมีเรื่องนี้ตามมา เผื่อจะได้เป็นการแก้ปัญหาเวลาเอาขึ้นโอสช่วยลงรายละเอียดทีครับขอบคุณครับ
Date :
2010-11-23 14:42:21
By :
kenghockey
การกำหนด permission ตัวอย่างตามนี้ค่ะ window linux
Date :
2010-11-23 15:30:50
By :
ultrasiam
กําหนด permission โฟล์เดอร์ ของผมไม่มีsecurity ครับมันอ่านทุกไฟล์
https://www.thaicreate.com/php/forum/026435.html <<กระทู้นี้เค้าทําได้แล้วแต่งงกับของเค้า ตรงunlink
ประวัติการแก้ไข 2010-11-23 15:43:21
Date :
2010-11-23 15:42:08
By :
kenghockey
ไม่มี security หมายถึง??? ไม่มี tab security ให้เลือกน่ะหรือ
ไปที่ Tool -> Folder options -> View เอาเครื่องหมายถูก ตรง Use simple file sharing ออก ก็มี tab security โผล่มาแล้วล่ะ
Date :
2010-11-23 15:48:18
By :
ultrasiam
หรือเอาแบบพื้น ๆ เลยที่อาจมองข้ามไป ดู properties ของ folder นั้นว่ามัน read only อยู่หรือเปล่า ลองดูค่ะ
Date :
2010-11-23 15:50:43
By :
ultrasiam
ทุกอย่าง ผ่านหมดครับ เซตค่าแล้วแต่ก็ยังเหมือนเดิมครับ
Date :
2010-11-23 16:21:31
By :
kenghockey
ผมงง ถ้าเรา เอาไฟล์ของเว็บนี้ มารัน แล้วเรา สร้างโฟล์เดอร์ ที่ชื่อ myfile อยู่ที่เด๊่ยวกับ ไฟล์codeอ่ะครับ แล้วตรงunlinkจะใส่ว่ายังไงครับ
<html>
<head>
<title>ThaiCreate.Com PHP & Rename File</title>
</head>
<body>
<?
$flgDelete = unlink("myfile/". $myfile);
if($flgDelete)
{
echo "File Deleted";
}
else
{
echo "File can not delete";
}
?>
</body>
</html>
รู้สึกว่าจะงมมานานแล้วกับลบไฟล์ในโฟล์เดอร์เนี่ยอ่ะครับ ขนาดแก้ permissionให้มัน อ่านเรียน โมดิฟรายตามที่ทํา ในuserของเราเอง มันก็ฟ้องเรื่องpermission มันไม่มีวิธีแก้แบบอื่นแล้วหรอครับช่วยผมที
Date :
2010-11-23 20:36:35
By :
kenghockey
โฟลเดอร์ myfile แน่ใจว่าตั้ง permission 777 แล้วยัง
ทำให้เป็น p 777 ก่อน อาจใช้ฟังก์ชัน php ช่วย
chmod('myfile', 0777);
หรือ ใช้ ftp ตั้งค่า permission ก็ได้
Date :
2010-11-23 21:25:00
By :
xbeginner01
ขอวิธีตั้ง chmod 777หน่อยครับ
อันนี้หมายถึงไฟล์ที่อยู่ในเครื่องใช่ไหมครับไม่ใช่บนเซิร์ฟเวอร์ เพราะผมเทสในเครื่องตัวเอง
Date :
2010-11-23 21:36:21
By :
kenghockey
ขอตัวอย่างที่เป็นโค๊ด ที่รันแล้ว สามารถลบ ขอมูลในฐานข้อมูลแล้ว ลบข้อมูลในโฟล์เดอร์ด้วยได้ไหมครับผมจะลองเอามาดูว่ามันยังจะติด permissionไหม เพราะโค๊ดที่ดัดแปลงผมไม่หมั่นใจว่ามันถูกไหมตรงนี้มันพิสูจน์แล้วไม่แน่นอนครับอยากได้ความชัวร์
Date :
2010-11-24 10:10:24
By :
kenghockey
เขียนคำสั่ง unlink() คำสั่งเดียวก็ลบไฟล์ได้แล้วค่ะ
<?php
unlink("test.txt");
?>
Date :
2010-11-24 13:35:23
By :
ultrasiam
ผมว่าจะเขียนใหม่ลองคิดเองอันนี้เป็นการอัพโหลด ช่วยดูทีครับว่าเขียนแบบนี้ถูกไหม เช๊คถามถูกต้องของไฟล์ก่อนเก็บลงโฟล์เดอร์ถ้าผิดช่วยบอกผิดตรงไหนแต่ถ้าถูกอยากใ้ห้อธิบายส่วนนี้ทีครับว่ามันทํางานยังไงขอละเอียดนะครับ
Code (PHP)
if((isset($_POST)|| ($_FILES["Files"]["type"]== "file/gif") //ตรงนี้ครับ ผมงง กะ || ว่ามัน True True ยังไง
|| ($_FILES["Files"]["type"]== "file/jpeg")
&& ($_FILES["Files"]["size"] < 0 ))
{
...........
}
Date :
2010-11-24 13:51:50
By :
kenghockey
ไฟล์เก็บไว้ทีเดียวกัน
Warning: unlink(test.txt) [function.unlink]: No such file or directory in C:\AppServ\www\keng\admin\Edit\system\test.php on line 2
Date :
2010-11-24 13:55:41
By :
kenghockey
Warning: unlink(test.txt) [function.unlink]: No such file or directory in ...
มันหาไฟล์ test.txt ไม่เจอค่ะ แปล error ตรง ๆ ตัว มันก็บอกอยู่แล้วว่า ไม่มีแฟ้มหรือไดเรกทอรี...
Date :
2010-11-24 14:07:07
By :
ultrasiam
แค่นี้แหละค่ะ ก็ลบได้ปกติ
Date :
2010-11-24 14:16:24
By :
ultrasiam
อันนี้โค๊ดอัพโหลดครับ ถูกไหมครับแต่เวลารันไปบอกผิดที่ line 12ครับช่วยดูให้ทีครับว่าผิดตรงไหนบ้าง ฝึกเขียนเองครับ
Code (PHP)
<?php
if(isset($_POST)|| ($_FILES["Files"]["type"]== "file/gif")
|| ($_FILES["Files"]["type"]== "file/jpeg")
&& ($_FILES["Files"]["size"] < 0 ))
{
if($_POST)
{
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" , $_FILES["Files"]["name"]);
include("connect.php")
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('"$_POST["textID"]"','"$_FILES["Files"]["name"]"','"$_POST["textSong"]"','"$_POST["textAlbum"]"','"$_FILES["Music"]["name"]"')";
$query = mysql_query($str);
}
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
mysql_close($connect);
?>
ประวัติการแก้ไข 2010-11-24 14:29:36 2010-11-24 14:31:29
Date :
2010-11-24 14:29:11
By :
kenghockey
ใส่ . เชื่อม string ด้วยค่ะ
'"$_POST["textID"]"' เป็น '".$_POST["textID"]."'
Date :
2010-11-24 15:01:21
By :
ultrasiam
Code (PHP)
<?php
$hostname = "localhost";
$username = "root";
$password = "keng";
$connect = mysql_connect("$hostname,$username,$password")
if($connect)
{
echo"ติดต่อ";
}
else
{
echo"ไม่ติดต่อ";
}
mysql_close($connect)
?>
ทําไมมันชอกผมใช้ if ผิดที่ line 7ครับ แค่นี้ยังผิดเลย จะทําอะไรได้เนี่ย
Date :
2010-11-24 15:04:50
By :
kenghockey
ผิดตรงนี้หรือเปล่า $connect = mysql_connect("$hostname,$username,$password")
เอา " " ออกค่ะ ลืมใส่ ; ด้วยนะ
ประวัติการแก้ไข 2010-11-24 15:12:40
Date :
2010-11-24 15:07:54
By :
ultrasiam
มันบอกว่า
Parse error: syntax error, unexpected '}' in C:\AppServ\www\keng\admin\Edit\system\upload.php on line 24
เพราะอะไรหว่า
Code (PHP)
<?php
if(isset($_POST)|| ($_FILES["Files"]["type"]== "file/gif")
|| ($_FILES["Files"]["type"]== "file/jpeg")
&& ($_FILES["Files"]["size"] < 0 ))
{
if($_POST)
{
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" , $_FILES["Files"]["name"]);
include("connect.php");
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('".$_POST["textID"]."','".$_FILES["Files"]["name"]."','".$_POST["textSong"]."','".$_POST["textAlbum"]."','".$_FILES["Music"]["name"]."')";
$query = mysql_query($str);
}
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
mysql_close($connect)
}
?>
Date :
2010-11-24 15:13:58
By :
kenghockey
เหมือนต้องมาเริ่มเรียนกันใหม่ยังไงไม่รุ้ผมล่ะงง กับsyntax
Date :
2010-11-24 15:15:01
By :
kenghockey
mysql_close($connect) ไม่ได้ใส่ ; อีกแล้ว
เช็คดูดี ๆ นะคะ บางทีมันก็แค่เรื่องหลง ๆ ลืม ๆ เล็ก ๆ น้อย ๆ
mysql_close($connect);
Date :
2010-11-24 15:17:11
By :
ultrasiam
คือบางทีผม ทําตามตัวอย่าง เค้าใส่อย่างที่ผมทํา แต่พอมาลองทําเองก็ใส่แบบที่เค้าใส่ มันดันผิดผมเลยงง ว่ามันยังไงกัน
Date :
2010-11-24 15:32:30
By :
kenghockey
เรื่องเล็ก ๆ น้อยบางทีก็พลาดก็ลืมกันได้ค่ะ ตัวอย่างบางทีก็อาจจะมีตกหล่นบ้าง เรื่อง ; เนี่ยเป็นอะไรที่คนเขียน php ต้องรู้แหละนะ
การแปล error ก็เหมือนกัน สู้ ๆ ค่ะ
Date :
2010-11-24 15:36:44
By :
ultrasiam
มันฟ้องอีกแล้ว
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\keng\admin\Edit\system\upload.php on line 23 ตรงนี้ผมเคยโดนบ่อยแต่ลองดูใ2ไฟๆล์นี้ให้ทีครับ
อันนี้โปรแกรมพอจะเขียนตามที่คิดถูกไหมครับ คือต้องการให้มัน เช๊ค ชนิดไฟล์ และขนาดของไฟล์ ถ้ามันถูกต้องก็ให้อัพลงโฟล์เดอร์ และชื่อของไฟล์ลงฐานข้อมูล
Code (PHP)
<?php
if(isset($_POST)|| ($_FILES["Files"]["type"]== "file/gif")
|| ($_FILES["Files"]["type"]== "file/jpeg")
&& ($_FILES["Files"]["size"] < 0 ))
{
if($_POST)
{
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" , $_FILES["Files"]["name"]);
include("connect.php");
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('".$_POST["textID"]."','".$_FILES["Files"]["name"]."','".$_POST["textSong"]."','".$_POST["textAlbum"]."','".$_FILES["Music"]["name"]."')";
$query = mysql_query($str);
}
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
mysql_close($connect);
}
?>
ตัวconnect.php นี้เขียนถกไหมครับเพราะผมเขียนตามตัวอย่าง แต่ตัวอย่างใช้ได้ครับ
Code (PHP)
<?php
$hostname = "localhost";
$username = "root";
$password = "keng";
$dbname = "system";
$connect = mysql_connect("$hostname,$username,$password,$dbname") or die ("ไม่สามารถเชื่อมต่อฐานข้อมูลได้"); //ประกาศตัวแปรในโปรแกรมmysql_connect ในตัวแปร$connect
$db = mysql_select_db("$dbname"); //เลือกฐานข้อมูล ใช้ตัวแปรนี้$db ในการเลือกฐานข้อมูลsystem
?>
Date :
2010-11-24 15:39:22
By :
kenghockey
เล่นMSNไหมครับผมขอMSNหน่อยดีกว่าผมอยากจะเป็นเรื่องการเขียนโปรแกรมบนเว็บ แต่ผมคิดที่อยากจะทําแต่ออกแบบcodeไม่เป็น ถ้าเรื่องแก้ไฟล์นั้นพอได้ครับอยากให้คุณสอนมีอะไรจะได้ถามได้ครับ เพราะบางอย่างผมจะ งงกับคําสั่ง
Date :
2010-11-24 15:45:04
By :
kenghockey
คุณ include file connect.php หรือยังคะ
มันบอก argument ที่ส่งไปไม่ถูกต้อง บางที $connect อาจไม่มีค่า
Date :
2010-11-24 15:48:45
By :
ultrasiam
ขออภัยค่ะ MSN คงไม่สะดวก เดี๋ยวจะ PM skype ให้แล้วกันค่ะ
Date :
2010-11-24 15:50:55
By :
ultrasiam
ตอนนี้ได้แล้วครับ อย่างที่ว่าเลย $connect = mysql_connect("$hostname,$username,$password,$dbname");
ต้องเอา " ออกแล้วในตัวอย่างที่เป็นไฟล์เชื่อมต่อมันใส่ไว้แล้วเชื่อมได้ครับเลยสงสัย
แต่ตอนนี้ปัญหา
Code (PHP)
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" . $_FILES["Files"]["name"]);
มันฟ้องมา
Warning: Wrong parameter count for move_uploaded_file() in C:\AppServ\www\keng\admin\Edit\system\upload.php on line 8
อัพโหลดเรียบร้อยแล้วครับ
ไฟล์เลยไม่ลงโฟลเดอร์ เราจะแก้ไขยังไงครับ
โค๊ดเต็ม
Code (PHP)
<?php
if(isset($_POST)|| ($_FILES["Files"]["type"]== "file/gif")
|| ($_FILES["Files"]["type"]== "file/jpeg")
&& ($_FILES["Files"]["size"] < 0 ))
{
if($_POST)
{
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" .$_FILES["Files"]["name"]);
include("connect.php");
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('".$_POST["textID"]."','".$_FILES["Files"]["name"]."','".$_POST["textSong"]."','".$_POST["textAlbum"]."','".$_FILES["Music"]["name"]."')";
$query = mysql_query($str);
}
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
mysql_close($connect);
}
?>
Date :
2010-11-24 16:09:16
By :
kenghockey
Code (PHP)
.$_FILES["Files"]["name"]);
ได้แล้วครับแย่ๆๆๆๆ
แต่มันไม่ยอม เช๊ค ชนิดไฟล์กับ ขนาดไฟล์ครับ พอลองอัพโหลดไฟล์ winrarมันดันอัพได้ครับ
ประวัติการแก้ไข 2010-11-24 16:17:31
Date :
2010-11-24 16:12:44
By :
kenghockey
ลองเช็คเงื่อนไข IF ดูค่ะ
if(isset($_POST) || ($_FILES["Files"]["type"]== "file/gif") || ($_FILES["Files"]["type"]== "file/jpeg") && ($_FILES["Files"]["size"] < 0 ))
ตรงนี้ isset($_POST) เป็น True ถึงแม่ check type เป็น False True || False ก็ได้ True อยู่ดี
ลองเปลี่ยนเป็น && ดูค่ะ
ประวัติการแก้ไข 2010-11-24 16:33:22 2010-11-24 16:34:47
Date :
2010-11-24 16:32:39
By :
ultrasiam
ดีใจด้วยนะครับ ไม่ได้เข้ามานานหลายชั่วโมง
Date :
2010-11-24 16:33:46
By :
Dragons_first
ลองเช็คเงื่อนไข IF ดูค่ะ
if(isset($_POST) || ($_FILES["Files"]["type"]== "file/gif") || ($_FILES["Files"]["type"]== "file/jpeg") && ($_FILES["Files"]["size"] < 0 ))
ตรงนี้ isset($_POST) เป็น True ถึงแม่ check type เป็น False True || False ก็ได้ True อยู่ดี
ลองเปลี่ยนเป็น && ดูค่ะ
แต่เขียนโค๊ดแบบนี้ถูกต้องแล้วใช้ไหมครับ ว่าแต่ทําไมมันถึงเป็น trueครับ(isset($_POST)
ประวัติการแก้ไข 2010-11-24 16:49:39
Date :
2010-11-24 16:48:17
By :
kenghockey
PHP isset() ตรวจสอบว่าตัวแปรมีอยู่หรือไม่ คือมีการประกาศค่าตัวแปรหรือไม่ ไม่ว่าจะเป็นค่าว่างก็ตาม
$ _POST เป็น auto global และจะถูกกำหนดไว้เสมอ ดังนั้น isset($_POST) จึงเป็น True ค่ะ
ถ้าคุณต้องการเช็คว่ามีการ post ข้อมูลมาหรือไม่ ลองเปลี่ยนไปใช้ if (isset($_POST['specific_key']))
ดูตัวอย่างการใช้ $_POST ตามลิงค์นี้ค่ะ คลิกเลย
Date :
2010-11-25 10:27:46
By :
ultrasiam
แล้วถ้าผมเขียน ให้โปรแกรมอัพโหลดนั้น เช๊ค ชนิดและ ขนาดของไฟล์รูป แล้วถ้าเช๊คแล้วถูกต้องให้ บันทึกชื่อไฟล์รูปลงฐานข้อมูล แล้วตามด้วย บันทึกไฟล์ลงโฟลเดอร์ ได้ไหมครับ
หรือว่าส่วนใหญ่เค้าจะใช้ เช๊คข้อมูลที่รับจากฟอร์มก่อนแล้ว บันทึกรูปลงโฟลเดอร์ แล้วค่อยบันทึกชื่อไฟล์ลงฐานข้อมูล
ผมอยากรู้แนวการออกแบบโค๊ด ครับ แบบว่าถ้าเราคิดว่าต้องการได้โปรแกรมแบบนี้ แล้วเราจะแนวทางการเขียนและออกแบบโค๊ดยังไงเพื่อให้เข้าใจการเขียนโค๊ดง่ายขึ้น
Date :
2010-11-25 13:37:52
By :
kenghockey
อยากให้ดูงานของตัวเองเป็นหลักค่ะ คุณจำเป็นต้องเช็คค่าจาก form ไหม
ส่วนใหญ่ที่เช็ค submit กันเพราะ source กับ form เป็นไฟล์เดียวกัน
เลยต้องเช็คก่อนว่า submit form แล้วนะ source ทำงานได้แล้ว
แต่มันก็ยังมีอีกหลายวิธีและหลายเหตุผลเหมือนกัน
พยายามมองงานของเราให้ออกว่ากระบวนการมันเป็นยังไง จากไหน ไปไหน ได้อะไร
ส่วนเรื่องการ upload file ก็มีหลายแบบอีกนั่นแหละค่ะ
ง่าย ๆ ตอนนี้คือถ้า code upload กับ form upload ของคุณอยู่คนละไฟล์กัน ไม่จำเป้นต้องเช็ค $_POST ก็ได้ ถ้าต้องการแค่เช็ค submit
Date :
2010-11-25 14:12:50
By :
ultrasiam
ok มันเช๊คแล้วครับว่าแต่ ผมเขียนเงื่อนไขผิด ตรงไหนครับ เวลาใส่ไฟล์ที่ไม่ใช่ jpeg หรือ gifมัน ไม่ฟ้องว่า ไม่สามารถอัพโหลดได้ แต่เวลาอัพโหลดได้มันจะ จะแจ้งตามปกติครับ
Code (PHP)
<?php
if(isset($_POST)&& ($_FILES["Files"]["type"]== "file/gif")
&& ($_FILES["Files"]["type"]== "file/jpeg")
|| ($_FILES["Files"]["size"] < 200000 ))
{
if($_POST)
{
move_uploaded_file($_FILES["Files"]["tmp_name"],"file/" .$_FILES["Files"]["name"]);
include("connect.php");
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('".$_POST["textID"]."','".$_FILES["Files"]["name"]."','".$_POST["Song"]."','".$_POST["Album"]."','".$_FILES["Music"]["name"]."')";
$query = mysql_query($str);
}
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
mysql_close($connect);
}
?>
Date :
2010-11-25 16:48:41
By :
kenghockey
ใส่ else ให้เงื่อนไขแรกค่ะ if ที่เช็ค type
ถ้า type == "file/gif" --> upload / ถ้าไม่ใช่ echo "ไม่สามารถอัพโหลดได้ครับ";
Date :
2010-11-25 17:20:12
By :
ultrasiam
ใส่ไม่ถูกครับ เพราะอ่านที่ไรงงทุกทีกับเวลามันเป็นเงื่อนแบบนี้
if ()
{
if()
{
.................
}
else
{
.........
}
}
ขอที่แก้ให้ทีครับ คืองงกับถ้า if ซ้อน if อ่ะครับช่วยอธิบายทีครับมันเงื่อนไขแบบไหน
Date :
2010-11-25 17:32:50
By :
kenghockey
มีข้อสงสัยอีกอย่างครับ สมมุติว่า
Code (PHP)
if($name == "" || $age == "")
if นี้จําเป็นไหมหรือตายตัว ว่าเงื่อนไขif แปลว่าถูกต้องหรือtrue แล้วเงื่อนไขelseผิด หรือ fale
แต่ ชวยอธิบาย $name == "" ที่ครับมันมีค่าเท่ากันยังไง $nameมีค่าเป็นอะไรทําไมถึงเท่ากันกับ ""
Date :
2010-11-25 19:01:39
By :
kenghockey
ในส่วนของคำสั่ง IF() อธิบายง่าย ๆ คือ
if(เงื่อนไข){
คำสั่ง...
}else{
คำสั่ง...
}
เมื่อเงื่อนไขเป็นจริง หรือ True ให้ทำคำสั่งภายใน if ถ้าเป็นเท็จ หรือ False ให้ทำคำสั่งใน else ค่ะ
เช่น
<?php
$num=5;
if($num>1){
echo "$num > 1";
}else{
echo "$num < 1";
}
?>
อธิบายได้ดังนี้
กำหนดให้ $num มีค่าเท่ากับ 5
ถ้า $num มีค่ามากกว่า 1 จริง ให้แสดงข้อความ "$num > 1"
ถ้าไม่ใช่ตามเงื่อนไข ให้แสดงข้อความ "$num < 1"
แบบนี้พอจะเข้าใจไหมคะ
True ทำใน if
False ทำใน else ถ้ามี
Date :
2010-11-26 00:18:24
By :
ultrasiam
ทําไมมันไม่ขึ้นว่า "อัพโหลดเรียบร้อยแล้วครับ" คือที่จากโค๊ดเวลาผมอ่านคือ ในคําสั่ง if แรกให้เช๊คชนิดและขนาดของไฟล์ถ้าถูกต้องให้copyลงที่โฟลเดอร์file และเปิดการเชื่อมต่อแล้วinsert ข้อมูลลงฐานข้อมูลถ้าไม่มีปัญหาก็ให้ แสดง อัพโหลดเรียบร้อยแล้ว และปิดการเชื่อมต่อฐานข้อมูลถ้า ifแรกมีปัญหาชนิดและขนาดผิดให้แสดงไม่สามารถอัพโหลดได้ครับ แบบนี้ถูกไหมครับ
Code (PHP)
<?php
if(isset($_POST)&& ($_FILES["Files"]["type"]== "file/gif")&& ($_FILES["Files"]["type"]== "file/jpeg")|| ($_FILES["Files"]["size"] < 200000 ))
{
copy($_FILES["Files"]["tmp_name"],"file/" .$_FILES["Files"]["name"]);
include("connect.php");
$str = "INSERT INTO system (ID,Files,Song,Album,Music) VALUES ('".$_POST["textID"]."','".$_FILES["Files"]["name"]."','".$_POST["Song"]."','".$_POST["Album"]."','".$_FILES["Music"]["name"]."')";
$query = mysql_query($str);
if($query)
{
echo "อัพโหลดเรียบร้อยแล้วครับ";
}
mysql_close($connect);
}
else
{
echo "ไม่สามารถอัพโหลดได้ครับ";
}
?>
ประวัติการแก้ไข 2010-11-26 13:02:30
Date :
2010-11-26 13:02:04
By :
kenghockey
Load balance : Server 01