รบกวนช่วยดู Code หน่อยครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

naimanx
PHP Newbie
PHP Newbie
Posts: 5
Joined: 07/10/2008 5:09 am

รบกวนช่วยดู Code หน่อยครับ

Post by naimanx » 07/10/2008 5:10 am

รบกวนช่วยดู Code หน่อยครับ ผมทำสคริปต์ อัพโหลดรูปภาพอยุ่ครับหน้าอัพโหลดไม่มีปัญหาครับแต่พออัพโหลดไปมันไม่แสดงภาพขึ้นรูปกากบาทแดงครับแต่ในฐานข้อมูลมีชื่อไหล์ภาพนะครับ แนบโค้ดมาให้ดูด้วยครับ
<?
$id_title=$_GET[id_title];
include "connect3.php";
$sql="select * from tb_title where id_title='$id_title' ";
$result=mysql_db_query($dbname,$sql);
$r=mysql_fetch_array($result);
$name_title=$r[name_title];
?>
<HTML>
<HEAD><TITLE>PHOTO GALLERY II </TITLE></HEAD>
<BODY>
<H2>ADMIN : PHOTO GALLERY II</H2>
<FORM METHOD="POST" ACTION="admin_photo_add.php" ENCTYPE="multipart/form-data">
<TABLE>
<TR>
<TD><div align="right"><B>หัวข้อ :</B></div></TD>
<TD><?=$name_title?></TD>
</TR>
<TR>
<TD><div align="right"><B>รูปภาพ :</B></div></TD>
<TD><INPUT TYPE="file" NAME="photo"></TD>
</TR>
<TR>
<TD VALIGN="top"><div align="right"><B>คำอธิบายรูปภาพ :</B></div></TD>
<TD><TEXTAREA NAME="detail" ROWS="2" COLS="35"></TEXTAREA></TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD><INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
<INPUT TYPE="hidden" NAME="id_title" VALUE="<?=$id_title?>">
</TD>
</TR>
</TABLE>
<A HREF="admin.php">คลิกเพื่อกลับ</A><BR>
</FORM>
<?
$no=0;
$sql="select * from tb_photo where ref_title='$id_title'order by id_photo";
$result=mysql_db_query($dbname,$sql);
$num=mysql_num_rows($result);
if($num>0) {
echo "
<TABLE BORDER=1>
<TR BGCOLOR=#EEEEEE>
<TD><B>ลำดับ</B></TD>
<TD><B>รูปภาพ</B></TD>
<TD><B>รายละเอียด</B></TD>
<TD><B>ลบ</B></TD>
</TR>";
while ($r=mysql_fetch_array($result)) {
$id_photo=$r[id_photo];
$name_photo=$r[name_photo];
$detail_photo=$r[detail_photo];
$no++;
echo "
<TR>
<TD><CENTER>$no</CENTER></TD>
<TD>
<A HREF='images_large/$name_photo' TARGET='_blank'>
<IMG SRC='images_small/$name_photo' BORDER=0></A>
</TD>
<TD>$detail_photo</TD>
<TD><A HREF='admin_photo_del.php?id_del=$id_photo&id_title=$id_title&name_del=$name_photo' onclick=\"return confirm('คุณแน่ใจที่จะลบรูป $name_photo ออกจากระบบ?')\">ลบ</A>
</TD>
</TR>";
}
}
?>
</TABLE>
</BODY>
</HTML>

พอผมลองรันสคริปต์ดูลองอัพภาพดูมันก็จะลิงก์ไปที่อีกสคริปต์หนึ่งเป็นสคริปต์ที่แจ้งให้เราทราบว่าได้อัพโหลดรูปภาพเรียบร้อยแล้ว คืออันนี้ครับ แต่สคริปต์นี้มีปัญหาเรื่องฟังก์ชั่น 2บรรทัดครับ คือ 28,50
บรรทัดที่ 28 copy($photo, "images_large/$filename");
บรรทัดที่ 50 imagejpeg($new_img,"images_small/$filename");

<?
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];

$detail=$_POST['detail'];
$id_title=$_POST['id_title'];
if (!$photo) {
echo "<h3>ERROR : ไม่สามารถ Upload รูปภาพได้ครับ</h3>";
exit();
}
$ext = strtolower(end(explode('.', $photo_name)));

if ($ext == "jpg" or $ext == "jpeg" or $ext =="png" or $ext =="gif") {
//เพิ่มข้อมูลตาราง tb_photo
include "connect3.php";
$sql="insert into tb_photo values(null,' ','$detail','$id_title')";
mysql_db_query($dbname,$sql);

//หา id_photo ที่มากที่สุดของ id_photo
$sql="select max(id_photo) from tb_photo";
$result=mysql_db_query($dbname,$sql);
$r=mysql_fetch_array($result);
$id_max=$r[0];

$filename=$id_max.".".$ext;
copy($photo, "images_large/$filename");
if ($ext =="jpg" or $ext =="jpeg") {
$ori_img = imagecreatefromjpeg($photo);
} else if ($ext == "png" ) {
$ori_img = imagecreatefrompng($photo);
} else if ($ext == "gif" ) {
$ori_img = imagecreatefromgif($photo);
}
$ori_size = getimagesize($photo);
$ori_w = $ori_size[0];
$ori_h = $ori_size[1];
if ($ori_w>=$ori_h) {
$new_w =100;
$new_h = round(($new_w/$ori_w) * $ori_h);
} else {
$new_h =100;
$new_w = round(($new_h/$ori_h) * $ori_w);
}
$new_img= imagecreatetruecolor($new_w, $new_h);
imagecopyresized($new_img, $ori_img,0,0,0,0,$new_w,$new_h,$ori_w,$ori_h);

if ($ext =="jpg" or $ext == "jpeg") {
imagejpeg($new_img,"images_small/$filename");
} else if ($ext =="png"){
imagepng($new_img,"images_small/$filename");
} else if ($ext =="gif"){
imagegif($new_img,"images_small/$filename");
}
imagedestroy($ori_img);
imagedestroy($new_img);

$sql="update tb_photo set name_photo='$filename' where id_photo='$id_max' ";
mysql_db_query($dbname,$sql);
echo "<H3>Upload รูปภาพเรียบร้อยแล้ว </H3>";
echo "<A HREF='admin_photo.php?id_title=$id_title'>กลับหน้าหลัก</A>";
mysql_close();
} else {
echo "<h3>ERROR : ไม่สามารถ Upload รูปภาพได้ครับ</h3>";
}
?>

รบกวนช่วยดูให้หน่อยครับ
ขอบคุณครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23805
Joined: 22/09/2008 6:18 pm
Contact:

Re: รบกวนช่วยดู Code หน่อยครับ

Post by mindphp » 07/10/2008 6:58 am

ไม่เข้าใจการทำงาน ของ บรรทัด หรือ function ไหนครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

naimanx
PHP Newbie
PHP Newbie
Posts: 5
Joined: 07/10/2008 5:09 am

Re: รบกวนช่วยดู Code หน่อยครับ

Post by naimanx » 08/10/2008 8:34 pm

ไม่เข้าใจสคริปต์ที่2ครับบรรทัดที่ 28 และ50 คือรันไม่ผ่านครับมันติด 2บรรทัดครับ
อันแรก copy($photo, "images_large/$filename");
อันที่สอง imagejpeg($new_img,"images_small/$filename");
ไม่รู้มันติดตรงไหนครับ
อันนี้สคริปต์เต็มๆ
<?
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];

$detail=$_POST['detail'];
$id_title=$_POST['id_title'];
if (!$photo) {
echo "<h3>ERROR : ไม่สามารถ Upload รูปภาพได้ครับ</h3>";
exit();
}
$ext = strtolower(end(explode('.', $photo_name)));

if ($ext == "jpg" or $ext == "jpeg" or $ext =="png" or $ext =="gif") {
//เพิ่มข้อมูลตาราง tb_photo
include "connect3.php";
$sql="insert into tb_photo values(null,' ','$detail','$id_title')";
mysql_db_query($dbname,$sql);

//หา id_photo ที่มากที่สุดของ id_photo
$sql="select max(id_photo) from tb_photo";
$result=mysql_db_query($dbname,$sql);
$r=mysql_fetch_array($result);
$id_max=$r[0];

$filename=$id_max.".".$ext;
copy($photo, "images_large/$filename");
if ($ext =="jpg" or $ext =="jpeg") {
$ori_img = imagecreatefromjpeg($photo);
} else if ($ext == "png" ) {
$ori_img = imagecreatefrompng($photo);
} else if ($ext == "gif" ) {
$ori_img = imagecreatefromgif($photo);
}
$ori_size = getimagesize($photo);
$ori_w = $ori_size[0];
$ori_h = $ori_size[1];
if ($ori_w>=$ori_h) {
$new_w =100;
$new_h = round(($new_w/$ori_w) * $ori_h);
} else {
$new_h =100;
$new_w = round(($new_h/$ori_h) * $ori_w);
}
$new_img= imagecreatetruecolor($new_w, $new_h);
imagecopyresized($new_img, $ori_img,0,0,0,0,$new_w,$new_h,$ori_w,$ori_h);

if ($ext =="jpg" or $ext == "jpeg") {
imagejpeg($new_img,"images_small/$filename");
} else if ($ext =="png"){
imagepng($new_img,"images_small/$filename");
} else if ($ext =="gif"){
imagegif($new_img,"images_small/$filename");
}
imagedestroy($ori_img);
imagedestroy($new_img);

$sql="update tb_photo set name_photo='$filename' where id_photo='$id_max' ";
mysql_db_query($dbname,$sql);
echo "<H3>Upload รูปภาพเรียบร้อยแล้ว </H3>";
echo "<A HREF='admin_photo.php?id_title=$id_title'>กลับหน้าหลัก</A>";
mysql_close();
} else {
echo "<h3>ERROR : ไม่สามารถ Upload รูปภาพได้ครับ</h3>";
}
?>

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23805
Joined: 22/09/2008 6:18 pm
Contact:

Re: รบกวนช่วยดู Code หน่อยครับ

Post by mindphp » 08/10/2008 8:42 pm

copy($photo, "images_large/$filename");
ไม่ได้ มาจาก 3 สาเหตุ
1. ไม่มี permission ในการเขียนไฟล์
2. ไม่มีไฟล์ต้นฉบับ หรืออ้างถึงตำแหน่งไฟล์ต้นฉบับผิด
3. ไม่มีที่หมายปลายทาง(folder) ที่ระบุอยู่จริง
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

naimanx
PHP Newbie
PHP Newbie
Posts: 5
Joined: 07/10/2008 5:09 am

Re: รบกวนช่วยดู Code หน่อยครับ

Post by naimanx » 11/10/2008 7:54 pm

ขอบคุณมากครับ ตอนนี้อัพโหลดไฟล์รูปภาพได้แล้วครับ และก็แสดงภาพได้แล้วครับ ไม่ขึ้นกากบาทแดงแล้วครับ รบกวนถามต่ออีกหน่อยนะครับ
ก่อนที่จะแสดงหน้าเว็บเพจสำหรับอัพโหลดรูปภาพ(คือหน้าเว็บที่มีปุ่มให้อัพรูปภาพนะครับ) ผมได้ทำหน้าเว็บสำหรับสร้างหัวข้อรูปภาพขึ้นมา ในหน้านี้ ผมก็จะมีเมนูในการสร้างหัวข้อรูปภาพ พอผมสร้างหัวข้อเสร็จ หัวข้อรูปภาพที่เราสร้างไว้ก็จะปรากฎ อยู่ในตารางด้านล่างเรียงตามบรรทัดที่เราได้ตั้งหัวข้อไว้ตามลำดับ ในแต่ละหัวข้อรูปภาพก็จะมีเมนูย่อย 3อันคือ
1.ชื่อหัวข้อรูปภาพที่เราตั้งไว้ -->เข้าไปหน้าเว็บสำหรับอัพรูปภาพ
2.แก้ไขหัวข้อรูปภาพ -->เข้าไปแก้ไขหัวข้อรูปภาพ (เมนูนี้ผมแก้ไขได้ครับไม่มีปัญหา)
3.ลบหัวข้อรูปภาพ -->เข้าไปลบหัวข้อรูปภาพ (เมนูนี้ผมแก้ไขได้ครับไม่มีปัญหา)
ซึ่งแต่ละอันจะลิงก์เข้าไปตามจุดประสงค์ของชื่อหัวข้อที่ผมได้ตั้งไว้
คำถาม : ทำไมผมลิงก์เข้าไปเมนูที่ 1 ไม่ได้ ทั้งๆที่ผมเขียนสคริปต์ทุกตัวอักษรทำตามหนังสือคู่มือทุกอย่างครับ
ผมได้เอาสคริปต์แนบมาด้วย 2 สคริปคือ admin.php คือหน้าหลัก และอีกอันคือ admin_phpto.php(ซึ่งสคริปต์นี้ผมได้ใช้ถามคุณในหัวข้อแรกอะครับ)

<HTML>
<HEAD><TITLE>PHOTO GALLERY II </TITLE></HEAD>
<BODY>
<H2>ADMIN : PHOTO GALLERY II</H2>
<FORM METHOD="POST" ACTION="admin_add.php">
เพิ่มหัวข้อรูปภาพ <INPUT TYPE="text" NAME="title">
<INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
</FORM>
<?
$no=0;
include "connect3.php";
$sql="select * from tb_title order by id_title desc";
$result=mysql_db_query($dbname,$sql);
$num=mysql_num_rows($result);
if($num>0){
echo "
<TABLE BORDER=1>
<TR BGCOLOR=#EEEEEE>
<TD><B>ลำดับ</B></TD>
<TD><B>หัวข้อรูปภาพ</B></TD>
<TD><B>แก้ไข</B></TD>
<TD><B>ลบ</B></TD>
</TR>";
while ($r=mysql_fetch_array($result)) {
$id_title=$r[id_title];
$name_title=$r[name_title];
$no++;
echo "
<TR>
<TD><CENTER>$no</CENTER></TD>
<TD><A HREF='admin_photo?id_title=$id_title'>$name_title</A></TD>
<TD><A HREF='admin_edit.php?id_edit=$id_title'>แก้ไข</A></TD>
<TD><A HREF='admin_del.php?id_del=$id_title'onclick=\"return confirm ('คุณแน่ใจที่จะลบหัวข้อ $name_title และรูปภาพในนี้ออกจากระบบ ?')\"> ลบ </A></TD>
</TR>";
}
}
?>
</TABLE>
</BODY>
</HTML>

สำหรับอีกอัน เมื่อคลิปลิงก์หัวข่อรุปภาพแล้วก็จะเข้าไปสู่หน้าเว็บเพจของสคริปต์นี้ครับ

<?
$id_title=$_GET[id_title];
include "connect3.php";
$sql="select * from tb_title where id_title='$id_title' ";
$result=mysql_db_query($dbname,$sql);
$r=mysql_fetch_array($result);
$name_title=$r[name_title];
?>
<HTML>
<HEAD><TITLE>PHOTO GALLERY II </TITLE></HEAD>
<BODY>
<H2>ADMIN : PHOTO GALLERY II</H2>
<FORM METHOD="POST" ACTION="admin_photo_add.php" ENCTYPE="multipart/form-data">
<TABLE>
<TR>
<TD><div align="right"><B>หัวข้อ :</B></div></TD>
<TD><?=$name_title?></TD>
</TR>
<TR>
<TD><div align="right"><B>รูปภาพ :</B></div></TD>
<TD><INPUT TYPE="file" NAME="photo"></TD>
</TR>
<TR>
<TD VALIGN="top"><div align="right"><B>คำอธิบายรูปภาพ :</B></div></TD>
<TD><TEXTAREA NAME="detail" ROWS="2" COLS="35"></TEXTAREA></TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD><INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
<INPUT TYPE="hidden" NAME="id_title" VALUE="<?=$id_title?>">
</TD>
</TR>
</TABLE>
<A HREF="admin.php">คลิกเพื่อกลับ</A><BR>
</FORM>
<?
$no=0;
$sql="select * from tb_photo where ref_title='$id_title'order by id_photo";
$result=mysql_db_query($dbname,$sql);
$num=mysql_num_rows($result);
if($num>0) {
echo "
<TABLE BORDER=1>
<TR BGCOLOR=#EEEEEE>
<TD><B>ลำดับ</B></TD>
<TD><B>รูปภาพ</B></TD>
<TD><B>รายละเอียด</B></TD>
<TD><B>ลบ</B></TD>
</TR>";
while ($r=mysql_fetch_array($result)) {
$id_photo=$r[id_photo];
$name_photo=$r[name_photo];
$detail_photo=$r[detail_photo];
$no++;
echo "
<TR>
<TD><CENTER>$no</CENTER></TD>
<TD>
<A HREF='images_large/$name_photo' TARGET='_blank'>
<IMG SRC='images_small/$name_photo' BORDER=0></A>
</TD>
<TD>$detail_photo</TD>
<TD><A HREF='admin_photo_del.php?id_del=$id_photo&id_title=$id_title&name_del=$name_photo' onclick=\"return confirm('คุณแน่ใจที่จะลบรูป $name_photo ออกจากระบบ?')\">ลบ</A>
</TD>
</TR>";
}
}
?>
</TABLE>
</BODY>
</HTML>

รบกวนนิดนะครับ
ขอบคุณมากครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 23805
Joined: 22/09/2008 6:18 pm
Contact:

Re: รบกวนช่วยดู Code หน่อยครับ

Post by mindphp » 11/10/2008 11:41 pm

ถ้าเอาโค้ดมาจากหลังสือ ก็ set ให้ server เป็นตามที่หนังสือแนะนำให้ติดตั้ง
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 120 guests