JavaScript indlæs ressourcer dynamisk

Da jeg for nyligt sad og arbejdede på et projekt der involverede modals, manglede jeg en måde at kunne indlæse ressourcer på dynamisk med JavaScript, der samtidigt ville sørge for kun at indlæse dem én gang.

Det lykkedes mig ikke at finde noget der kunne klare den opgave, så jeg satte mig for selv at skrive det.

Løsningen blev to simple funktioner  loadAsset() og loadAssetDetectExisting().
loadAsset() bruges til at indlæse en ressource, samt holde styr på hvilke ressourcer der er blevet indlæst.
loadAssetDetectExisting() bruges til at opdage hvilke ressourcer der allerede er blevet indlæst via <script> og <link> tags.

Læs videre “JavaScript indlæs ressourcer dynamisk”

osCommerce filemanager exploit

Hvis du arbejder med, eller selv har en e-shop med osCommerce, har du måske eller måske ikke hørt om at der er en ret så fatal fejl i deres Filemanager. Fejlen består i at man uden at være logget ind i admin, kan udnytte Filemanager’en til at uploade hvilken som helst fil til serveren. Du kan læse mere om fejlen på deres forum.

 

Af løsninger til at undgå at Filemanager’en bliver udnyttet, er der:

  • Omdøb din “catalog/admin” mappe
  • Beskyt din “catalog/admin” mappe med .htaccess
  • Fjern “filemanager.php”

Læs videre “osCommerce filemanager exploit”

E-mail validering

Jeg har efterhånden tit siddet og bladret rundt på nettet for at finde et ordentligt script til at validere e-mails med. Og eftersom jeg af mystiske årsager aldrig kan finde det script jeg fandt sidst jeg ledte, så er det efterhånden blevet til et par gange 😛

Nu vil jeg så gå så langt som til at sige at jeg har fundet den “perfekte” function til at validere e-mails.

 

Funktionen gør følgende:

  • Tjekker om e-mailen har gyldigt e-mail syntaks
  • Laver MX-record tjek på den host der er angivet i e-mailen
  • Forsøger at sende en mail fra e-mailen, til e-mailen

Læs videre “E-mail validering”

Inkluder kun det nødvendige

Hvis man kigger på kildekoden til mit site, og mange andre også, kan man i headeren se hvilke JS filer der er inkluderet på den side man er på.

Hvis du kigger i min kildekode lige nu, skulle du gerne se noget ligende det her (taget fra min forside):

<!-- MooTools -->
<script type="text/javascript" src="/frontend/js/mootools_core.js"></script>
<script type="text/javascript" src="/frontend/js/mootools_more.js"></script>
<!-- /MooTools -->
<!-- JS -->
<script type="text/javascript" src="/frontend/js/core.js"></script>
<script type="text/javascript" src="/frontend/js/ajax.js"></script>
<!-- /JS -->

Umiddelbart ser det meget fornuftigt ud, der er ikke for mange ting smidt ind som “bare” fylder. Læs videre “Inkluder kun det nødvendige”

Fejl rapportering

En ting jeg altid sørge for at lave som noget at det første når jeg starter på et nyt site, er at sørge for at jeg kan se eventuelle fejl jeg laver.

For at gøre det super nemt for mig selv, konfigurere jeg mine fejl beskeder i en konfigurationsfil (config.php) som jeg så sørger for at der bliver inkluderet på alle sider.

Derved kan jeg nemt ændre hvordan jeg vil have mine fejlbeskeder:

  • Vist direkte på siden når fejlen opstår “udviklingsmiljø”
  • Gemt i en tekst-fil på serveren som jeg kan tjekke efter behov “produktionsmiljø”
  • Begge af ovenstående

 

Koden for at vise / gemme fejlbeskeder fylder såmænd kun et par linier, og de kommer her:

// Skal fejl vises (1, 0)
ini_set('display_errors', 0);
// Skal fejl gemmes(1, 0)
ini_set('log_errors', 1);
// Må der bruges HTML i fejlbeskrivelse, links til php.net o.l. (1, 0)
ini_set('html_errors', 0);
// Stien til fejl-log
ini_set('error_log', 'sti_til_logfil.txt');
// Hvilke fejl skal vises / gemmes
ini_set('error_reporting', E_ALL | E_STRICT);

Jeg vælger altid at vise / gemme alle fejl der måtte opstå som ses af denne linie:

ini_set('error_reporting', E_ALL | E_STRICT);

Du bestemmer selvfølgelig helt selv hvilke typer fejl du gerne vil vise / gemme, og du kan se en forklaring på hvilke konstanter du kan bruge, samt hvad de betyder på php.net.

Det var lige lidt om fejlrapportering fra mig af, håber du kan bruge det til noget 😉