2013-07-25 80 views
0

我目前有一個推薦腳本在我的網站上運行,但我遇到了一個問題,不幸的是我不知道足夠的PHP來解決它。如何將1頁的url變量傳遞給另一頁?

腳本從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

的組合,當你這樣做時會發生什麼:var_dump($ _ GET ['ref']); ? – Maximus2012

+0

另外,如果你可以編寫homepage.php和script.php,那麼這將有所幫助。 – Maximus2012

+0

在href中創建的url需要添加script.php?GET ['whatever'] – Mihai

回答

0

如果u有HTML源放鏈接

homepage.com/script.php?ref=<?php $_GET['ref']?> 
0

嘗試在script_page訪問它使用:

$newvar = $_GET['ref']; 

但你確保在homepage.html你有這樣的:

<form method="get" action="script_page.php"> 
    <input type="some_type" name="ref"> 
</form> 

順便說一句,你是如何得到你的變量?詢問用戶,數據庫還是如何?

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. 
?> 
+0

這使它自動重定向。如果他不想改變它呢? – Fallenreaper

+0

header(「Location:script.php」)的這部分是什麼,我應該用什麼替換它? – user2619611

+0

這就是你用來指向一個新文件,並立即加載該文件。因此,而不是它加載PHP頁面,它會指向任何位置說,一些新的頁面。 – Fallenreaper

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]; 

ALSO:爲他人發佈,你可以用$ _SESSION只要你在session_start保存跨頁變量();在你的php頁面的頂部。

$ _REQUEST被使用,因爲當你特別談論$ _GET時,如果第一頁通過POST接收到變量,你可以管理相同的事情。 $ _REQUEST是script.php頁面上$ _GET和$ _POST和$ _COOKIE

+0

這比我想象的要複雜一些,因爲主頁運行在WordPress之外,因爲腳本頁面是一個獨立頁面,可以調用wordpress頁眉。所以我不能在wordpress頭文件中啓動會話,因爲它會再次啓動它,因爲頭文件在腳本中被調用。有什麼建議麼? – user2619611

+0

我沒有做Wordpress,除了當用戶希望我讓他們成爲一個自定義小部件。那裏有很多垃圾,被wordpress用作公司。我通常只運行我自己的服務器實例。 – Fallenreaper

+0

如果可以,我會在頁面頂部添加一個標題,該標題將會轉到新的位置。然後你將有一個空白頁面來處理。 – Fallenreaper

相關問題