一位朋友與一些WordPress 代理機構簽約,創建一個網頁,該網頁根據用戶在表單上輸入的輸入數據創建自定義URL 以重定向到顯示一些租車數據的第三方API,該WordPress 是使用elementor完成的插件,問題是,當重定向查詢參數分隔符號被編碼為html 實體時,即url 必須類似於www.site.com/?value1=value1&value2=value2&value3=value3
但插件正在將url 改為www.site .com/?value1=value1&value2=value2&value3=value3
&
正在被編碼為&
,該機構未完成工作,不想也無法修復此問題,他問我是否可以修復它,我不是WordPress 開發人員,所以對我來說很困難,在其他帖子中有人告訴我,我可以創建一個自定義解碼器php檔案來在WordPress 安裝的根資料夾上處理這個問題,而不是將表單重定向到第三個第三方API 我可以重定向到網站網域上的自訂解碼器並修復url,然後重定向到第三方API,但我無法取得php 腳本中的表單發送的url 我現在有此程式碼
<?php ob_start(); $API_BASE_URL="www.site.com/"; $bad_url={here must be the url sent by the form}; //here is fixed the url $good_url=html_entity_decode($bad_url); //concatenation of API_BASE_URL and goodurl $redirect_url=&API_BASE_URL.$good_url //redirects to fixed url header('Location: '.$redirect_url); exit(); ?>
我還看到 $_SERVER['HTTP_REFERER']
可用來取得此網址,但這並不可靠,所以我需要另一種方法來取得表單的網址,我該怎麼做?該表單現在將重定向到www.misytedomain.com/custom-decoder/decoder.php/?value1=value1&value2=value2&value3=value3
這是我必須用來建置發送到API 的url 的url。 < /p>
編輯:
抱歉,如果我錯過解釋,例如,表單現在重定向到www.site.com/?value1=value1&value2=value2&value3=value3
但這在API 上不起作用,所以我將改為redirec到該URL重定向到我的網域上的位置,其中php檔案類似於www.mysitedomain.com/custom-decoder/decoder.php
我認為我可以添加錯誤的查詢參數,例如www.mysitedomain.com/custom-decoder /decoder.php/?value1=value1&value2=value2&value3=value3
採用錯誤的參數,使用php 邏輯修復,最後使用正確邏輯的參數重定向到API,例如www.site.com/?value1=value1&value2=value2&value3= value3
www.site.com
是api,www.mysitedomain.com
是我的WordPress 網域
配置從外掛程式到您自己的 PHP 腳本的重定向(不要忘記新增損壞的查詢參數),然後在
$_SERVER['REQUEST_URI']
中存取錯誤的查詢參數