[英]JavaScript/PHP: Get referral key URL
我正在研究ajax(本機JavaScript)表單。 我在獲取引薦密鑰並將其發送到PHP后端時遇到了麻煩。
這個想法是ajax請求將整個URL(帶有表單數據)作為字符串發送給PHP引擎。 然后,我可以在PHP中分解URL並提取密鑰。
這是我到目前為止的內容:
頁面網址:
http://example.com?ref=gr84r34ijg98g
JS:
// Send the form data with the URL
function getquerystring() {
var email = document.getElementById('email').value;
var URL = document.URL;
qstr = 'email=' + email + '& URL=' + URL;
return qstr;
}
然后,在我的PHP中,我可以檢索表單數據和URL:
$email = $_POST['email'];
$url = $_POST['URL'];
然后,我該如何細分URL,以便最后只有字符串形式的代碼? 我當時想我可以在發送之前分解JavaScript中的URL,盡管我認為使用PHP進行此操作可能更容易。
像preg_match()
這樣的東西可能會刪除“ http://example.com?ref= ”。 雖然不是很確定該怎么做。
是的,您可以在Javascript中獲得ref
的值
function getquerystring() {
var email = document.getElementById('email').value;
var URL = document.URL;
var URL_arr = URL.split('ref='); //<-- URL_arr[1] will give ref string
qstr = 'email=' + email + '&URL=' + URL;
return qstr;
}
function getquerystring() {
var email = document.getElementById('email').value;
var URL = document.URL;
qstr = '?email=' + email + '& URL=' + URL;
return qstr;
}
嘗試這個。
$ email = $ _GET ['email']; $ url = $ _GET ['URL'];
URL ..之前有多余的空格,您應該使用encodeURIComponent對其進行編碼。 更新此行
qstr = 'email=' + encodeURIComponent(email) + '&URL=' + encodeURIComponent(URL);
而在PHP方面
$url = url_decode($_POST['URL']);
$email = url_decode($_POST['email']);
嘗試這個:
var query = window.location.search.substring(1).split('&');
var ref = '';
$.each(query, function(i, v) {
v = v.split('=');
if (v[0] === 'ref') {
ref = v[1];
return false;
}
});
console.log(ref);
在包含所有內容之后,為什么不直接在PHP中執行以下操作(將其放置在標頭中(如果希望在所有頁面上都可以使用)或在index.php頂部:
<?php
$ref = (isset($_GET['ref']) && strlen($_GET['ref']) > 0) ? trim($_GET['ref']) : null;
//Process what ever you wanted to process from the beginning if you had a referral code
if(!is_null($ref)) {
// do your action
}
?>
使用以上內容,您實際上不需要任何JavaScript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.