Paginile de eroare de pe site-uri web sunt probabil una dintre cele mai neglijate piese dintr-un site complet rotunjit. Nu numai că sunt importante, dar vă dau ocazia să vă distrați puțin. Deși mulți dezvoltatori web se bazează pe jurnalele de server pentru a păstra un ochi pentru accesările paginilor de eroare, voi lua o altă abordare folosind un e-mail generat de PHP. În plus, vom spice design-ul un pic, adăugați de bază de navigare și link-ul la sitemap-ul site-ului.
Cea mai obișnuită pagină de eroare - cea în care sunteți cel mai probabil să fiți familiarizată - este pagina "404 Not Found". Mai multe persoane întâlnesc acest tip de pagină de eroare decât oricare altul. Alte mesaje de eroare comune pe care le-ați întâlnit sunt 500 Eroare de server intern, 400 Solicitare incorectă sau 403 Interzisă. Te întrebi ce înseamnă numărul? Se referă pur și simplu la codul HTTP.
Paginile de eroare implicite sunt destul de plictisitoare (după cum puteți vedea mai sus) și nu oferim altor vizitatori scop decât să le lămurim că s-au întâmplat unele erori plictisitoare. Din aceste motive, este o idee minunată să oferiți pagini personalizate pentru cele mai frecvente erori întâlnite. Acest tutorial va acoperi doar două: "404 Not Found" și "403 Forbidden".
În primul rând, asigurați-vă că furnizorul dvs. de gazduire vă permite să utilizați propriile pagini de eroare. Aproape toate acestea fac și majoritatea oferă chiar și o zonă de configurare în panoul de control pentru a vă ajuta să creați rapid paginile. În acest tutorial vom configura un server Web Apache (cel mai frecvent). Acest lucru este mai ușor decât credeți.
Apoi, conectați-vă la server prin FTP sau panoul de control și navigați la directorul rădăcină al documentului (de obicei www sau public_html) care conține fișierele site-ului dvs. Web. Vom căuta fișierul .htaccess. Este uneori ascuns, așa că asigurați-vă că vizualizați toate fișierele, inclusiv cele ascunse. Dacă serverul dvs. nu are unul, puteți crea unul utilizând orice editor de text. Asigurați-vă că faceți o copie de siguranță a fișierului .htaccess dacă serverul dvs. are deja unul.
Adăugați următoarele linii în fișierul .htaccess:
ErrorDocument 404 /error/404.php ErrorDocument 403 /error/403.php
Prima jumătate (ErrorDocument 404) spune serverului pe care urmează să-l definim locația documentului de eroare 404. A doua jumătate definește locația reală a documentului de eroare. În acest caz, îl vom pune în directorul "eroare" și vom apela 404.php și 403.php, respectiv.
Acum, salvați fișierul .htaccess și încărcați-l în directorul rădăcină al documentului.
Cel mai bine este să rămâi cu același design pe care îl utilizează deja site-ul dvs., astfel încât să nu vă confundați vizitatorii și riscați să-i pierdeți. De asemenea, ar trebui să includeți elemente utile, cum ar fi un mesaj de eroare politicos, linkuri sugerate, o funcție de căutare sau un link către sitemap-ul dvs. Aceste caracteristici vor depinde de nivelul de conținut pe care îl oferă site-ul dvs. și de ceea ce considerați că va fi cel mai util.
Așa cum puteți vedea mai jos, pagina 404 Not Found for Nettuts + a declarat eroarea și a accentuat caracteristica de căutare prin includerea acesteia în corpul sub mesajul de eroare. Ați putea să faceți un pas înainte prin includerea unei scurte liste de link-uri către posibile pagini care ar putea încuraja vizitatorul să continue explorarea mai multor site-uri (păstrați-l simplu și scurt), sau chiar o imagine plină de umor (fiecare îi place să râdă bine? ). Pentru site-urile mici, poate fi o idee bună să includeți și un sitemap vizibil.
Iată ceva pe care l-am pus împreună pentru acest tutorial pe care îl puteți folosi și pentru site-ul dvs. (inclus în descărcarea de mai sus). Este foarte simplu, astfel încât să puteți pune conținutul direct în șablonul site-ului dvs. existent. După cum puteți vedea, am încercat să includ un element plin de umor, afirmând în același timp eroarea politicos și includerea unor opțiuni pentru a ajuta vizitatorul să găsească ceea ce căutau sau să continue să navigheze pe site.
Veți observa că nu specifică codul de eroare HTTP în corpul paginii. În schimb, am ales să utilizez numai codul de eroare în titlul paginii. Motivul pentru aceasta este de a păstra lucrurile la fel de simplu și ușor de utilizat cât mai mult posibil. Majoritatea oamenilor nu-i pasă ce înseamnă 404 sau 403, doresc să știe ce se întâmplă în limba engleză. Pentru persoanele care doresc codul de eroare, acesta este încă disponibil prin titlu.
Dacă doriți să vedeți câteva minunate proiecte de 404 vizitați:
Aceasta este acea parte a tutorialului în care ar putea argumenta unii guru-i web. Puteți utiliza jurnalele serverului dvs. web pentru a verifica dacă există pagini de eroare și multe altele. De ce aleg notificările prin e-mail?
Deci, cu tot ce a spus, hai să mergem mai departe cu codul!
În primul rând, vom crea un fișier numit error-mailer.php care va fi folosit pentru a culege informații despre vizitatorul nostru și pentru a trimite e-mailul. Odată ce ați creat fișierul, vom începe prin specificarea setărilor de e-mail și e-mail.
Apoi vom colecta informații despre vizitatorul nostru, cum ar fi adresa IP, URI solicitat, Agent utilizator etc. Următorul cod va colecta acele informații.
# Colectați informații despre vizitatori $ ip = getenv ("REMOTE_ADDR"); // Adresă IP $ server_name = getenv ("SERVER_NAME"); // Numele serverului $ request_uri = getenv ("REQUEST_URI"); // URI solicitat $ http_ref = getenv ("HTTP_REFERER"); // HTTP Referer $ http_agent = getenv ("HTTP_USER_AGENT"); // Agentul utilizatorului $ error_date = data ("D M j Y g: i: s a T"); // Data eroriiAcum vom scrie scriptul pentru a ne trimite informațiile prin e-mail cu detaliile specificate mai devreme.
# Trimiteți notificarea prin e-mail requ_once ('phpMailer / class.phpmailer.php'); $ mail = un nou PHPMailer (); $ mail-> de la = $ din_email; $ mail-> FromName = $ din_name; $ mail-> Subiect = $ email_subject; $ Mail-> AddAddress ($ to_email); $ mail-> Body = "A existat o eroare". $ error_code ". „\ N \ nDetails \ n ------------------------------------------- ---------------------------“. "\ nCând:". $ error_date. "\ n (Cine) Adresa IP:". $ ip. "\ n (Ce) a încercat să acceseze: http: //". $ server_name. $ request_uri. "\ n (De unde) Referer HTTP:". $ http_ref. "\ n \ nNutilizator Agent:". $ http_agent; $ Mail-> Trimitere (); ?>Folosim clasa phpMailer pentru a face acest lucru, așa cum a demonstrat Jeffrey prin intermediul blogului ThemeForest pentru a crea un tip de contact AJAX frumos. Această versiune a clasei phpMailer este pentru PHP 5/6, deci dacă serverul dvs. rulează PHP 4, va trebui să utilizați versiunea corespunzătoare descărcându-l aici.
Pagini de eroare 404.php și 403.php
Ultimul lucru pe care trebuie să-l facem este să personalizăm paginile de eroare pe care le-am proiectat mai devreme, trimițând anteturile corespunzătoare și setând variabila $ error_code introducând următorul cod la începutul fiecărei pagini (separate de -------).
-------Ceea ce facem aici mai întâi este setarea antetului HTTP corect pentru a reveni la 404 Not Found și 403 Interzis, respectiv. Când motoarele de căutare aterizează accidental pe această pagină, vrem să ne asigurăm că știu ce fel de pagină este, în loc să creadă că este o pagină web obișnuită numită 404.php sau 403.php.
Apoi specificăm codul de eroare care va fi folosit în scriptul mailer și include scriptul mailer astfel încât acesta să își poată face munca. În acest fel, dacă modificăm scriptul mailer, trebuie doar să editați un fișier în loc de două sau mai multe (dacă configurați pagini de erori personalizate suplimentare).
Concluzie
Acolo îl ai! Propriile dvs. pagini personalizate de eroare care sunt prietenoase cu motorul de căutare și vă informează prin e-mail atunci când ați avut un vizitator, precum și toate informațiile de care aveți nevoie pentru a rezolva orice probleme. Cateva lucruri pe care trebuie sa le luati in considerare:
- Internet Explorer necesită pagini de eroare cu o dimensiune de cel puțin 512 bye (dacă utilizați exemplele de fișiere veți fi bine)
- Site-urile cu trafic ridicat au potențialul de a genera O mulțime de e-mailuri, deci asigurați-vă că configurați un fel de filtru de e-mail pentru aceste notificări de eroare, astfel încât acestea să nu vă inunde în căsuța de e-mail. Eu folosesc Gmail, așa că am doar o etichetă și un filtru de configurare pentru aceste e-mailuri.