我目前在我的网站上运行了一个推荐脚本,但我遇到了一个问题,不幸的是我不知道足够的PHP来解决它。
该脚本从url获取变量'ref',但是当它们到达运行脚本的页面时我没有该变量。
所以这个过程是
homepage.com/?ref=XXXXX
>user clicks on script page
homepage.com/script.php
我需要它
homepage.com/?ref=XXXXX
>user clicks on script page
>homepage passes variable to script page
homepage.com/script.php?ref=XXXXX
我的主页上没有运行任何代码。脚本页面上的代码是
if(isset($_COOKIE['ref_link'])){
$ref = $_COOKIE['ref_link'];
}else{
$ref = rand(1,9).date('Y').date('m').date('d').date('h').date('i').date('s');
$ref = rand_uniqid($ref);
setcookie("ref_link",$ref, 9999999999);
$insert = "insert into cookie_ref(REF_val) values('".$ref."');";
@mysql_query($insert);
}
$error = ''; //used for checking if ip has been re used
if(isset($_GET['ref'])){
$getip = "select * from cookie_ref_ips where IP_address = '".getRealIpAddr()."' and REF_val = '".$_GET['ref']."'";
$getip_query = @mysql_query($getip);
if(@mysql_num_rows($getip_query) < 1){
$update = "update cookie_ref set REF_hits = REF_hits + 1 where REF_val = '".$_GET['ref']."'";
@mysql_query($update);
$insertip = "insert into cookie_ref_ips(IP_address,REF_val) values('".getRealIpAddr()."','".$_GET['ref']."')";
@mysql_query($insertip);
}else{
$error = "<h1>You already used this refferal link!</h1>";
}
}
这比我想象的要复杂一点,因为主页正在运行wordpress,因为脚本页面是一个调用wordpress标题的独立页面。所以我无法在wordpress头文件中启动会话,因为它将再次启动它,因为在脚本中调用了头文件。有什么建议吗?
答案 0 :(得分:0)
如果你有html source put链接
homepage.com/script.php?ref=<?php $_GET['ref']?>
答案 1 :(得分:0)
尝试使用以下命令在script_page中访问它:
$newvar = $_GET['ref'];
但你要确保在homepage.html中有类似的内容:
<form method="get" action="script_page.php">
<input type="some_type" name="ref">
</form>
顺便问一下你是怎么得到你的变量的?询问用户,数据库或如何?
答案 2 :(得分:0)
使用会话cookie。
在'homepage.php'上:
<?php
session_start();
$_SESSION['ref'] = $_GET['ref'];
header("Location: script.php"); // You can remove this if you want to redirect the user some other way.
?>
在'script.php'上:
<?php
session_start();
$ref = $_SESSION['ref']; // Your variable from the first script.
?>
答案 3 :(得分:0)
如果他们点击客户端:
function getParameterByName(name){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]"+name+"=([^&#]*)"), result = regex.exec(location.search);
return results == null ? "":decodeURIComponent(results[1].replace(/\+/g, "");
}
这将允许您获取参数内容并说:
<a tar="">click</a>
var name = "ref";
$("a").on("click", function(){ $(this).attr("tar", NEWURL+"?"+name+"="getParameterByName(name))});
或者在构建页面服务器端时:
name = "ref";
echo "<a tar='".URL."?".name."=".$_REQUEST[name];
另外:由其他人发布,只要你有session_start();就可以使用$ _SESSION在页面中保存变量。在你的php页面的顶部。
使用$ _ REQUEST是因为当你正在谈论$ _GET时,如果第一页通过POST收到vars,你可以管理同样的事情。 $ _REQUEST是$ _GET和$ _POST以及$ _COOKIE
的组合