Cum putem salva erorile JavaScript intr-un fisier exact cum salvam erorile PHP.
Salutare tuturor!
Astazi am sa va prezint cum putem face site-ul nostru sa salveze toate erorile JavaScript pe care le intampina, exact cum face atunci cand intampina o eroare PHP.
Pentru inceput, avem nevoie de un fisier PHP.
Voi numi fisierul salvare_eroare_js.php si vom adauga in el urmatorul cod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php if(isset($_GET['eroare_js'])) { date_default_timezone_set('Europe/Bucharest'); define('locatie_fisier','erori_js.log'); if(!file_exists(locatie_fisier)) { touch(locatie_fisier); } if(!empty($_GET['mesaj'])) { $mesaj_eroare = $_GET['mesaj']; } else { $mesaj_eroare = ""; } if(!empty($_GET['adresa'])) { $adresa_eroare= $_GET['adresa']; } else { $adresa_eroare= ""; } if(!empty($_GET['linia'])) { $linie_eroare = $_GET['linia']; } else { $linie_eroare = ""; } if(!empty($_GET['eroare'])) { $eroare_eroare = $_GET['eroare']; } else { $eroare_eroare = ""; } $linie_eroare = str_replace($eroare_eroare,'',$linie_eroare); $linie_eroare = str_replace(PHP_EOL,'',$linie_eroare); $linie_eroare = str_replace(' at ','',$linie_eroare); $linie_eroare = explode(':',$linie_eroare); $continut_fisier = file_get_contents(locatie_fisier); $continut_fisier = $continut_fisier."////////////////////////////] ".date('d-m-Y H:i:s')." [//////////////////////////// ### Eroare: $mesaj_eroare ### Adresa: $adresa_eroare ### Linia: :".$linie_eroare[2]." /////////////////////////////////////////////////////////////////////////////// "; file_put_contents(locatie_fisier,$continut_fisier); echo 'Eroarea intampinata de tine a fost trimisa catre un administrator si se va rezolva in cel mai scrut timp posibil!'; } |
Acum va trebui sa mergem pe fiecare fisier unde dorim sa activam salvarea erorilor JavaScript si sa adaugam urmatorul cod chiar inainte de </head> :
1 2 3 4 5 6 7 8 9 10 11 |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script> window.onerror = function(mesaj, adresa, linia, coloana, eroare) { var adresa = "https://www.site-ulmeu.ro/salvare_eroare_js.php?mesaj=" + encodeURIComponent(mesaj) + '&adresa=' + encodeURIComponent(adresa) + "&linia=" + encodeURIComponent(eroare.stack) + "&eroare=" + encodeURIComponent(eroare) + '&eroare_js=da'; $.get(adresa, function(trimite_eroare) { console.log(trimite_eroare); }); }; </script> |
Modificam https://www.site-ulmeu.ro/salvare_eroare_js.php cu adresa catre fisierul PHP de pe site-ul nostru.
Acum, de fiecare data cand site-ul intampina o eroare, va adauga in fisierul erori_js.log eroarea, spre exemplu:
1 2 3 4 5 |
////////////////////////////] 26-05-2018 21:26:58 [//////////////////////////// ### Eroare: Uncaught SyntaxError: Unexpected identifier ### Adresa: https://www.site-ulmeu.ro ### Linia: :445 /////////////////////////////////////////////////////////////////////////////// |
Asta a fost tot pe azi! Sper ca acest tutorial a fost util.
Ne vedem data viitoare cu un nou articol 🙂