การเรียกส่วนหัว PHP สำหรับการเปลี่ยนเส้นทางหน้าภายใน

ฉันมีแบบฟอร์มติดต่อ และหลังจากการตรวจสอบความถูกต้องเสร็จสมบูรณ์ ฉันต้องการให้แบบฟอร์มเปลี่ยนเส้นทางไปยังไฟล์ messageSent.php อื่น ฉันคิดว่าการใช้ include ใช้งานได้ แต่นั่นเป็นการเพิ่มทั้งหน้าเกี่ยวกับหน้าติดต่อ

ฉันอ่านเพื่อใช้ฟังก์ชัน header() เพื่อเปลี่ยนเส้นทางเพจ แต่ตัวอย่างทั้งหมดแสดงโดยใช้ตำแหน่ง URL ของไซต์ที่ใช้งานอยู่ ไฟล์ของฉันทั้งหมดเป็นแบบภายในและฉันกำลังทดสอบในเครื่อง

ฉันจะเรียกใช้ฟังก์ชัน header() อย่างถูกต้องเพื่อเปลี่ยนเส้นทางไปยังหน้าในโฟลเดอร์รูทของฉันได้อย่างไร

PHP:

if(!empty($_POST)){
$POST = filter_post($_POST);
$invoice = array_splice($POST,3,1);
$MSG = check_empty($POST);
$email = test_input($_POST["email"]);

if(!array_filter($MSG)){
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    $MSG[] = "Invalid Email Format ([email protected])";
    }
    else{
        $POST['invoice'] = $invoice['invoice'];
        if(send_mail($POST)){
            include '/Users/orobosaenagbare/Dropbox/Websites/Se7en Service/messageSent.php';
        }
        else{
            $MSG[] = "Email Failed";
        }
    }
}
}

person blackRob4953    schedule 03.09.2015    source แหล่งที่มา
comment
เส้นทางที่คุณส่งด้วย header('Location: path'); สามารถสัมพันธ์กัน: header('Location: messageSent.php');   -  person samlev    schedule 03.09.2015
comment
มันใช้งานได้สมบูรณ์แบบ ขอบคุณ!   -  person blackRob4953    schedule 03.09.2015
comment
แต่ URL ที่เป็นเช่น localhost:8888/contact.php จะไม่ทำงานในระดับสากลเมื่อฉันใส่สิ่งนี้ ทั้งหมดมีชีวิตอยู่ เพียงพยายามลดและข้อผิดพลาดให้เหลือน้อยที่สุด @ป๊อปนู้ดเดิ้ล   -  person blackRob4953    schedule 03.09.2015
comment
เป็นเรื่องปกติที่จะใช้ไฟล์การกำหนดค่าที่ไม่ซ้ำกันสำหรับการติดตั้งแต่ละครั้งซึ่งมีสิ่งต่างๆ เช่น ชื่อโฮสต์อยู่ในนั้น (ซึ่งสามารถรับได้ด้วย $_SERVER['HTTP_HOST'])   -  person samlev    schedule 03.09.2015
comment
@samlev จะเกิดอะไรขึ้นถ้ามันเป็นโฟลเดอร์/ย่อยอื่น? เช่น. ข้อมูลเข้าสู่ระบบของฉันคือ site.com/login แต่ถ้าฉันใส่ Location: home มันก็จะพยายามเข้าสู่ระบบ/home   -  person Chillin'    schedule 07.04.2020


คำตอบ (1)


คุณสามารถโทร:

header('Location: relative/path/to/file.php');

และมันควรจะได้ผล ขึ้นอยู่กับเว็บเซิร์ฟเวอร์ท้องถิ่นและไดเร็กทอรีรูทของเว็บของคุณ คุณสามารถใช้พาธสัมบูรณ์จากไดเร็กทอรีรูทของเว็บโดยนำหน้าด้วย /

สิ่งสำคัญคือต้องทราบว่าจะต้องเรียก header() ก่อนเอาต์พุตใดๆ

person Devon    schedule 03.09.2015