2017-07-18 20 views
-1

我想提出一個聯盟計劃,撥打電話,我算一個數基於此鏈接fridgeblasteraffiliate.freeiz.com/affiliate/?numberherebasedonid點擊,但我有這個如何從一個url

<?php 
$conn = mysqli_connect("redacted", "redacted", "redacted", 
"redacted"); 
if (!$conn) { 
    die("Connection failed: ".mysqli_connect_error()); 
} 
session_start(); 
    $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$sql = "SELECT clicks FROM affiliate WHERE ID='$ID'"; 
$add = 1; 
$ID = strpos($url, needle) 
?> 

但你可以看到我無法弄清楚如何調用url中的數字來計算點擊次數

+0

無t與你的問題相關,但你應該在你的開放的php標籤下放置'session_start()'。如果你這樣做,你會爲自己節省很多麻煩。 – Difster

+0

請閱讀'$ _GET'-super global:http://php.net/manual/en/reserved.variables.get.php。像這樣在URL中傳遞參數通常被稱爲「查詢字符串」。順便說一句,你目前正在定義變量'$ ID' __你試圖使用它。它需要在_before_上定義。此外,如果ID是數字,請確保在將其用作db-query之前將其轉換爲整數,或使用預準備語句。否則,您可以廣泛開放SQL注入。 –

回答

1

你想使用GET變量。請嘗試以下網址:

fridgeblasteraffiliate.freeiz.com/affiliate/?id=numberherebasedonid 

然後使用$_GET['id']在你的腳本訪問的值。

$sql = "SELECT clicks FROM affiliate WHERE ID='$_GET['id']'"; 

請注意,雖然,這個代碼是vulnerable to SQL injection.由於馬格努斯埃裏克森在評論中指出的那樣,你可以通過類型轉換$_GET['id']爲int類型否定這一點,或者通過使用預處理語句:

鑄造:

​​

預處理語句:

$statement = $conn->prepare('SELECT clicks FROM affiliate WHERE ID=?'); 
$statement->bind_param('s', $_GET['id']); 
$statement->execute(); 
+0

@丹尼爾創建鏈接和數字應該這項工作\t

+1

不要忘記等號(=)的標誌。 '/ affiliate /?id =' – Daniel

+1

@JonathanConnery如果您只想在數據庫中添加該帖子的點擊,則可以直接更新它。你不需要先選擇它。只要'更新聯盟SET點擊=點擊+ 1 WHERE ID =?'。 –