ใช้สตริงการสืบค้นใน URL เพื่อแสดงเนื้อหาบนหน้า


9

ฉันต้องการจะพูดอะไรบางอย่างบนหน้าของฉันตามสิ่งที่หน้าคนได้จาก ฉันสามารถตั้งค่าลิงค์ไปยังหน้านั้นเป็น:

www.example.com/page?parameter=myparameter

มีวิธีที่ฉันสามารถเข้าถึงพารามิเตอร์นั้นเพื่อให้ฉันสามารถแสดงบนหน้าเว็บที่ไหนสักแห่งในเนื้อหาของฉัน?


ขออภัยฉันเข้าใจว่าคำตอบเป็นตัวอย่าง แต่ฉันคิดว่าสิ่งสำคัญที่ควรทราบคือไม่ควรใช้ตามที่เป็นอยู่ อินพุตของผู้ใช้ (เช่นพารามิเตอร์สตริงข้อความค้นหา) ไม่ควรสะท้อนให้เห็นว่าไม่ได้รับอนุญาตเพื่อป้องกันการโจมตี XSS ! คำตอบทั้งหมดจนถึงตอนนี้มีความเสี่ยงต่อ XSSและอย่างน้อยควรมีคำเตือน
kubi

คำตอบ:


4

คุณสามารถใช้เซสชั่น PHP, ดูในวัตถุคิวรี่ของคำขอหรือใช้ $ _GET พร้อมกับ url ของคุณ แต่ไม่ใช่ข้อมูลที่ละเอียดอ่อน ...

บางสิ่งเช่นนี้

หยิบชื่อการเดินทางจาก URL

$tripname = $_GET['tripname'];

ใช้มันในส่วนหัวของคุณ;

if(isset($tripname)) echo '<h1>Plan Your Trip To ' .$tripname. '</h1>';


ขอบคุณ! นี่ไม่ใช่ข้อมูลที่ละเอียดอ่อน ฉันจะทำยังไงต่อไป?
3515

สิ่งนี้อาจช่วยคุณได้: w3schools.com/php/php_get.asp
Dan

ขอบคุณ! ฉันสามารถวางลงบนหน้าตรงหรือไม่ก็ต้องเข้าไปในไฟล์แม่แบบ?
user3515

ขึ้นอยู่กับตำแหน่งที่คุณต้องการ - ถ้ามันแสดงเฉพาะในเพจที่ทำงานบนเทมเพลตเดียวคุณก็จะวางไว้ที่นั่น ข้อมูลมาจากไหนและจะไปอยู่ที่ไหน
ด่าน

เรื่องราวเป็นเช่นนี้: ฉันมี 'หน้าการเดินทาง' จำนวนมากซึ่งแต่ละแห่งมีข้อมูลเกี่ยวกับการเดินทางที่เราเรียกใช้ จากนั้นพวกเขาคลิก "ลงทะเบียน" และนำพวกเขาไปยังหน้าที่มีแบบฟอร์มลงทะเบียน (แบบฟอร์มแรงโน้มถ่วง) ฉันต้องการหน้า (หรือรายละเอียดอื่น ๆ ด้านบนของแบบฟอร์ม) เพื่อพูดว่า "กรอกแบบฟอร์มนี้เพื่อลงทะเบียนสำหรับการเดินทาง xxxx"
user3515

4

ตามคำตอบของ OP ภายในคำถาม:

ด้วยความช่วยเหลือของคุณและ Google บางตัวฉันได้รวบรวมรหัสย่อที่ส่งคืนค่าพารามิเตอร์ url ใด ๆ นี่มันคือ:

//THIS IS A CUSTOM SHORTCODE TO DISPLAY A PARAMETER FROM THE URL
function URLParam( $atts ) {  
    extract( shortcode_atts( array(
        'param' => 'param',
    ), $atts ) );
    return $_GET[$param];  
}
add_shortcode('URLParam', 'URLParam'); 

ฉันใช้รหัสย่อเช่นนี้เพื่อรับtrip_typeจาก URL ของฉัน:

[URLParam param='trip_type']

สิ่งนี้ช่วยฉันขอบคุณ! ฉันจะรับค่าจากข้อมูลการโพสต์ฟอร์มแทนสตริงการสืบค้นได้อย่างไร
Amjad

1

นี่เป็นอีกวิธีที่ยอดเยี่ยมในการทำสิ่งนี้ให้สำเร็จ สิ่งนี้จะไม่ต้องใช้รหัสย่อและจะอัปเดตแต่ละหน้าที่คุณสร้างโดยอัตโนมัติซึ่งมีพารามิเตอร์ "การเดินทาง" อยู่!

1) นำทางไปยังโฟลเดอร์ชุดรูปแบบของคุณและเปิดfunction.php (หรือสร้างหากไม่มี)

2) เพิ่มรหัสต่อไปนี้และบันทึก:

<?php 
    add_filter( 'the_content', 'my_trip_filter' );

    function my_trip_filter( $content ) {
        if ( isset($_REQUEST['trip']) && is_single() ) {
            $content = "<h1>Fill out this form to register for the " . $_REQUEST['trip'] . " trip</h1>" . $content;
        }

        return $content;

    }
?>

รหัสนี้ใช้ตัวกรอง_contentเพื่อแทนที่แต่ละครั้งที่คุณใช้ฟังก์ชันthe_content ()ฟังก์ชันเพื่อพิมพ์ข้อมูลบล็อกของคุณ มันตรวจพบว่าหน้าเว็บที่ร้องขอนั้นเป็นหน้า / โพสต์เดียวและไม่ใช่ไฟล์เก็บถาวรหรือไม่ สามารถเพิ่มตรรกะหรือการแทนที่เพิ่มเติมได้ เพียงแค่ให้แน่ใจว่าคุณได้รับเนื้อหา $และข้อความใด ๆ ที่คุณต้องการจะกลับไปที่หน้าจอ

สนุก!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.