ติดปัญหาตรงที่รูปไม่มาอยู่ใน ไดเรกทรอรี่ ที่ต้องการอะครับผม TwT (มือใหม่หัดเขียน)
ข้อมูลทุกตัวถูกแอดเข้าฐานข้อมูลหมดครับ รวมทั้งชื่อของ รูปที่อัพโหลด ติดตรงที่ รูปมันไม่ได้อยู่ตรง ไดเรกทรอรรี่ ที่เราตั้งไว้ครับผม (ช่วยทีนะครับผม ขอแบบระเอียดนิดนึงเวลา อธิบายคือผมยังอ่อนอยู่มากครับ) ขอบคูณมาก
หน้าแอดข้อมูลครับ
Code (PHP)
<?
session_start();
if ($sess_adminid<>session_id()) {
header( "Location: admin.php"); exit();
}
?>
<HTML>
<HEAD><TITLE>ข่าว</TITLE></HEAD>
<BODY>
<? include "admin_menu.php"; ?>
<FORM ACTION="admin_new_add5.php" METHOD="post" ENCTYPE="multipart/form-data">
<P><b>เพิ่มข่าวต่างๆ</b></P>
<TABLE WIDTH="520" BORDER="0" CELLSPACING="1" CELLPADDING="0">
<TR>
<TD WIDTH="134">หัวข้อข่าว</TD>
<TD width="383"><INPUT TYPE="text" NAME="name" SIZE="40">* </TD>
</TR>
<TR>
<TD>รายละเอียดข่าว</TD>
<TD><TEXTAREA NAME="detail" COLS="40" ROWS="4" id="detail"></TEXTAREA> * </TD>
</TR>
<TR>
<TD>อัพรูปข่าว</TD>
<TD><INPUT NAME="photo" TYPE="file" id="photo">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="100000"></TD>
</TR>
<TD> </TD>
<TD><INPUT TYPE="submit" NAME="Submit" VALUE="Submit">
<INPUT TYPE="reset" NAME="Submit2" VALUE="Reset"></TD>
</TR>
</TABLE>
</FORM>
<? include ('admin_new.php')?>
</BODY>
</HTML>
หน้าอัพโหลด
Code (PHP)
<?
session_start();
if ($sess_adminid<>session_id()) {
header( 'Location: admin.php'); exit();
}
$name=$_POST['name'];
$detail=$_POST['detail'];
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];
if ($name=="") {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกหัวข้อข่าวด้วยครับ</a></H3>";
exit();
} else if ($detail=="") {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกรายละเอียดข่าวด้วยครับ</a></H3>";
exit();
}
if (!$photo) {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกรายละเอียดข่าวด้วยครับ</a></H3>";
exit();
}
$array_last=explode(".",$photo_name);
//$array_last=explode(".",$photo_name);
$c=count($array_last)-1;
// $c=count($array_last)-1;
$lastname=strtolower($array_last[$c]);
//$lastname=strtolower($array_last[$c]);
if($lastname=="gif" or $lastname=="jpg" or $lastname=="jpeg") {
// if($lastname=="gif" or $lastname=="jpg" or $lastname=="jpeg") {
@copy($photo, "images/". $photo_name);
//@copy($photo, "../picture/". $photo_name);
//@copy($photo, "../picture/". $photo_name);
}
include ('../connect.php');
$sql="INSERT INTO tb_new values('','$name','$detail','$photo_name') ";
$result=mysql_db_query($dbname,$sql)or die(mysql_error());
//$result=mysql_db_query($dbname,$sql)or die(mysql_error());
if($result){
echo "<H3><A HREF='admin_new_add.php'>[ ข้อมูลครบถ้วนครับ ]</a></h3>";
}else{
echo "<h3>a href=admin_new_add.php>[ เกิดการผิดพลาด กรุณากรอกข้อมุลให้ครบถ้วน ]</a></h3>";
}
mysql_close();
?>
Tag : PHP, MySQL, CakePHP
Date :
2011-07-18 23:29:53
By :
boybekuru
View :
1120
Reply :
27
ท่าแก้ให้แล้ว มาร์ค สีให้ผมจะขอบคุณอย่างมากครับ เพื่อที่จะได้รู้จุดผิดพลาดขอบคูรครับ
Date :
2011-07-18 23:33:10
By :
boybekuru
direct path ผิดป่าวครับ ตรง copy มี ที่เขียนมาคือ
ใน folder ที่รันไฟล์ตัวนี้มี folder ชื่อ images ป่าวครับ ถ้ามีก็อยู่ในนั้นแหละ
ถ้าไม่มี folder มันก็ไม่ได้ copy ให้หรอกครับ
ลองใช้ @copy($photo,$photo_name);
แบบนี้ดูครับ แล้วรูปมันอยู่ใน folder ไหนก็ลองไล่ directory path ดูครับ
Date :
2011-07-19 00:41:44
By :
l3luEbirD
ขอคุณนะครับ เดียวจะลองแก้ดูครับผม ได้ผลยังไงจะมาบอกอีกทีครับผม
Date :
2011-07-19 09:16:54
By :
boybekuru
แนะนำให้ลองเป็น move_uploaded_file แทนนะ
Code (PHP)
move_uploaded_file($photo,"images/".$photo_name);
ไม่ก็ลองแก้นี้ดูนะ
Code (PHP)
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];
ลองแก้เครื่องหมายดูนะจาก single-quote เป็น double-quote ลองดูละกันนะ ^^
Date :
2011-07-19 16:42:34
By :
MermaidMelody
คุณ l3luEbirD ผมแก้ตามที่แล้วครับไม่ได้ครับผม
คุณ Melody ผมแก้ตามที่แล้วครับไม่ได้ครับผม
ช่วยผมทีๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
Date :
2011-07-19 19:10:59
By :
boybekuru
@copy($photo, "images/". $photo_name ); ตรงจุด กับ $photo_name มีการ เว้นวรรค
ใส่ให้ติดกันครับ
Date :
2011-07-19 20:04:11
By :
tomrambo
คุณ tOm ยังไม่ได้ครับ
ใครก็ได้ช่วยทีๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
Date :
2011-07-19 21:57:05
By :
boybekuru
คือรูป ไม่เข้าเลยใช่มั๊ยครับ หรือว่าเข้าแต่ไปอยู่ที่อื่น
Date :
2011-07-19 22:03:20
By :
tomrambo
ไฟล์ภาพที่ทดลอง เป็นไฟล์อะไรครับ จากโค๊ด เขียนลองรับแค่ jpg gif และ jpeg เท่านั้นนะครับ
Date :
2011-07-19 22:18:02
By :
tomrambo
คุณ tOm ครับ
- คือข้อมูลทุกตัวเข้าฐานข้อมมูลหมดครับรวมทั้งชื่อรูปด้วย แต่รูปที่เราสั่งก็อปมันไม่ยอมก็อปให้อะครับผม
- ส่วนไฟล์ภาพที่ใช้ทดลองนามสกลุล เป็น jpg ครับผม
( วอผู้รู้ช่วยทีๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ )
Date :
2011-07-19 22:51:59
By :
boybekuru
เอางี้ครับ ลองเอา @ ออกจาก copy แล้วดูว่ามี ERROR ป่าว ถ้ามี ก็เอา Error นั้นมาดูครับ
Date :
2011-07-19 23:04:02
By :
tomrambo
ขึ้นแบบนี้อะครับผม
Warning: copy(photo/2011-07-16 19.47.41.jpg) [function.copy]: failed to open stream: No such file or directory in C:\AppServ\www\admin\admin_new_add5.php on line 32
คือขอออกตัวก่อนนะครับ ผมไม่ได้จบสายตรงมาอะ จบศิลปกรรมมาอะแต่สนใจการเขียนโค้ค ^ ^ ท่าไงอย่าว่าผมเลยน้าาาา หุหุ
Date :
2011-07-19 23:12:52
By :
boybekuru
ดูที่ไฟล์นี้ admin_new_add5.php บรรทัดที่ 32 ครับ โค๊ดคืออะไร เอามาให้ผมดูหน่อย
อ่อส่วนเรื่อง ว่าไม่ว่าน่ะ ผมไม่ว่าอะไรคุณหรอกครับ ผมอยากช่วยจริงๆ แล้วก็อยากตอบคนที่ไม่รู้จริงๆด้วยครับ
ส่วนเรื่องจบสายตรง หรือไม่จบสายตรง ก็ไม่ใช่ประเด็นครับ ผมก็ไม่ได้จบสายตรงเหมือนกัน
ผมจบนิติศาสตร์ ตอนนี้ก็เรียนป.โทนิติศาสตร์อยู่อีกเช่นกัน เอกกฎหมายระหว่างประเทศแผนกคดีเมือง
ซึ่งก็ไม่ได้เกี่ยวข้อเลยใช่ไหม เหอๆ มันอยู่ที่ความชอบและประสบการณ์ครับ
อย่าลืมตอบคำถามผมด้วยนะ เด๋วผมมาดูให้ แล้วจะมาตอบ ผมไปรับแฟนผมก่อน เดี๋ยวมา
ประวัติการแก้ไข 2011-07-19 23:25:02
Date :
2011-07-19 23:23:29
By :
tomrambo
โค้ตบรรทัดที่ 32 คือ copy($photo,"photo/".$photo_name);
ใส่แบบนี้ @copy($photo,"photo/".$photo_name); ก็ไม่ได้อะครับมันไม่ ก็อปรูปภาพให้ครับ (x x)"
<?
session_start();
if ($sess_adminid<>session_id()) {
header( 'Location: admin.php'); exit();
}
$name=$_POST['name'];
$detail=$_POST['detail'];
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];
if ($name=="") {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกหัวข้อข่าวด้วยครับ</a></H3>";
exit();
} else if ($detail=="") {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกรายละเอียดข่าวด้วยครับ</a></H3>";
exit();
}
if (!$photo) {
echo "<H3><A HREF='admin_new_add.php'>ERROR : กรุณากรอกรายละเอียดข่าวด้วยครับ</a></H3>";
exit();
}
$array_last=explode(".",$photo_name);
$c=count($array_last)-1;
$lastname=strtolower($array_last[$c]);
if($lastname=="gif" or $lastname=="jpg" or $lastname=="jpeg") {
copy($photo,"photo/".$photo_name);
}
include ('../connect.php');
$sql="INSERT INTO tb_new values('','$name','$detail','$photo_name') ";
$result=mysql_db_query($dbname,$sql)or die(mysql_error());
if($result){
echo "<H3><A HREF='admin_new_add.php'>[ ข้อมูลครบถ้วนครับ ]</a></h3>";
}else{
echo "<h3>a href=admin_new_add.php>[ เกิดการผิดพลาด กรุณากรอกข้อมุลให้ครบถ้วน ]</a></h3>";
}
mysql_close();
?>
มีอะไรช่วยแนะนำด้วยนะคราบบบบบบ ขอบคุณมากครับผม
Date :
2011-07-19 23:28:55
By :
boybekuru
แล้วมีโฟลเดอร์ photo อยู่ที่เดียวกับไฟล์ admin_new_add5.php มั๊ยครับ
Date :
2011-07-19 23:50:21
By :
tomrambo
เปลี่ยนตัวแปร $photo=$_FILES['photo']['tmp_name']; เป็น $photo_tmp=$_FILES['photo']['tmp_name']; ครับ
บรรทัดนี้ก็ เปลี่ยนเป็น copy($photo_tmp,"photo/".$photo_name);
ตัวแปรมันชนกันกับ tag input ที่ ส่ง method post มาน่ะครับ
<INPUT NAME="photo " TYPE="file" id="photo">
ลองดูครับ
ประวัติการแก้ไข 2011-07-20 00:35:13 2011-07-20 00:36:28
Date :
2011-07-20 00:30:35
By :
tomrambo
คุณ tOm ยังไม่ได้ครับผม แงงง
Warning: copy(photo/2011-07-16 19.47.41.jpg) [function.copy]: failed to open stream: No such file or directory in C:\AppServ\www\admin\admin_new_add5.php on line 34
- ได้แก้ไขตามแล้วครับผม
- แล้วก็มีโฟร์เดอร์ photo ด้วยครับผม
Date :
2011-07-20 20:04:30
By :
boybekuru
มีอยู่น่ะมี แต่มันอยู่ที่เดียวกับไฟล์ admin_new_add5.php หรือป่าวครับ เพราะมันบอกว่ามันหาโฟลเดอร์ ไม่เจอ
ถ้าตอบว่าอยู่ที่เดียวกัน งั้นก็ ลอง copy($photo_tmp, $photo_name); ดูครับว่าภาพเข้ามาอยู่โฟลเดอร์เดียวกับไฟล์
admin_new_add5.php ไหม
Date :
2011-07-20 20:24:11
By :
tomrambo
คุณ ทอม ผมเจอแล้วมันก็อปรูปไปอยู่ใน local:c / AppServ / www / admin
ทำไมมันไปอยู่ตรงนั้นอะครับ งง
เพราะโฟร์เดอร์ที่เก็บงานผมอยู่หน้าเดสทอป
Date :
2011-07-20 20:31:42
By :
boybekuru
กำ ผมก็งงกับคุณเหมือนกัน ว่าทำไมโฟลเดอร์เก็บงานคุณทำไมไปอยู่ที่ desktop โฟลเดอร์งานนี่หมายถึง พวกไฟล์ php น่ะหรอ
จริงๆมันก็ต้องเก็บไว้ที่ local:c / AppServ / www นี่ไม่ใช่หรอครับพวกไฟล์งาน
Date :
2011-07-20 20:35:39
By :
tomrambo
อ้อหรอครับ (x x) คือตอนนี้ผมลองดู รู้สึกว่าจะมีไฟล์อยู่ 2 ชุดอะ งง เหมือนกัน ชุดนึงอนู่ใน ไดฟ์ c อีกชุดอยู่หน้า เดสทอป มึนครับ แล้วผมควรทำไงต่อครับผม
Date :
2011-07-20 20:41:13
By :
boybekuru
ตอนที่คุณรันไฟล์ url เป็นยังไงครับ เช่น http://localhost/test.php หรืออะไรยังไงครับ
Date :
2011-07-20 20:43:12
By :
tomrambo
คุณ ทอมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมมม
ได้แล้ววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววว
ขอบคุณมากกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก
รักคุณที่สุดเร้ยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยยย
ตอบคำถาม ตอนรันผมก็กด F12 อะครับแล้วก็รัน แอดข้อมมูล ปรกติ อะครับผม แฮะๆ
เดียวจะทำ Edit ต่อครับท่ามีไรเดียว ตั้งกระทู้ถามต่อนะครับ ขอบคุณจากใจจริงครับผม ขอบคุณคราบบบบบบบบบบบ
Date :
2011-07-20 20:59:46
By :
boybekuru
ฮ่าๆๆๆ ดีใจด้วยครับ
มารักผมได้ไงผมไม่ใช่เกย์นะ เหอๆๆ
แล้ว สรุปว่าไง มันไม่เจอโฟลเดอร์แบบที่ผมบอกรึป่าว
ที่บอกว่า กด F12 นี่ คือเขียนในดรีมหรอ
คราวหลังงานทุกอย่างต้องไปเก็บไว้ใน local:c / AppServ / www นะครับ
เวลาจะรันดูก็เปิด IE หรือ อื่นๆ ก็ได้ แล้ว พิมพ์ http://localhost เอาน่ะครับ
Date :
2011-07-20 21:05:28
By :
tomrambo
ขอขอบคุณ คุณ ทอม มากน้าคราบบบที่ช่วยเหลือ ^ ^
Date :
2011-07-20 21:52:34
By :
boybekuru
F12 ก็รันได้หาก create site และ set servers ไว้
Date :
2011-07-21 00:13:15
By :
PlaKriM
<?
session_start();
if ($_SESSION[sess_userid]<>session_id()) {
header("Location : admin.php");exit();
}
$title=$_POST['title'];
$detail=$_POST['detail'];
$type=$_POST['type'];
$photo=$_FILES['photo']['tmp_name'];
$photo_name=$_FILES['photo']['name'];
$photo_size=$_FILES['photo']['size'];
$photo_type=$_FILES['photo']['type'];
$date_today=date("Y-m-d");
$time_today=date("H:i:s");
if ($title=="" or $detail=="" or $type=="0") {
echo "<h2> ¡ÃسҡÃÍ¡¢éÍÁÙÅãËé¤Ãº </h2>";
exit();
}
include "connect.php";
$sql="INSERT INTO tb_new
VALUES(null,'$title','$detail','$type','','$date_today','$time_today')";
mysql_db_query("$dbname",$sql);
$ext = strtolower(end(explode('.', $photo_name)));
if ($ext == "jpg" or $ext == "jpeg" or $ext == "png" or
$ext =="gif") {
$sql="select max(id_new) from tb_new";
$result=mysql_db_query($dbname,$sql);
$r=@mysql_fetch_array($result);
$id_max=$r[0];
$filename=$id_max. " . " .$ext;
copy($photo,"photo/$filename");
$sql="update tb_new set photo_new='$filename' where
id_new='$id_max' ";
mysql_db_query($dbname,$sql);
}
echo "<h3>à¾ÔèÁ¢éÍÁÙÅàÃÕºÃéÍÂáÅéǤèÐ</h3>";
echo "[ <A HREF=new_main.php>¡ÅѺä»Ë¹éÒËÅÑ¡</A> ]";
mysql_close();
?>
มันไม่ไปเพิ่มข้อมูลที่ฐานข้อมูลคับ
ดูให้หน่อยนะคับ...ขอบคุณมากคับ
Date :
2011-09-13 16:25:19
By :
ส่งprojectอาจารย์
Load balance : Server 00