404/403 pagini de eroare de site web cu PHP Auto-Mailer

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.

Despre paginile de eroare

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".

Verificați suportul paginii de eroare personalizate

Î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.

Configurați .htaccess

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.

Proiectați paginile de eroare personalizate

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:

  • http://www.smashingmagazine.com/2009/01/29/404-error-pages-reloaded-2/
  • http://www.smashingmagazine.com/2007/08/17/404-error-pages-reloaded/
  • http://www.smashingmagazine.com/2007/07/25/wanted-your-404-error-pages/
  • http://blogof.francescomugnai.com/2008/08/the-100-most-funny-and-unusual-404-error-pages/

Auto-Mailer PHP și de ce vom folosi notificarea prin e-mail

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?

  1. Nu vreau să mă înregistrez în serverul meu în fiecare zi și să văd toate informațiile suplimentare.
  2. Sunt disponibil prin e-mail aproape literalmente toată ziua, cel mai rapid mod de a mă ajunge este e-mail (sau twitter). Cu acest lucru în minte, vreau să știu despre 404 și 403 erori destul de rapid, astfel încât e-mail-ul este cel mai bun.
  3. Un număr din ce în ce mai mare de persoane încep site-urile web, în ​​timp ce majoritatea acestor persoane nu cunosc aproape nimic despre găzduirea web-ului și să nu mai vorbim de jurnalele serverului. Acești oameni vor rula numai site-uri mici; astfel încât e-mailul este ideal.
  4. A fi anunțată imediat îmi permite să iau rapid măsuri în cazul în care un site al meu este "recoltat" (ThemeForest templates), dacă cineva încearcă să acceseze ceva restrâns în mod repetat sau dacă am o legătură întreruptă undeva.

Deci, cu tot ce a spus, hai să mergem mai departe cu codul!

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 erorii

Acum 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:

  1. 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)
  2. 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.