2014-03-29 49 views
8

我爲我的畢業開發了一個網站,但它仍然只有一件事我做。我想要的是當腳本安裝在網站上我想發送已安裝我的腳本的網站的名稱,並且每當發生錯誤時我也想將它發送到我的網站,例如:發送日誌錯誤到一個文件

This網站安裝我的腳本

www.security-dz.com/myscript 

我想查看其他網站中的其他文件的路徑+網站。例如:

www.getlog.com/mylogs.php 

這樣做的目的是讓我的客戶更新,並給予他們支持,看到這種情況發生,所以我可以解決這些問題在明年更新的錯誤。

+1

這是一個好主意:)我希望他們回答它 –

+2

你有什麼試過?第一部分(沒有錯誤)非常簡單,只需要在安裝腳本時向您發送網站地址。 – Cristy

+0

以及用戶將手動安裝它,這就是爲什麼我想在索引頁面發出請求,問題是我不知道如何發送我如何使請求或變量自動發送 – user3395024

回答

2

你可能想在JQuery docs for ajax requests仔細一看,這樣你就可以使用日誌安全HTTP連接。這個JavaScript代碼基本上描述了一個將文本格式的錯誤發送到服務器端腳本的函數。該腳本可以將錯誤描述寫入服務器上的文件。我建議使用數據庫來代替;通過這種方式,您可以輕鬆編寫一個顯示所有報告錯誤(以及過濾器和其他好東西)的Web客戶端。

您可以提取引薦[原文]字段中服務器上的AJAX HTTP GET請求的源URL。

(function() { // function operator, in case console doesn't exist 
    !console ? 
     (console = {}) : console; 
    !console.log ? 
     (console.log = function() { }) : console.log; 
    !console.info ? 
     (console.info = console.log) : console.info; 
    !console.error ? 
     (console.error = console.log) : console.error; 
}()); 
// Uses JQuery 
function reportError (errDesc) { 
    var path = "www.getlog.com/mylogs.php"; 
    $.ajax({ 
     url: path, 
     type: "GET", 
     async: true, 
     cache: false, 
     contentType: "application/x-www-form-urlencoded; charset=UTF-8", 
     crossDomain: true, 
     data: errDesc, 
     dataType: "jsonp", 
     error: function (req, type, errObj) { 
      console.error("Reporting error failed: " + type + "\nAt url: " + path + "\n" + errObj); 
     // In case you need to debug the error reporting function 
     }, 
     succes: function (res) { 
      console.info("Reported error to server:\nRequest:" + errDesc + "\nResponse: " + res); 
     // extra error logging facility on client-side, invisible to most users 
     }, 
     global: false // prevent triggering global ajax event handlers 
    }); 
    return errDesc; // in case you want to reuse the errDesc 
} 

代碼已通過jshint進行驗證。請讓我知道是否仍有問題,因爲我沒有花時間完全複製您的設置(設置2個不同的域等)

附錄:如果您遇到問題跨域消息,JSON is not a subset of javascriptCross-origin resource sharingJSONP

+0

該信息是不正確的,現代瀏覽器版本同時支持console.error和console.info:[歌劇](http ://www.opera.com/dragonfly/documentation/console/),[IE](http://msdn.microsoft.com/en-us/library/hh772183%28v=vs.85%29.aspx), [鉻(https://developers.google.com/chrome-developer-tools/docs/console)。如果控制檯不可用,則編輯代碼以使用polyfill或stub。 –

+0

跨域Ajax錯誤。 –

+0

@RiteshChandora忘記將數據類型設置爲jsonp,感謝您的檢查。 –

0

你可以做的是發佈使用您的腳本,並與AJAX錯誤代碼變量通過URL到您的日誌網站的網站,然後將得到的URL變量和名稱,並使用這些增加的兩個名字到你的日誌。

你應該,但是,通過使用這種戰術,還利用一些URL驗證,否則這將讓你大開注入攻擊。

+1

編輯你的答案請發帖給我一個簡單的代碼ajax發送一個變量到另一個頁面 – user3395024

0

它是安裝在您的腳本時容易,獲得該網站的信息,並通過插座與HTTP請求用GET方法發送,然後recive它的服務器上。

對於錯誤,PHP有一些方法來控制錯誤日誌,以便自定義它。

相關問題