ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingPHP ขอถามเกี่ยวกับ redirect หน้าเว็บครับ
หน้า: [1] 2  ทั้งหมด   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: PHP ขอถามเกี่ยวกับ redirect หน้าเว็บครับ  (อ่าน 4621 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« เมื่อ: 24 พฤศจิกายน 2007, 23:00:57 »

คือถ้าเราต้องการให้คนอัพโหลดไฟล์อ่านทาง index.php แล้วไป form upload.php
แต่เราไม่ต้องการให้คนเข้ามาทาง http://www.domain.com/upload.php โดยตรง เลยนี่ทำไงครับ
คือถ้ามีคนเข้ามาผ่านทาง http://www.domain.com/upload.php โดยที่ไม่ผ่านการอัพโหลดไฟล์ทางหน้า index.php  ให้ redirect มาหน้า index.php เลยอ่ะครับ
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #1 เมื่อ: 24 พฤศจิกายน 2007, 23:48:01 »

รอผู้รู้ ช่วยตอบทีครับ
บันทึกการเข้า
BosnoS
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 222
ออฟไลน์ ออฟไลน์

กระทู้: 5,944



ดูรายละเอียด
« ตอบ #2 เมื่อ: 24 พฤศจิกายน 2007, 23:50:52 »

$url =  parse_url($_SERVER['HTTP_REFERER']);
$domain = "jeedza.com"; //แก้เป็นโดเมนของเรา
if(!eregi($domain, $url['host'])) die("กรุณากรอกข้อมูลผ่านทางเว็บเราเท่านั้นครับ");


อันนี้ผมเอามาจาก คุณโจ้ Ethaizone นะครับ เป็นการเช็คที่มา ว่า เข้าหน้านี้โดยผ่านหน้าไหนมาก่อน

น่าจะเอาไปประยุกต์ เป็นโจทย์ที่คุณบอกได้ (มั่ง)  Tongue
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #3 เมื่อ: 25 พฤศจิกายน 2007, 00:10:00 »

ไม่ได้ครับ แป่วๆ  Cry
คือเอาไปใส่แล้ว มันกลับอัพโหลดไรไม่ได้เลยงับ
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #4 เมื่อ: 25 พฤศจิกายน 2007, 00:24:59 »

รอคุณ Ethaizone กับคุณ icez มาตอบคับ *-* หรือผู้รู้ ช่วยทีคับ
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 25 พฤศจิกายน 2007, 00:51:18 »

ใช้วิธีเช็คค่าจากปุ่มซัพมิทสิครับ

สมมุติฟอร์มแบบ post
แล้วผมใช้ปุ่มแบบนี้  <input type="submit" name="submit" value="Upload" />

ก็...

if($_POST['submit'] != "Upload") die("กรุณากรอกข้อมูลผ่านทางเว็บเราเท่านั้นครับ");

ประมาณนี้  Tongue

-------------------
อ่า ลืมคิดไปกรณีโดนขโมยฟอร์ม เดียวมาโพส - -*

« แก้ไขครั้งสุดท้าย: 25 พฤศจิกายน 2007, 00:56:33 โดย EThaiZone » บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 25 พฤศจิกายน 2007, 01:02:06 »

$url =  parse_url($_SERVER['HTTP_REFERER']);
$domain = "google.com"; //แก้เป็นโดเมนของเรา
if(!eregi($domain, $url['host'])) die("กรุณากรอกข้อมูลผ่านทางเว็บเราเท่านั้นครับ");
if(!eregi("index.php", $url['path'])) die("คุณไม่ได้มาจากหน้าหลักของเรา [2]"); //ใช้ตรวจว่ามาจาก index.php หรือเปล่า

อันนี้ใช้ได้ผลนะครับ อย่าลืมแก้โดเมนด้วยล่ะ

บันทึกการเข้า

lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #7 เมื่อ: 25 พฤศจิกายน 2007, 01:11:35 »

เอาไปใส่ตรงไหนครับ อันนี้ code หน้า upload.php
         <?   
  preg_match('/\.([a-zA-Z]+?)$/', $_FILES['file']['name'], $matches);
    if(in_array(strtolower($matches[1]), $accepted)) {
        if($_FILES['file']['size'] <= $maxsize) {
            $newname = md5_file($_FILES['file']['tmp_name']).'.'.$matches[1];
            move_uploaded_file($_FILES['file']['tmp_name'], $filedir.'/'.$newname);
            $linkurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']);
            $imgurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']).$filedir.'/'.$newname;
            print '<H1><CENTER><B>Upload Succesful</B></CENTER></H1>           
   
        } else
            echo ("<B><CENTER><H1>Your File Size is too large please reduce the size and try again.</H1></CENTER></B><br> <a href=\"index.php\"><B><CENTER><H1>Upload again</H1></CENTER></B></a>");
    } else
       echo  ("<B><CENTER><H1>File type is not support</H1></CENTER></B><br> <a href=\"index.php\"><B><CENTER><H1>Upload again</H1></CENTER></B></a>");   
}
?>
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 25 พฤศจิกายน 2007, 01:21:50 »

ใส่หลัง <? เลยครับ

แล้วก็แก้ google.com ในนั้นเป็นโดเมนตัวเอง
แล้วข้อความอีก 2 จุด อยากแก้เป็นคำอื่นก็แล้วแต่ครับ

 Smiley
บันทึกการเข้า

lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #9 เมื่อ: 25 พฤศจิกายน 2007, 01:30:22 »

คือผมใส่ไป
         <?                  
   $url =  parse_url($_SERVER['HTTP_REFERER']);
$domain = "โดเมนของเรา"; //แก้เป็นโดเมนของเรา
if(!eregi($domain, $url['host'])) die("Error please select an image and click upload ");
if(!eregi("index.php", $url['path'])) die("Error please select an image and click upload");
  preg_match('/\.([a-zA-Z]+?)$/', $_FILES['file']['name'], $matches);
    if(in_array(strtolower($matches[1]), $accepted)) {
        if($_FILES['file']['size'] <= $maxsize) {
            $newname = md5_file($_FILES['file']['tmp_name']).'.'.$matches[1];
            move_uploaded_file($_FILES['file']['tmp_name'], $filedir.'/'.$newname);
            $linkurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']);
            $imgurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']).$filedir.'/'.$newname;
            print '<H1><CENTER><B>Upload Succesful</B></CENTER></H1> 

           } else
            echo ("<B><CENTER><H1>Your File Size is too large please reduce the size and try again.</H1></CENTER></B><br> <a href=\"index.php\"><B><CENTER><H1>Upload again</H1></CENTER></B></a>");
    } else
       echo  ("<B><CENTER><H1>File type is not support</H1></CENTER></B><br> <a href=\"index.php\"><B><CENTER><H1>Upload again</H1></CENTER></B></a>");   

?>

ผมลองอัพ โหลดไฟล์จากหน้า index.php มันก็แสดงขึ้นว่า Error please select an image and click upload อ่ะครับ
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 25 พฤศจิกายน 2007, 01:54:05 »

แปลกนะครับ เพราะผมลองในเครื่องก็ใช้ได้
เอาโค้ดไปให้เว็บอื่นใช้ก็ใช้ได้

ลอง echo ค่า  $_SERVER['HTTP_REFERER']  ออกมาดูหน่อยสิครับ
บันทึกการเข้า

lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #11 เมื่อ: 25 พฤศจิกายน 2007, 02:07:07 »

<?
echo $_SERVER['HTTP_REFERER'];
?>
ผมลองงี้ แล้ว รันดู มันเป็นหน้าจอสีขาวธรรมดาอะครับ ไม่มีอะไรเลย
error ก็ไม่มี
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 25 พฤศจิกายน 2007, 02:11:44 »

เดียวก่อนนะครับ

ผมบอกไม่ละเอียด คือให้ลองอัพโหลดไฟล์ตามปกติอะ
แล้วค่อยดูว่ามีค่าอะไรคืนมาไหม

คือว่าถ้าไม่มีอะไรผิดปกติ เวลาอัพโหลดไป
echo $_SERVER['HTTP_REFERER'];

แล้วมันจะคืนค่าเป็น url ของหน้า index.php มาครับ (คืน referrer มาว่างั้นเถอะ)

ลองดูครับ  Tongue

ปล. ขอไปนอนก่อนนะ พรุ่งนี้มีเรียน
« แก้ไขครั้งสุดท้าย: 25 พฤศจิกายน 2007, 02:16:17 โดย EThaiZone » บันทึกการเข้า

lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #13 เมื่อ: 25 พฤศจิกายน 2007, 02:18:05 »

อ่อ ผมลองอัพล่ะคับ ( รันในเครื่องใช้ appserv รุ่น 2.5.8
ได้ค่าคืนกลับมาคือ
http://localhost/upload/index.php นั่นก็ืคือหน้า แรกนั่นเอง
แต่ งงว่าไม เอา code พี่ Ethaizone ไปใส่ กลับโชว์แต่คำ ว่า
Error please select an image and click upload ตามที่ผมได้่ใส่ไปใน code
 $url =  parse_url($_SERVER['HTTP_REFERER']);
$domain = "โดเมนของเรา"; //แก้เป็นโดเมนของเรา
if(!eregi($domain, $url['host'])) die("Error please select an image and click upload ");
if(!eregi("index.php", $url['path'])) die("Error please select an image and click upload");

สงสัยคงเกี่ยวกับ if else ป่ะครับ มันไปซ้อนกับ code ของผม
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #14 เมื่อ: 25 พฤศจิกายน 2007, 02:24:49 »

อ่อๆพี่ครับได้แล้วคับ
ผมโง่เอง  ตรง $domain = "localhost"; //แก้เป็นโดเมนของเรา
ตอนแรกผมไม่ได้ใส่ localhost ไปใส่ domain แล้วรันในเครื่อง เลยไม่ได้
555
ยังไงขอบคุณมากครับ ที่สละเวลามาตอบ
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,459



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 25 พฤศจิกายน 2007, 02:26:00 »

กำลังจะปิดคอม มากดอ่านอีกที

คือเรื่อง if นี้ไม่เกี่ยวกับครับ
เพราะ if ถ้าไม่ใส่ {} มันจะทำงานแค่บรรทัดเดียวต่อตาก if
ส่วนการไม่มี else ก็ไม่มีผลอะไรครับ

ผมว่า ตรง
$domain = "โดเมนของเรา";

นี้ คุณใส่ถูกหรือเปล่าครับ
อย่างถ้ารันในเครื่อง ก็ใส่
$domain = "localhost";

ถ้าเกิดผมทำเว็บอัพโหลดไว้ ethaizone.com/upload/index.php
ก็จะใส่เป็น
$domain = "ethaizone.com";

นะครับ  :Smiley

ปล. พรุ่งนี้ไปเรียนสายแน่ๆ  Cry

-----------------------------------

คำเตือน - มีกระทู้ตอบใหม่ ขณะที่คุณพิมพ์ข้อความ อยากให้คุณแสดงตัวอย่างก่อนตั้งกระทู้

อ่อๆพี่ครับได้แล้วคับ
ผมโง่เอง  ตรง $domain = "localhost"; //แก้เป็นโดเมนของเรา
ตอนแรกผมไม่ได้ใส่ localhost ไปใส่ domain แล้วรันในเครื่อง เลยไม่ได้
555
ยังไงขอบคุณมากครับ ที่สละเวลามาตอบ


ซะงั้นอะ  Shocked
บันทึกการเข้า

lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #16 เมื่อ: 25 พฤศจิกายน 2007, 02:30:27 »

แล้วถ้าจาเปลี่ยนให้มันredirect อัตโนมัตกลับมาหน้า index เลย นี่ทำไงหรือครับ
ผมลองใช้
header('Location: http://www.domain.com/ '); แทน die("Error please select an image and click upload ");
ก็ไม่ได้อ่ะครับ
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #17 เมื่อ: 25 พฤศจิกายน 2007, 02:31:33 »

โทดทีครับที่ให้มาตอบอยู่เรื่อยๆ ไว้พรุ่่งนี้ค่อยมาตอบก็ได้ครับ ไม่รีบๆ
 Smiley
บันทึกการเข้า
lce
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 67



ดูรายละเอียด
« ตอบ #18 เมื่อ: 25 พฤศจิกายน 2007, 15:21:57 »

ขุดต่อครับ รอพี่ Ethaizone
บันทึกการเข้า
bankkungz
สมุนแก๊งเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 948



ดูรายละเอียด
« ตอบ #19 เมื่อ: 25 พฤศจิกายน 2007, 15:30:08 »

ขุดครับ

น่าสนดีครับ

เอาไปประยุคได้หลายอย่างเลย (เท่าทีนึกๆดูนะ อิอิ *-*)
บันทึกการเข้า

หน้า: [1] 2  ทั้งหมด   ขึ้นบน
พิมพ์