2011-07-06 13 views
0

私はこれまでphpをコーディングしていないので、この非常に単純なスクリプトが本当に必要です。phpの変数(website.com/?f="123 ")データベースに保存してリダイレクト

私は必要なものを説明しましょう。 ユーザーは、データベースから重複したIPアドレスの チェックをクリックして、彼らは URLをリダイレクト終えたときに、この

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

のようになります。今、私は、ダウンロードには私のウェブサイト のダウンロードリンクを持ってアフィリエイトリンクを介して私のウェブサイトに来ます。重複しない場合はアドレスバーから キャプチャサブ= "" & 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 - しかし...しかし...私は1つを望んでいます:-( – 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

おそらく、リダイレクトのためのヘッダたい:DBのもののため

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

とにmysql_connect、するmysql_queryなど:

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

あなたは$ _GETからの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

@マーク、私はあなたが何を求めているのかわかりません... – Brad

+0

どのようにページ間で変数を転送できますか?私はsome1がsession_start()のコードを持っているのを見た。$ _SESSION ['sub'] = $ sub; $ _SESSION ['customer_id'] = $ customer_id; 1ページ目と2ページ目$ sub = $ _GET ['sub']; $ customer_id = $ _GET ['customer_id'];しかし、何らかの理由で構文解析エラーが発生する:構文エラー、予期しないT_VARIABLE – Mark

関連する問題