搜尋
首頁後端開發php教程用Usernap實現客戶端錯誤報告

用Usernap實現客戶端錯誤報告

鑰匙要點

  • >用戶NAP是一種工具,允許用戶通過標記屏幕截圖並在JavaScript控制台中發送所有數據來直接從網站報告錯誤。它可以集成到客戶的網站中以加快錯誤報告和解決。
  • 開發人員還可以使用Usernap來收集服務器端錯誤和日誌。通過使用簡單的類,他們可以記錄調試所需的所有錯誤和日誌,然後可以將其傳遞給UsersNap。這允許更快,更有效的錯誤修復。
  • 用戶還提供了其他信息,例如屏幕尺寸,瀏覽器版本,OS和已安裝的瀏覽器插件。僅在需要時只能打開此功能,並且可以通過IP過濾或打開DEV等方法限制其可用性。
  • 想像以下情況:您的客戶訪問網站(讓我們想像一下),除了預期的結果之外,其他任何東西。正常的反應是打電話給您(最不合適的時間),並要求您盡快解決,因為他們正在虧錢。
>我們如何幫助用戶盡可能準確地報告錯誤?

>

錯誤

用Usernap實現客戶端錯誤報告>讓我們有一個非常簡單的JSON請求和一個錯誤,以便能夠重現我們的案件:>

如果您立即訪問測試網站,您會注意到存在問題。

的問題是 - 客戶如何使用與錯誤對抗的所有數據更快地報告:>

<span>$json_data = '{"value":1,"apples":2,"name":3,"oranges":4,"last one":5}';
</span>
<span>//we will simulate the json data, but imagine that this is the normal data exchanged daily between your client’s website and a 3rd party API
</span>
<span>$ch = curl_init('http://talkweb.eu/labs/fr/json_callback.php');                                                                 
</span><span>curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                
</span><span>curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);                                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                'Content-Type: application/json',                      
</span>        <span>'Content-Length: ' . strlen($json_data)));
</span>                                                                                                             
<span>//the normal CURL request, nothing strange here:
</span><span>$result = curl_exec($ch);
</span>
<span>//receiving the data back
</span><span>$f_data =  json_decode($result,true);
</span>
<span>//showing a greeting with the output
</span><span>echo  “Welcome”. $f_data['username'];</span>
> JSON數據,

>服務器端JavaScript和XMLHTTPSREQUEST錯誤,

一些核心PHP錯誤
  • …和元數據。
  • >用於收集此信息的有趣解決方案是用戶。一個可以讓您的用戶標記他們所在網站的屏幕截圖,並向您發送JavaScript控制台中的所有內容。 php錯誤並沒有結束,但是嗎?讓我們做。首先,我們將收集服務器端錯誤。
  • >
  • 收集錯誤
  • >讓我們在示例中添加更多代碼,以了解如何收集所需的數據。介紹一個非常簡單的課程來幫助我們:

現在,讓我們使用此類記錄所有可能需要的錯誤和日誌。 >

將其傳遞給UsersNap

>讓我們在頁面末尾添加Usernap代碼段,看看會發生什麼。 (您可能需要一個帳戶才能使用此窗口小部件。AuserNap為開源項目提供免費許可證,並為商業項目提供免費測試期。
<span><span>
</span></span><span><span>class SendToUsersnap
</span></span><span><span>{
</span></span><span>    <span>var $m;
</span></span><span>    <span>//Save all logs in an array. You can use an even more elegant approach but right now I need it to be simple for the sake of this tutorial.
</span></span><span>    <span>function log ( $data, $type ) {
</span></span><span>    
</span><span>        <span>if( is_array( $data ) || is_object( $data ) ) {
</span></span><span>            <span>$this->m[]= "console.".$type."('PHP: ".json_encode($data)."');";
</span></span><span>        <span>} else {
</span></span><span>            <span>$this->m[] = "console.".$type."('PHP: ".$data."');";
</span></span><span>        <span>}
</span></span><span>    <span>}
</span></span><span>  <span>// Print all logs that have been set from the previous function. Let’s keep it simple.
</span></span><span>    <span>function  out (){
</span></span><span>         <span>for ($i=0;$i<count>m);$i++)
</count></span></span><span>          <span>{
</span></span><span>              <span>echo $this->m[$i]."\n";
</span></span><span>          <span>}
</span></span><span>        
</span><span>        
</span><span>        <span>}
</span></span><span><span>}</span></span>

注意:您將在真實框架中的視圖模板中執行此操作,但是由於我們在這裡不使用真實的MVC應用程序,因此我們跳過了那部分。

>用戶將在頁面上看到一個“報告錯誤”按鈕,並將給您寫一條諸如“它不起作用,盡快修復”之類的消息。通常,這將是無用的信息,但是這次,我們也附上了此華麗的錯誤日誌:>

用Usernap實現客戶端錯誤報告

>現在您可以看到已經有初始化:

>

<span>$json_data = '{"value":1,"apples":2,"name":3,"oranges":4,"last one":5}';
</span>
<span>//we will simulate the json data, but imagine that this is the normal data exchanged daily between your client’s website and a 3rd party API
</span>
<span>$ch = curl_init('http://talkweb.eu/labs/fr/json_callback.php');                                                                 
</span><span>curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                
</span><span>curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);                                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                'Content-Type: application/json',                      
</span>        <span>'Content-Length: ' . strlen($json_data)));
</span>                                                                                                             
<span>//the normal CURL request, nothing strange here:
</span><span>$result = curl_exec($ch);
</span>
<span>//receiving the data back
</span><span>$f_data =  json_decode($result,true);
</span>
<span>//showing a greeting with the output
</span><span>echo  “Welcome”. $f_data['username'];</span>
您可以看到我們將發送的數據 - 與往常一樣

<span><span>
</span></span><span><span>class SendToUsersnap
</span></span><span><span>{
</span></span><span>    <span>var $m;
</span></span><span>    <span>//Save all logs in an array. You can use an even more elegant approach but right now I need it to be simple for the sake of this tutorial.
</span></span><span>    <span>function log ( $data, $type ) {
</span></span><span>    
</span><span>        <span>if( is_array( $data ) || is_object( $data ) ) {
</span></span><span>            <span>$this->m[]= "console.".$type."('PHP: ".json_encode($data)."');";
</span></span><span>        <span>} else {
</span></span><span>            <span>$this->m[] = "console.".$type."('PHP: ".$data."');";
</span></span><span>        <span>}
</span></span><span>    <span>}
</span></span><span>  <span>// Print all logs that have been set from the previous function. Let’s keep it simple.
</span></span><span>    <span>function  out (){
</span></span><span>         <span>for ($i=0;$i<count>m);$i++)
</count></span></span><span>          <span>{
</span></span><span>              <span>echo $this->m[$i]."\n";
</span></span><span>          <span>}
</span></span><span>        
</span><span>        
</span><span>        <span>}
</span></span><span><span>}</span></span>
>您可以看到輸出。是的,問題在那裡。顯然有一個auth問題。

<span>require_once('Usersnap.class.php'); 
</span>    <span>$s = new SendToUsersnap;
</span>
    <span>$json_data = '{"value":1,"apples":2,"name":3,"oranges":4,"last one":5}';
</span>    <span>$s->log('Initializing the JSON request',"info");
</span>    <span>$s->log($json_data,"log");
</span> 
    <span>$ch = curl_init('http://talkweb.eu/labs/fr/json_callback.php');             
</span>    <span>curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
</span>    <span>curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);                           
</span>    <span>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                         
</span>    <span>curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                 
</span>        <span>'Content-Type: application/json',                           
</span>        <span>'Content-Length: ' . strlen($json_data)));                                                                                                                   
</span> 
    <span>$result = curl_exec($ch);
</span>    <span>$f_data =  json_decode($result,true);
</span>    
    <span>echo  'Welcome'. $f_data['usersname'];
</span>    
    <span>$s->log($f_data,"log");
</span>    <span>$s->log(error_get_last(),"error");</span>
>您甚至可以獲得核心PHP錯誤來幫助您進行調試。

>

<span><span><span><script> type<span >="text/javascript"</script></span>></span><span>
</span></span><span><span>  <span>(function() {
</span></span></span><span><span>  <span>var s = document.createElement("script");
</span></span></span><span><span>    s<span>.type = "text/javascript";
</span></span></span><span><span>    s<span>.async = true;
</span></span></span><span><span>    s<span>.src = '//api.usersnap.com/load/'+
</span></span></span><span><span>            <span>'your-api-key-here.js';
</span></span></span><span><span>    <span>var x = document.getElementsByTagName('script')[0];
</span></span></span><span><span>    x<span>.parentNode.insertBefore(s, x);
</span></span></span><span><span>  <span>})();
</span></span></span><span><span>
</span></span><span><span> <span>var _usersnapconfig = {
</span></span></span><span><span>   <span>loadHandler: function() {
</span></span></span><span><span>        <span><span><?php </span></span></span></span><span><span><span>    <span>//just print all errors collected from the buffer.
</span></span></span></span><span><span><span> <span>$s->out(); ?></span>
</span></span></span><span><span>     <span>}
</span></span></span><span><span> <span>};
</span></span></span><span><span></span><span><span></span>></span></span></span>
您的客戶只需要單擊一次按鈕,您將獲得更快地對抗錯誤所需的一切:

    >錯誤和日誌(如上所示)
  1. >註釋的屏幕截圖 - 如果問題比這個簡單的示例
  2. 更複雜
  3. 屏幕尺寸,瀏覽器版本,OS和瀏覽器中安裝的插件
  4. 當然,只有在客戶需要時,您才能打開此功能。要限制小部件的可用性,請添加IP過濾器或查詢參數屏障,打開Dev。 *子域等。
結論

這不是腳本監控工具,不會在出現問題時自動提供信息。只有在用戶或客戶端報告錯誤的情況下,您作為開發人員或QA需要有關如何對抗錯誤的更多信息才能起作用。想像它是遠程調試器,但對於客戶端錯誤事件和您從PHP發送到JavaScript的數據。

我很想回答您的所有問題!在下面留下您的反饋!

經常詢問的問題(常見問題解答)有關用戶

的客戶端錯誤報告

>用戶nap如何用於客戶端錯誤報告?

usernap是一個可視化錯誤跟踪工具,允許用戶直接從其Web應用程序報告錯誤。它通過捕獲問題的屏幕截圖以及重要的瀏覽器信息來起作用,然後將其發送給開發團隊。這消除了來回通信的需求,並加快了錯誤修復過程。 userSNap還與流行的項目管理和通信工具集成在一起,使其成為各個團隊的多功能解決方案。

> usersNap的關鍵功能是什麼?

用於錯誤報告的工具。其中包括屏幕截圖捕獲,瀏覽器信息收集,控制台日誌記錄和用戶反饋收集。它還提供了與Slack,Jira和Trello等流行工具等流行工具的集成。此外,Usernap還提供了用於與其他系統的進一步自定義和集成的API。

>如何將usernap集成到我的Web應用程序中?

>將用戶NAP集成到您的Web應用程序中很簡單。您需要註冊一個用戶NAP帳戶,創建一個新項目,然後將提供的JavaScript代碼添加到您的Web應用程序中。此代碼將在您的應用程序上加載usernap窗口小部件,允許用戶直接報告錯誤。

我可以自定義usersnap widtget?

是,是的,用戶nusernap為widget提供了一系列自定義選項。您可以更改小部件的顏色,文字和位置,以匹配您的品牌。您還可以自定義反饋表格,以收集用戶的特定信息。所有這些都可以通過UsersNap儀表板或通過API完成。

>通過為用戶提供一種簡單有效的方式,用戶如何幫助用戶報告報告,用戶如何幫助提高我的Web應用程序的質量?錯誤,用戶NAP可幫助您更快地識別和解決問題。視覺反饋和詳細的瀏覽器信息可幫助您的開發團隊輕鬆理解和復制問題。這會導致更快的錯誤修復和改進,從而提高您的Web應用程序的整體質量。

>

什麼是UsersNap API,我該如何使用它?

>編程接口,使您可以通過編程方式與用戶互動。您可以使用API​​來創建,更新和管理項目,以及自定義UsersNap小部件。 API是恢復的,使用標準的HTTP方法,使其易於與您現有系統集成。

>

> usersNap如何處理用戶隱私?

用戶nap認真對待用戶隱私。未經同意,該工具不會跟踪用戶活動或收集個人數據。所有收集的數據均已安全存儲,僅用於錯誤報告目的。 usernap還符合GDPR和其他隱私法規。

>我可以將用戶nap用於移動錯誤報告嗎?

>是的,usersNap支持移動錯誤報告。 UsersNap小部件響應迅速,在移動設備上運行良好。這使您的用戶可以直接從其移動瀏覽器報告錯誤,從而為您提供有價值的反饋,以改善移動Web應用程序。

>

>用戶nap與其他錯誤報告工具相比如何?有關其視覺反饋和詳細的瀏覽器信息,這使錯誤報告和修復更有效。它還提供了一系列自定義選項和與流行工具的集成。雖然其他工具可能會提供類似的功能,但Usernap的簡單性和多功能性使其成為許多團隊的首選選擇。

用戶nap提供了什麼支持?

usernap為其用戶提供全面的支持。這包括詳細的文檔,API參考和示例,以幫助您開始並充分利用工具。 usersNap還為您可能遇到的任何查詢或問題提供電子郵件支持。 >

以上是用Usernap實現客戶端錯誤報告的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
11個最佳PHP URL縮短腳本(免費和高級)11個最佳PHP URL縮短腳本(免費和高級)Mar 03, 2025 am 10:49 AM

長URL(通常用關鍵字和跟踪參數都混亂)可以阻止訪問者。 URL縮短腳本提供了解決方案,創建了簡潔的鏈接,非常適合社交媒體和其他平台。 這些腳本對於單個網站很有價值

在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

構建具有Laravel後端的React應用程序:第2部分,React構建具有Laravel後端的React應用程序:第2部分,ReactMar 04, 2025 am 09:33 AM

這是有關用Laravel後端構建React應用程序的系列的第二個也是最後一部分。在該系列的第一部分中,我們使用Laravel為基本的產品上市應用程序創建了一個RESTFUL API。在本教程中,我們將成為開發人員

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

宣布 2025 年 PHP 形勢調查宣布 2025 年 PHP 形勢調查Mar 03, 2025 pm 04:20 PM

2025年的PHP景觀調查調查了當前的PHP發展趨勢。 它探討了框架用法,部署方法和挑戰,旨在為開發人員和企業提供見解。 該調查預計現代PHP Versio的增長

Laravel中的通知Laravel中的通知Mar 04, 2025 am 09:22 AM

在本文中,我們將在Laravel Web框架中探索通知系統。 Laravel中的通知系統使您可以通過不同渠道向用戶發送通知。今天,我們將討論您如何發送通知OV

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器