ถามเรื่องการทำ redirect

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

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

snamlove
PHP Jr. Member
PHP Jr. Member
Posts: 16
Joined: 24/09/2009 7:32 pm

ถามเรื่องการทำ redirect

Post by snamlove »

header("Location: main.php");
echo "<meta http-equiv=\"refresh\" content=\"0;URL=main.php\" />";

อยากทราบว่า ทั้ง 2 อันนี้ ใช้ต่างกันอย่างไร

มือใหม่คับ
ผมใช้ AppServ + apache +mySql +phpMyadmin

และอยากทราบว่า ในเมื่อ redirect ไป เราสามารถจะส่งค่าอะไรไปด้วยได้รึเปล่า
เพราะกำลังทำหน้าอัพโหลดรูปภาพ และเมื่ออัพโหลดเสร็จให้มันกลับมาหน้าอัพโหลดนั่นแหละ
แต่ว่า มีโชว์รูปภาพที่อัพโหลดไปแล้วขึ้นมาด้วย

เนื่องจากเมื่ออัพโหลดเสร็จแล้ว พอ redirect มันไม่ได้ส่งค่าไป เลยทำให้ดึงภาพออกมาโชว์ไม่ได้
โชว์แต่หน้าอัพโหลดเหมือนเดิม แต่ว่าข้อมูลและรูปภาพถูกบันทึกเรียบร้อยหมดนะครับ พอรันจากหน้าที่ส่งค่าเข้ามาก็แสดงผลได้ถูกต้อง
ไม่ทราบว่าจะทำยังได้บ้างครับ เคยพยายามลองทำ session แต่ไม่ค่อยชำนาญ ใครมีวิธีง่ายๆ แนะนำหน่อยคับ

หน้าตาประมาณนี้อะคับ คือตอนโชว์มันต้องรับค่า id ของ ชื่ออัลบั้มรูป เพื่อดึงเอารูปทั้งหมดที่อยู่ในอัลบั้มนั้นๆ ออกมาโชว์

Image

Code: Select all

]<?php
$photo=$_FILES['photo'] ['tmp_name'];
$photo_name=$_FILES['photo'] ['name'];
$photo_size=$_FILES['photo'] ['size'];
$photo_type=$_FILES['photo'] ['type'];
$id_title=$_POST['id_title'];
$name_folder=$_POST['name_title'];
$detail=$_POST['detail'];

if	(!$photo)
{
	echo	"<h3>ไม่สามารถ Upload รูปภาพได้</h3>";
	exit();
}
$ext=strtolower(end(explode('.',$photo_name)));
include	"filename.php";
$filename=$file_name.".".$ext;

if	($ext=="jpg" or $ext=="jpeg" or $ext=="gif" or $ext=="png")
{
	//เพิ่มข้อมูลลงในตาราง tb_photo
	include	"connect.php";
	$sql="insert into tb_photo values(null,'','$detail','$id_title')";
	mysql_db_query($dbname,$sql);
	
	//หา id_photo ที่มากที่สุดของ tb_photo
	$sql="select max(id_photo) from tb_photo";
	$result=mysql_db_query($dbname,$sql);
	$r=mysql_fetch_array($result);
	$id_max=$r[0];
	
		copy($photo,"images_large/$name_folder/$filename");
		if	($ext=="jpg" or $ext=="jpeg" )
		{
			$ori_img=imagecreatefromjpeg($photo);
		} else if	($ext=="gif") {
			$ori_img=imagecreatefromgif($photo);
		} else if	($ext=="png") {
			$ori_img=imagecreatefrompng($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/$name_folder/$filename");
	} else if	($ext=="png") {
		imagepng($new_img,"images_small/$name_folder/$filename");
	} else if	($ext=="gif") {
		imagegif($new_img,"images_small/$name_folder/$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	"
	<FORM NAME=\"aceButton\"><INPUT TYPE=\"BUTTON\" VALUE=\"กลับหน้าหลัก\" onClick=\"self.location.href=('m_photo.php?id_title=$id_title')\"></FORM>";
	//<?php
	//echo	"<a href='m_photo.php?id_title=$id_title'>กลับหน้าหลัก</a>";
	//echo "<meta http-equiv=\"refresh\" content=\"0;URL=m_photo.php\" />";<<<<<<-----ตามที่จริงจะใส่อันนี้ แต่มันไม่โชว์ เลยต้องทำลิงค์คลิกกลับเอง
	mysql_close();
} else {
	echo	"<h3>ไม่สามารถ Upload รูปภาพได้ครับ</h3>";
	echo	"<a href='m_photo.php?id_title=$id_title'>กลับหน้าหลัก</a>";
}
?>
จากโค้ดข้างบนใช้ได้แบบไม่ redirect พอคลิก กลับหน้าหลักมันก็โชว์รูปได้เหมือน ภาพแรก
Image


ถ้าเกิดเปิดใช้งาน redirect ส่วนที่คอมเม้นท์ไว้ จะเป็นแบบนี้ ว่างเปล่าเลย
Image

ยาวหน่อยนะครับ กลัวไม่ชัดเจน ใครพอมีวิธีก็บอกหน่อยนะครับ

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

Re: ถามเรื่องการทำ redirect

Post by mindphp »

Code: Select all

header("Location: main.php");
echo "<meta http-equiv=\"refresh\" content=\"0;URL=main.php\" />";
header("Location: ***?action=xxxx") redirect ด้วย php ไม่ต้องรอให้เปิดหน้านั้นๆ ก่อน user (client) จะไม่รู้ว่า ไปที่หน้าอื่นที่ขั้นตอนไหนตอนไหน (ไม่ต้องรอให้ php ทำงานจนจบ ก็ redirect ไปได้เลย)

<meta http-equiv=\"refresh\" content=\0";URL=main.php?action=xxxx\" /> redirect ด้วย html ทำงานทาง ฝั่ง client สามารถหน่วงเวลาให้รอได้ก่อนจะเปลี่ยนหน้า
ติดตาม 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

snamlove
PHP Jr. Member
PHP Jr. Member
Posts: 16
Joined: 24/09/2009 7:32 pm

Re: ถามเรื่องการทำ redirect

Post by snamlove »

mindphp wrote:

Code: Select all

header("Location: main.php");
echo "<meta http-equiv=\"refresh\" content=\"0;URL=main.php\" />";
header("Location: ***?action=xxxx") redirect ด้วย php ไม่ต้องรอให้เปิดหน้านั้นๆ ก่อน user (client) จะไม่รู้ว่า ไปที่หน้าอื่นที่ขั้นตอนไหนตอนไหน (ไม่ต้องรอให้ php ทำงานจนจบ ก็ redirect ไปได้เลย)

<meta http-equiv=\"refresh\" content=\0";URL=main.php?action=xxxx\" /> redirect ด้วย html ทำงานทาง ฝั่ง client สามารถหน่วงเวลาให้รอได้ก่อนจะเปลี่ยนหน้า
โอเคคับ ขอบคุณ
ใช้ได้แล้วทั้ง 2 อันครับ
ต้องไปใช้ session ช่วย
มั่วๆ ไปจนได้

snamlove
PHP Jr. Member
PHP Jr. Member
Posts: 16
Joined: 24/09/2009 7:32 pm

Re: ถามเรื่องการทำ redirect

Post by snamlove »

ขอถามเพิ่มเติม


ในระหว่างที่เรา redirect ไป เราจะสามารถส่งค่า
ตัวแปรอะไรไปด้วยได้รึป่าวครับ ถ้าส่งไปได้แล้ว
เวลารับต้องทำยังไง $_GET, $_POST รึป่าว

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

Re: ถามเรื่องการทำ redirect

Post by mindphp »

ตอบไปแล้วไงครับ

Code: Select all

?action=xxxx
ส่งผ่านทาง url ก็รับ แบบ GET
ติดตาม 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

snamlove
PHP Jr. Member
PHP Jr. Member
Posts: 16
Joined: 24/09/2009 7:32 pm

Re: ถามเรื่องการทำ redirect

Post by snamlove »

mindphp wrote:ตอบไปแล้วไงครับ

Code: Select all

?action=xxxx
ส่งผ่านทาง url ก็รับ แบบ GET
อ่าว มองไม่เห็น

?action="$id"

แบบนี้ใช่ปะคับ

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

Re: ถามเรื่องการทำ redirect

Post by mindphp »

ตามนั้นครับ
ติดตาม 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

snamlove
PHP Jr. Member
PHP Jr. Member
Posts: 16
Joined: 24/09/2009 7:32 pm

Re: ถามเรื่องการทำ redirect

Post by snamlove »

ขอบคุณคับ มีประโยชน์มากๆ
ทีนี้ก็ไม่ได้กำหนด session ละ พอประกาศ session หลายตัว
ชอบมีปัญหา

ขอรบกวนต่อีกนิสคับ ทั้งสองแบบ สามารถจะระบุ target ได้ไหมคับ - -" ขอโทษทีนึกได้ทีละอย่าง

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 11 guests