2013-05-30 80 views
-1

我正在寫一個javascript,它會將該網站的主機名發佈到一個php頁面,並從中獲取響應,但是我不知道如何將url分配給adrs,並且不確定該代碼是正確的或not.And這需要整個服務器做javascript to post to url and

的javascript:

function ursl() 
{ 
$.ajax({ 
url: 'http://example.com/en/member/track.php?adrs=', 
success: function (response) 
if (response)=='yes'; 
{ 
alert("yes"); 

} 
}); 

} track.php

$url=$_GET['adrs']; 
$sql="SELECT * FROM website_ad where site='$url'"; 
$res=mysqli_query($link,$sql); 
if(mysqli_num_rows($res)==0) 
{ 
    echo"no"; 
} 
else 
{ 
    echo"yes"; 
} 
+0

您有一個SQL注入漏洞。 – SLaks

+0

您需要學習Javascript。 – SLaks

+0

我知道..但現在我需要它迫切...所以plz幫我解決它 – gss

回答

1

你的AJAX功能應該正是如此寫到:

$.ajax({ 
    url: 'http://example.com/en/member/track.php?adrs=' + window.location.hostname, 
    success: function (response) { 
     if (response === 'yes') { 
      $.getScript('http://example.com/en/pop.js', function() { 
       // do anything that relies on this new script loading 
      }); 
     } 
    } 
}); 

window.location.hostname會給你的主機名。你通過連接它將它傳遞給ajax url。或者,正如katana314指出的那樣,您可以在單獨的參數中傳遞數據。然後,您的Ajax調用是這樣的:

$.ajax({ 
    url: 'http://example.com/en/member/track.php?adrs=', 
    data: {adrs: window.location.hostname}, 
    success: function (response) { 
     if (response === 'yes') { 
      $.getScript('http://example.com/en/pop.js', function() { 
       // do anything that relies on this new script loading 
      }); 
     } 
    } 
}); 

我不知道你打算response是,但是這個代碼假定它是一個字符串,如果字符串是「是」將匹配正確的。如果response是爲了別的,您需要相應地設置您的測試。

$.getScript()將加載您的外部腳本,但由於它是異步的,因此您必須在回調中放置任何依賴該代碼的代碼。

+0

thnx你的腳本我會試試 – gss

+0

順便說一句,@ user2345654,你已經完全重新編輯了代碼在你的問題。有人可能會想知道爲什麼我使用'.getScript()',並沒有意識到你最初試圖通過在條件中放置腳本標籤來加載腳本。 –

+0

嘿..我忘了提到,我需要它跨域..我發現我們可以做到這一點的JSON。我們可以嗎? – gss

0

ÿ ou'll需要改變這一行看起來像這樣:

url: 'http://example.com/en/member/track.php?adrs='+encodeURIComponent(document.URL) 

success功能看起來應該像這樣:

success: function (response){ 
    if (response==="yes"){ 
     //do your thing here 
    } 
} 

這應該解決它......

+0

thanx ...和其餘的代碼是好的? – gss

+0

不,你在代碼中有一些語法錯誤,但我覺得這是你很容易識別和修復的東西 –

1

在這種類型的GET請求,變量只是在URL中的等號之後。最基本的寫法是:

url: 'http://example.com/en/member/track.php?adrs=' + valueToAdd, 

另外,JQuery有一個更直觀的方式來包含它。

$.ajax({ 
    url: 'http://example.com/en/member/track.php', 
    data: { adrs: valueToAdd } 
    // the rest of the parameters as you had them. 

另請注意,您不能在腳本中放置腳本標記。您將需要一些其他方式來運行提到的Javascript函數;例如,將其內容包裝在一個函數中,首先加載該函數(先前在HTML中使用腳本標記),然後在成功時調用它。

和最終拼圖,你可以獲取當前主機與window.location.host

+0

我建議使用'window.location.hostname',因爲'window.location.host'也會發送一個端口號如果有的話。 –

+0

嘿,我已編輯的代碼將工作.. ?? – gss

+0

我很驚訝最快速的方法來檢查不會只是嘗試它。大多數Javascript編程涉及大量嘗試和調整代碼。據我所知,你問的問題應該解決;正如其他人提到的,你有一個非常嚴重的SQL注入問題,我只希望你很快關注那個... – Katana314