2011-07-06 68 views
0

我從來沒有編碼過的PHP,我真的需要這個非常簡單的腳本。php變量(website.com/?f="123「)保存到數據庫和重定向

讓我解釋我需要什麼。 用戶通過友情鏈接來我的網站,所以當他們完成重定向 的URL看起來像這樣

http://website.com/lp/index.html?sub=1&customer_id=1039be6e23b4420c3e1063dc44a04d 

現在我已經在我的網站 一個下載鏈接,下載點擊 檢查從數據庫重複的IP地址。如果不從地址欄中複製 capture sub =「」& customer_id =「」。 保存到數據庫的IP地址(這個跟蹤)

,如果它複製如果IP不重複

http://dl.website.com/download/downloadpop.aspx?id={Customer_id} 

立即重定向到的下載鏈接

http://dl.website.com/download/downloadpop.aspx?id=beenbefore 

非常感謝!

+1

我想要一個'varibale'。他們聽起來很酷! – Bojangles

+0

@JamWaffles - 他們是非常危險的,如果你看到一個不要接近它! – martynthewolf

+0

@sabre - 但...但是,我想要一個:-( – Bojangles

回答

1

這是相當廣泛的,也不可能正確地回答不知道你的數據庫結構的任何細節,但這裏是如何的這個基礎將工作:

<?php 

$sub = $_GET['sub']; 
$customer_id = $_GET['customer_id']; 
$ip = $_SERVER['REMOTE_ADDR']; 

$db = mysql_connect(...) or die(mysql_error()); 

$quoted_sub = mysql_real_escape_string($sub); 
$quoted_customer_id = mysql_real_escape_string($customer_id); 
$quoted_ip = mysql_real_escape_string($ip); 

$sql = "SELECT count(*) AS cnt FROM yourtable WHERE ip_address = '$quoted_id'"; 
$result = msyql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
if ($row['cnt'] == 0) { 
    $enc = urlencode($customer_id); 
    ... IP isn't in the database, so do the insert stuff ... 
    header(" http://dl.website.com/download/downloadpop.aspx?id=$enc"); 
} else { 
    header("Location: http://dl.website.com/download/downloadpop.aspx?id=beenbefore"); 
} 

exit(); 
+0

我沒有一個數據庫,看起來非常完美,非常感謝您寫下這篇文章! – Mark

+0

我是否正確理解這段代碼只會讀取不真正將ip + sub + customer_id保存到數據庫中? – Mark

+0

是的,它只是一個需要完成的事情的骨架。 –

2

你可能想對重定向頭:

http://php.net/manual/en/function.header.php

而且的mysql_connect,請求mysql_query等爲DB的東西:

http://php.net/manual/en/book.mysql.php

您可以提取得到$ _GET PARAMS:

http://php.net/manual/en/reserved.variables.get.php

請注意,任何對header()的調用都必須在其他輸出之前進行(請參閱鏈接的頁面上的示例。)

+0

我對此有疑問。如果他們點擊download.php並且我有$ _GET ['sub']它會嘗試獲取download.php變量嗎?因爲我在主頁上獲得了變量,並且我希望通過點擊它可以從主頁獲取它,而不是通過download.php – Mark

+0

hmm。爲什麼重複檢查下載點擊?你可以執行重複的檢查服務器端,並相應地生成鏈接... – fearlesstost

0

首先,您可以access these variables via $_GET()

接下來,你INSERT them into a database using PDO

最後,你可以重定向有人用適當header()

header('Location:http://dl.website.com/download/downloadpop.aspx?id=beenbefore'); 
+0

我得到了這個問題。如果他們點擊download.php並且我有$ _GET ['sub']它會嘗試獲取download.php變量嗎?因爲我得到了主頁上的變量,並且我希望點擊它可以從主頁得到它,而不是download.php – Mark

+0

@Mark,我不知道你在問什麼... – Brad

+0

如何在頁面之間傳輸變量?我看到some1有一個代碼session session_start()$ _SESSION ['sub'] = $ sub; $ _SESSION ['customer_id'] = $ customer_id;第1頁和第2頁$ sub = $ _GET ['sub']; $ customer_id = $ _GET ['customer_id'];但我得到了一些什麼原因解析錯誤:語法錯誤,意外T_VARIABLE – Mark

相關問題