 |
คุณเฮงหรือผู้ใจบุญทุกท่านช่วยหน่อยครับ project คือผมต้องการให้แสดงรูปใหม่หลังจากที่มีการแก้ไขข้อมูลส่วนตัวอ่ะครับ |
|
 |
|
|
 |
 |
|
คือผมต้องการให้แสดงรูปใหม่หลังจากที่มีการแก้ไขข้อมูลส่วนตัวอ่ะครับ แต่มันยังแสดงรูปเก่าอยู่
ทั้งๆที่ใน file ที่ก็บภาพก็เก็บภาพใหม่ลงไปแล้ว เพราะผมจะตั้งชื่อภาพที่เก็บลงไปให้เป็นรหัสนศ.
ซึ่งทำให้แต่ละคนจะมีได้แค่รูปเดียว และมันจะลบรูปเก่าออกไป
แต่ถ้าสมัครสมาชิกครั้งแรกแล้วใส่รูปก็จะไม่มีปัญหาครับ เพราะในฐานข้อมูลที่เอาไว้เก็บชื่อภาพ
ยังไม่มีชื่อนี้อยู่ จึงสามารถดึงค่ามาแสดงรูปได้เลย
แล้วก็นี้คือโค้ดในส่วนบันทึกลงฐานข้อมูลครับ
$MAX_FILE_SIZE=$_POST['MAX_FILE_SIZE'];
if ($_FILES['picture']['error']==0) {
$file_allow = array("image/gif", "image/pjpeg","image/jpeg","image/x-png");
function validate_form($file_input,$file_size,$file_type) {
global $MAX_FILE_SIZE,$file_allow;
if ($file_input == "") {
$error = false;
} elseif ($file_size > $MAX_FILE_SIZE) {
echo "<meta http-equiv=refresh charset=utf-8 >";
$error = "ขนาดไฟล์ใหญ่กว่า 200 Kb";
} elseif (!check_type($file_type,$file_allow)) {
echo "<meta http-equiv=refresh charset=utf-8 >";
$error = "ไฟล์ประเภทนี้ ไม่อนุญาตให้ Upload";
} else {
$error = false;
}
return $error;
}
function check_type($type_check) {
global $file_allow;
for ($i=0;$i<count($file_allow);$i++) {
if ($file_allow[$i] == $type_check) {
return true;
}
}
return false;
}
$error_msg = validate_form($_FILES['picture'],$_FILES['picture']['size'],$_FILES['picture']['type']);
if ($error_msg) {
echo '<br><br><center><font size="3" face="MS Sans Serif"><b>'.$error_msg.'</b></font>' ;
echo "<br><br><input type='button' value='Edit Picture' onclick='window.history.back();'></center>" ;
exit() ;
}
$path = "./picture";
$result = mysql_query("select picture from members where memberID='".$_SESSION['login_true']."'") or die ("Err Can not to result") ;
$dbarr=mysql_fetch_array($result);
if($dbarr['picture'] != ""){
$picturename=$dbarr['picture'];
unlink("$path/$picturename");
}
$picturenew=$_SESSION['login_true'];
$filenewcon = strstr($_FILES['picture']['name'],".");
copy($_FILES['picture']['tmp_name'],$path."/$picturenew$filenewcon"); //ทำการ copy ไฟล์มาที่ Server
$result = mysql_query("update members set name='$name', sname='$sname',nname='$nname',sex='$sex', faculty='$faculty', bday_day='$bday_day', bday_month='$bday_month', bday_year='$bday_year', province='$province', telephone='$telephone', email='$email', picture='$picturenew$filenewcon' where memberID='".$_SESSION['login_true']."'") or die ("database Error ");
}else{
$result = mysql_query("update members set name='$name', sname='$sname',nname='$nname',sex='$sex', faculty='$faculty', bday_day='$bday_day', bday_month='$bday_month', bday_year='$bday_year', province='$province', telephone='$telephone', email='$email' where memberID='".$_SESSION['login_true']."'");
}
ส่วนนี้ก็คือส่วนแสดงข้อมูลครับ
$memberID=$_SESSION['login_true'];
$result = mysql_query("select * from members where memberID='".$_SESSION['login_true']."'") or die ("Err Can not to result") ;
$dbarr = mysql_fetch_array($result) ;
if($dbarr['picture'] !=NULL){
echo '<div id="pic_m"><img src="picture/'.$dbarr['picture'].'" border="0" width="115" height="140" /></div>';
}else{
echo '<div id="pic_m"><img src="picture/member.png" border="0" width="110" height="140" /></div>';
}
สำหรับตอนที่ผมทำในappservมันต้องรีเฟรชรูปก่อนมันถึงจะแสดงรูปใหม่ครับ
ส่วนการแก้ไขข้อมูลอื่นๆไม่มีปัญหาครับ
ขอรบกวนจริงๆครับ เพราะ project ใกล้ present แล้ว และติดปัญหานี้อยู่อย่างเดียวครับ
ขอบคุณครับ
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
28 ก.พ. 2551 23:07:40 |
By :
กิ๊บ |
View :
1372 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าเป็นปัญหาที่การ Refresh หน้าจอ ลองสั่ง Refresh ด้วย Java Script ดู
หรือไม่ก็ลองแบบใช้ function เปลี่ยนหน้าแต่อ้างหน้าเดิม เช่น window.open('index.php') หรือ location.replace('index.php')
|
 |
 |
 |
 |
Date :
29 ก.พ. 2551 08:44:28 |
By :
... |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ แต่ว่าขอแบบละเอียดนิดนึงครับ คือไม่ค่อยเข้าใจ Java Script ครับ
แล้วต้องเอาไปใส่หน้า profile_edit_add.php (หน้าบันทึก) หรือว่าใส่หน้า profile_details.php (หน้าแสดงผล) ครับ
ส่วนนี้คือโค้ดที่ผมใส่หลังจากบันทึกข้อมูลครับ
echo "<meta http-equiv='refresh' charset=utf-8 content='2;url=profile_details.php'>" ;
|
 |
 |
 |
 |
Date :
29 ก.พ. 2551 10:30:23 |
By :
กิ๊บ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใส่ตอนแสดงผลครับ
$str = "<script>";
$str = "window.location.reload()";/*"window.location.replace('index.php')";*//*$str = "window.open('index.php')";*/
$str = "</script>";
echo $str;
แต่ควรหาตัวแปรมากำหนดค่าให้มัน echo แค่ 1 ครั้งนะคับ ไม่งั้นเด๋วมันอาจจะเป็น loop ได้
ลองดูผมว่าน่าจะใช้ได้
|
 |
 |
 |
 |
Date :
29 ก.พ. 2551 11:01:01 |
By :
... |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
ผมลองเขียนให้มัน Refresh เองหน้าแสดงผล
<SCRIPT language="JavaScript">
function timerefresh(t)
{
if(t==0)
{
window.location.reload();
}
else
{
t--;
}
window.setTimeout("timerefresh('"+t+"')",1000)
}
timerefresh(2);
</script>
ผลปรากฎว่าทำได้แล้วครับ แต่ว่ามัน Refresh ทุก 2 วิเลยครับ แล้วผมต้องทำยังไงให้ Refresh แค่ครั้งเดียวครับ
|
 |
 |
 |
 |
Date :
29 ก.พ. 2551 11:58:18 |
By :
กิ๊บ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อัพเดทแยกหน้าเหรอครับ เพราะปกติ ก็ไล่เพจไปเรื่อยๆ ยังไงมันก็รีเฟรชกลับมาหน้า show อยู่แล้ว
$result = mysql_query("update members set name='$name', sname='$sname',nname='$nname',sex='$sex', faculty='$faculty', bday_day='$bday_day', bday_month='$bday_month', bday_year='$bday_year', province='$province', telephone='$telephone', email='$email', picture='$picturenew$filenewcon' where memberID='".$_SESSION['login_true']."'") or die ("database Error ");
echo "<meta http-equiv='refresh' charset=utf-8 content='2;url=profile_details.php'>" ;
}else{
$result = mysql_query("update members set name='$name', sname='$sname',nname='$nname',sex='$sex', faculty='$faculty', bday_day='$bday_day', bday_month='$bday_month', bday_year='$bday_year', province='$province', telephone='$telephone', email='$email' where memberID='".$_SESSION['login_true']."'");
echo "<meta http-equiv='refresh' charset=utf-8 content='2;url=profile_details.php'>" ;
}
|
 |
 |
 |
 |
Date :
29 ก.พ. 2551 18:19:08 |
By :
ผ่านไป |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|