• Logga in
    • Sök
    • Kategorier
    • Senaste
    • Taggar
    • Populära
    1. Hem
    2. Mikael
    3. Inlägg
    • Profil
    • Följer 0
    • Följare 0
    • Ämnen 514
    • Inlägg 3008
    • Bästa 3
    • Controversial 0
    • Grupper 4

    Inlägg skapade av Mikael

    • Loopia - Stäng av varnish cachen via .htaccess

      Loopia

      Om du har problem med cachen hos Loopia så kan du se hit. Cache är något som är väldigt bra men inte när man ska utveckla sin hemsida. Det är mer än en gång man har funderat på varför inte sakerna man gör förändrar något och kommit på att: fan det är cachen igen

      Du behöver skapa eller modifiera din .htaccess fil

      Header set Cache-Control no-cache
      

      Eller detta, ifall du vill ha mer inställningar

      Header set Cache-Control "max-age=0, private, no-cache, no-store, must-revalidate"
      

      Eller detta, om du bara arbetar med css-filer

      SetEnvIf Request_URI "^.*\.css$" NO_CACHE
      Header set Cache-Control no-cache env=NO_CACHE
      

      Med dessa inställningar så kommer du alltid att få det senaste. Observera att du inte skall köra detta under produktion för då vill man ha cache.

      Mer information om dett hittar du här: Varnish

      postat i Utveckling
      Mikael
      Mikael
    • DNS och DNSSEC test sidor

      DNS informations hämtning

      Här hittar du några bra hemsidor för DNS relaterade saker. Det är bra att ha lite verktyg att leka med.

      dns.jpg

      Hemsidor för att testa DNS-förändringar

      • Check Host
      • Ceipam
      • Dnschecker - En favorit där man kan hämta alla records till en fil och se var i värden det är uppdaterat.
      • Loopia whois - Bra för att kolla status för din domän.
      • Mxtoolbox - Supertool som har olika bra verktyg.
      • Nexcess
      • Site24x7
      • WhatsMyDNS - En bra DNS Propagation Checker

      DNSSEC Test

      • DNSViz
      • Verisign Labs' DNS Analyzer

      Hoppas ni får användning av detta 😉

      postat i Utveckling
      Mikael
      Mikael
    • Cookie

      Vad är cookies?

      En cookie är en textfil som vid uppkoppling mot en webbplats sparas på och vid senare besök, hämtas från, besökarens dator eller datorliknande enheter t.ex. mobiltelefoner. Cookien sparas i anslutning till de filer som används av datorns webbläsare eller motsvarande program.

      Datoranvändaren kan enkelt ta del av, blockera och avlägsna lagrade cookies om så önskas. Det är mycket vanligt att webbplatser använder cookies eftersom de ofta används till grundläggande funktioner.

      Den Intressebaserade anpassning som görs är mycket betydelsefull för användarupplevelsen av Internet. Den reklam användaren exponeras mot blir typiskt sett mer relevant för denne.

      Det ökade värdet av den Intressebaserade reklamen bidrar i hög utsträckning till att attraktiva tjänster kan finansieras med reklam i stället för avgifter.

      Cookies har många användningsområden. Några exempel är:

      • Lagra inställningar för hur en webbplats ska visas (upplösning, språk etc)
      • Koppla på kryptering av överföring på internet av känslig information
      • Möjliggöra observation av hur användare tillgodogör sig webbplatsen och därmed samla underlag för hur webbplatsen generellt kan utvecklas

      koppla användarens exponering för reklam på webbplatser till dennes transaktioner i e-handeln som underlag för beräkning av ersättningar till webbplatsen och annonsnätverken

      samla information om användares beteenden för att anpassa och begränsa innehållet och reklamen på besökta webbplatser till dessa beteenden.

      Cookies används på flera olika sätt inom reklam

      Mycket innehåll på Internet är gratis eftersom den finansieras av reklam. Cookies bidrar bland annat till att webbplatser gör den reklam du ser mer relevant.

      En ytterligare fördel är att reklamen kan begränsas i frekvens till varje användare. En banner visas till exempel bara fem gånger för varje användare. Detta kan endast fungera med hjälp av cookies. När en förutbestämd gräns nås, kommer reklamen inte visas längre, och en annan annons kommer att visas istället.

      En annan möjlig strategi för att anpassa budskapet är intressebaserad reklam. Återigen krävs cookies: Olika användare ser olika annonser – beroende på innehållet på de webbsidor som användaren har besökt. På detta sätt ges mer relevanta annonser.

      En person som ofta använder receptsidor men aldrig bilsidor får mer mat- än bilreklam. Kommersiella leverantörer träffar en bättre målgrupp och du som användarna får färre irrelevanta annonser.

      Cookiehantering

      Som användare kan du själv bestämma om du vill acceptera eller ta bort cookies. Du kan även välja att tilllåta cookies för specifika webbsidor. Dessa val går att göra i inställningarna för din webläsare.

      Observera att detta är inte ett sätt att slippa reklam på webbplatser utan det kommer att visas samma mängd reklam och reklamen kan bli mindre relevant för användaren.

      Om man inte accepterar cookies kan det också leda till att viss information på webbplatsen inte blir tillgänglig.

      Om du väljer bort cookies i din webbläsare kommer det endast gäller för den webbläsare du använder. Du kommer att behöva följa samma process på alla olika webbläsare du använder på samma och/eller olika datorer eller enheter. Observera att om det finns separata användarkonton på en dator i ett hushåll har du möjlighet att skräddarsy dina inställningar för varje konto.

      postat i Utveckling
      Mikael
      Mikael
    • Ansible - Kommandon

      ansible-playbook -i hosts site.yml

      postat i Utveckling
      Mikael
      Mikael
    • Å Ä Ö i Javascript eller HTML

      Kodning

      Det där med olika tecken-kodning som UTF-8 eller ISO-8859-1 kan ibland ställa till det i filer. Ett alternativ är att använda denna tabell.

      å  å  å
      ä  ä   ä
      ö  ö   ö
      Å  Å  Å
      Ä  Ä   Ä
      Ö  Ö   Ö
      

      Tänkte det var lika bra att skriva upp iom att man ofta använder det!

      postat i Utveckling
      Mikael
      Mikael
    • Underhålla flera Wordpress webbsidor

      Wordpress

      När du är utvecklare för många Wordpress-webbplatser så kan det vara bra att ha verktyg för att underlätta detta. Att hantera många WordPress-webbplatser är ett fruktansvärt slöseri med tid och energi och det blir bara värre när ditt företag fortsätter att skala. Jag gillar att använda verktyg som WP-CLI vilket inte funkar för alla.

      Två andra verktyg som är värda att nämna är ManageWP och iThemes Sync där ManageWP är att föredra. Dock så känner jag mig lite främmande för tjänster som dessa två och vill gärna optimera för säkerhet och snabbhet. Blir lätt att man kör in massor med plugin i sitt system som sölar ner.

      Känner ni till flera lösningar eller har en egen take på detta så är det bara att fylla på i denna tråd 😉

      postat i Utveckling
      Mikael
      Mikael
    • Se hur din webbsida fungerar på mobilen

      Ta reda på hur din hemsida / webbsida ser ut i mobilen

      Idag är det extremt viktigt din hemsida är mobilanpassad och responsiv. Att sidan är responsiv innebär att den anpassas oberoende av skärmtyp och skärmstorlek. En stor andel av besökarna surfar med mobila enheter och det är därför onödigt att de missar att läsa informationen. Om man vill synas på Google så är mobilanpassning A och O.

      Det är alltid lätt att säga att man behöver göra massor med saker men frågan man bör ställa sig är:

      Hur testar jag min hemsida

      Om du besöker testmysite.withgoogle.com så kan du få ett gratis test gjort på hur din hemsida fungerar. Om du sedan vill göra något åt det så kan du alltid kontakta mig så hjälper jag till 😉

      postat i Utveckling
      Mikael
      Mikael
    • Peka om ett domännamn temporärt

      DNS

      Som utvecklare vill man ibland ändra ip-adressen för en viss domän. Vanligaste lösningen är att ändra host-filen, men det kan ibland vara för besvärligt.

      Program

      Genom att istället använda ett program så gör man detta mycket lättare.

      • Gasmask (Mac)
      • Hostsfileeditor (Windows)

      Alternativa lösningar

      • Editera Hosts-filen i Windows

      Detta kan även vara smidigt om du skall visa en kund och inte kan förklara hur de skall modifiera en hosts-fil.

      postat i Utveckling
      Mikael
      Mikael
    • Tömma Google Chromes interna DNS-cache

      Google Chrome

      Som ni säkert vet så har Google Chrome en egen intern DNS-cache. Det brukar funka att starta om webbläsaren eller vänta ett tag för att den ska uppdateras. Alternativt så kan man gå till chrome://net-internals/#dns för att rensa cachen. Har även ibland fått tömma temporära internet-filer för att det ska funka. Antar att den hittar massor med gammalt skit från filerna 🙂

      postat i Utveckling
      Mikael
      Mikael
    • Uppdatera wordpress och plugin

      Wordpress

      WordPress är ett open source projekt (öppen programvara). Detta betyder att alla kan vara med och utveckla program, appar, tillägg som kan adderas till Wordpress-verktyget. Själva verktyget utvecklas av The WordPress Team med bland annat Matt Mullenweg i spetsen.

      Som med all programvara så är det viktigt att uppdatera Wordpress och plugin regelbunden för att man inte ska bli hackad eller missa nya funktioner. Det viktigaste är självklart att uppdatera när det kommer säkerhetshål.

      Du kan hitta nyheter om det som släpps via wordpress.org.

      postat i Utveckling
      Mikael
      Mikael
    • Script för att packa upp en ZIP-fil på ett webbhotell

      Ett snabbare alternativ till ftp

      Många väljer att skicka upp filer via ftp till sitt webbhotell när det inte finns stöd för en filhanterare eller ssh. Detta fungera bra i många fall men inte när man har massor med små filer som gör att det tar lång tid. För att optimera detta så kan man skapa en zip-fil istället som packas upp med hjälp av zip-stöded i PHP.

      OBS: Notera att när scriptet har kört klart så tar den bort både scriptet och tar-filen som du laddat upp.

      1. Se till att mappen är tom som du lägger upp detta i
      2. Skapa filen unzipper.php från koden nedan
      3. Ladda upp en zip-fil som heter unzipper.zip
      4. Besök scriptet via en webbläsare och låt den köra klart.

      Här ser ni källkoden för filen unzipper.php

      <?php
      $filename = 'unzipper.zip';
      if(file_exists($filename))
      {
          $zip = new ZipArchive();
          $x = $zip->open($filename);
          if($x === true)
          {
              $zip->extractTo('.');
              $zip->close();
              unlink($filename);
              unlink('unzipper.php');
              print('unzipper.zip was unpacked!');
          }
          else print('Something went wrong!');
      }
      else print('Cant find unzipper.zip');
      

      Om du känner dig osäker så använd inte denna metod. Du kan alltid anlita mig för hjälp med flytt av webbplatser. Jag har även lagt till ett script för att ta bort alla filer i den mappen som scriptet ligger i. Det är rätt lustigt men även något så enkelt som att ta bort filer tar extremt lång tid via ftp ifall det är massor av dem.

      OBS: Notera att när scriptet har kört klart så tar den bort allt som finns.

      Här är källkoden till removeall.php

      <?php 
      function rrmdir($dir)
      {
          if(is_dir($dir))
          {
              $objects = scandir($dir);
              foreach ($objects as $object)
              {
                  if ($object != "." && $object != "..")
                  {
                      if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
                  }
              }
              reset($objects);
              rmdir($dir);
          }
      } 
      rrmdir('.');
      

      Det är alltid kul att optimera så man spar tid 😉

      postat i Utveckling
      Mikael
      Mikael
    • Onlineverktyg för WHOIS

      Hitta domäninformation med WHOIS

      WHOIS är en offentlig katalog där du kan se vem som är ansvarig för en domän eller IP-adress. Varje domän måste ha ett offentligt register över den person eller organisation som äger domänen, inklusive namn, adress, telefonnummer och e-post.

      Om du ska ta reda på information som gäller ett privatägt .se domännamn så brukar det inte finnas mycket att se. Detta för att skydda privatpersoner i Sverige.

      Jag använder mig ofta av Loopias WHOIS tjänst 😉

      postat i Utveckling
      Mikael
      Mikael
    • Redlight - Swish Handel & WooCommerce certifikat

      Installationsguide för Swish Handel & WooCommerce

      Om du använder swish-for-handel-automatisk från Redlight så har du en kort guide här hur man genererar ett certifikat.

      1. Logga in och administrera certifikat
        Börja med att logga in på https://getswishcert.bankgirot.se
        Ange sedan ditt personnummer som är registrerat hos swish för att hantera certifikat. Ange organisationsnummer och swishnumret för handel (detta hittar ni på bankens hemsida)

      2. Skapa en Certificate Signing Request (CSR)
        Kör följande kommandon för att generera Certificate Signing Request. Ange era uppgifter men sätt inget lösenord på din CSR. Använd swishcsr.csr för att skapa certifikatet på https://getswishcert.bankgirot.se

      openssl genrsa -out /var/www/html/swish.key 2048
      openssl req -new -sha256 -key /var/www/html/swish.key -out /var/www/html/swishcsr.csr
      
      1. Kopiera in CSR till Swish certifikathanteringen och skapa certifikat (bankgirot.se)
        Här anger du CSR som du fick i slutet av föregående steg. Välj formatet PEM. Under BIC så kommer det att finns det som är för din bank. Se också till att Spara undan nyckeln (KEY) som du fick i slutet av förra steget. Då den kommer att användas senare.

      2. Slå ihop certifikatet med key
        Skapa swish.pem och kopiera in key som du fick när du skapade din CSR
        viktigt här är att du kopierar med allt från
        —–BEGIN RSA PRIVATE KEY—–
        —–END RSA PRIVATE KEY—–
         
        Lägg sedan in det i överst i swish.pem
         
        Om du öppnar filen så ska strukturen vara enligt följande:
        —–BEGIN RSA PRIVATE KEY—–
        —–END RSA PRIVATE KEY—–
        —–BEGIN CERTIFICATE—–
        —–END CERTIFICATE—–
        —–BEGIN CERTIFICATE—–
        —–END CERTIFICATE—–
        —–BEGIN CERTIFICATE—–
        —–END CERTIFICATE—–
        —–BEGIN CERTIFICATE—–
        —–END CERTIFICATE—–

      3. Inställningar i WooCommerce
        Börja med att fylla i licensnyckeln du fick när du ladda ner pluginet. Ange sedan ditt swishnummer som du fick när du tecknade avtalet med din bank. Det börjar på 123, använd inga mellanslag här. Fyll även i sökvägen till ditt certifikat som du har laggt upp på webbserven (swich.pem). Sedan är du klar att testa swich.

      postat i Utveckling
      Mikael
      Mikael
    • Loopia - Flytt av domän och tjänster mellan olika konton

      Överlåtelse

      Genom denna guide lyfter du ut ett eller flera domännamn från ett konto till ett nytt, och korrigerar eventuellt samtidigt kontoägare, utan driftavbrott för domänens/domänernas tjänster (t ex webb och e-mail). Efter detta kan du gå vidare med eventuell åtgärd, t ex överlåtelse, sammanslagning eller överföring.

      1. Nuvarande domänägare ska skapa ett konto på https://www.loopia.se/bestall/. Ange som domännamn förslagsvis: "loopia-dindomän.se" (byt ut dindomän.se mot en av dina domäner). Här är det även viktigt att valet "Jag har redan domännamn" väljs. Denna domän finns inte, är endast platshållande och kommer att tas bort när processen är klar.

      2. På den nya sidan så kommer du få val för att välja webbhotellspaket, men då detta innebär att du först behöver betala en faktura för att få tillgång till kontot så väljer du här "Hoppa över detta steget >>".

      OBS! Du ska ange aktuella ägaruppgifter för den eller de domäner som du avser lägga in i detta konto (dvs inte avsedd ny ägare, i det fall överlåtelse är slutmålet). Om du är osäker vilken aktuell ägare är för den domän, använd http://whois.loopia.se/ eller för .SE https://www.iis.se/domaner/free/ för att kontrollera, alternativt be oss undersökare närmare vilken aktuell ägare är.

      1. Följ instruktionerna för att bekräfta skapandet av kontot. Inloggningsuppgifter och kundnummer skickas sedan till vald mailadress.

      2. Logga in i kontot. Uppgradera detta konto till webbhotell genom att logga in och klicka "Uppgradera ditt konto" i menyn. Välj webbhotellspaket och beställ. (I det fall överenskommelsen är att kontot skapas tillfälligt tillåter vi detta abonnemang kostnadsfritt i 30 dagar.)

      3. Skicka mail till [email protected] med dessa uppgifter

        • Kundnummer för kundkontot där domänen/domänerna ligger idag;
        • Kundnummer för det nyskapade kontot;
        • Vilka domäner som skall flyttas från det första till det andra kontot.
      4. Vi flyttar domänerna och svarar tillbaka när det är genomfört, och tar bort den platshållande domänen.

      5. Klart! Du kan nu gå vidare enligt överenskommelse (t ex överlåtelse, sammanslagning, överföring eller ingen vidare åtgärd).

      postat i Utveckling
      Mikael
      Mikael
    • Administrationsverktyg för Wordpress

      WP-CLI

      WP-CLI är ett kommandoverktyg som möjliggör hantering av Wordpress i en kommandotolk. Du kan exempelvis installera Wordpress, hantera plugins eller återställa permalänkar. Det finns också möjlighet att skriva egna kommandon.

      Ingen installation behövs. Ladda bara ner PHP-arkiv filen och kör den från Wordpress rooten.

      curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
      php wp-cli.phar
      

      Det bästa är att lästa dokumentationen på skaparens hemsida.

      postat i Utveckling
      Mikael
      Mikael
    • Bra Wordpress-plugins att känna till

      Wordpress

      Här har ni en lista på Wordpress-plugins som jag tycker är bra och är värda att känna till. Om du är en avanserad användare så rekommenderar jag även wp-cli.

      Top-WordPress-Plugins.png

      Plugins

      Kalender

      • Events Manager är ett komplett tillägg för evenemangsregistrering (gratis och kostar).
      • Team Booking - Ett plugin som funkar med Google kalender (kostar).

      Övrigt

      • AddThis - AddThis är ett bra plugin för att dela innehåll till sociala medier.
      • All in One SEO Pack - Hantera inställningar för sökmotoroptimering.
      • All In One WP Security - Allt i ett Wordpress-plugin för säkerhet.
      • Auto More Tag - Lägger in en more tag automatiskt i dina inlägg.
      • Cookie Notice by dFactory - För dig som lätt vill få in information om cookie lagen
      • File Manager - Hantera filer utan ftp access
      • Google XML Sitemaps - Lägga till sitemapstöd (Använd inte i samband med All in One SEO Pack)
      • Imsanity - Insanity ändrar storlek automatiskt på bilder som laddas upp.
      • Loco Translate - Översätta Wordpress-plugins och teman direkt i webbläsaren.
      • Ninja Forms - Användbart plugin för kontakt formulär.
      • Optimize Database after Deleting Revisions - Optimera Wordpress databasen.
      • PHP Compatibility Checker - Kolla stöd för olika PHP-versioner.
      • Simple Custom CSS - Ändra CSS för teman och plugin.
      • Simple Google Analytics Tracking - Google analytics plugin för statistik. (Använd inbyggd ifall det finns som i Divi)
      • SQL Executioner - Exekvera SQL-frågor mot din Wordpress databas.
      • Top Authors - Visa dina författare lite extra i din blogg.
      • User Locker - Öka säkerheten mot brute force attacker.
      • Username Changer - Om du lätt som admin vill byta användares användarnamn.
      • WordPress Social Login - SSO (Single Sign On) plugin för Wordpress.
      • WP Editor - Bättre editor för dig som är kodare.
      • WPFront User Role Editor - Editera dina roller i Wordpress.
      • WP Mail SMTP - Hantera mail via en extern SMTP server. Stödjer AUTH, SSL och Wordpress multisite.
      • WP Maintenance Mode - Aktivera sida för underhåll.
      • WP Missed Schedule Fix Failed Future Posts - Hantera missade schemaläggningar av inlägg.
      • WP Super Cache - Cache motor för Wordpress.
      • WP User Avatar - Avatar hanterare för Wordpress.

      Lägg in detta i wp-config.php

      define('FS_METHOD','direct'); 
      

      Om ni har fler tips på plugin så är det bara att svara i denna tråd. Jag kommer hålla denna lista uppdaterad 😉

      postat i Utveckling
      Mikael
      Mikael
    • Bra WooCommerce-plugins att känna till

      WooCommerce

      Här har ni en lista på WooCommerce-plugins som ät bra att känna till. Det finns även en tråd för plugins till Wordpress om det är mer intressant.

      WooCommerce-integration.png

      Plugins

      • DIBS for WooCommerce - Betalning via DIBS
      • WC Custom Thank You - Anpassa din tacksida för dina kunder.
      • WooCommerce AdWords Conversion Tracking - Spåra värdet av WooCommerce-orders i Google AdWords.

      Kommer fylla på denna lista när jag hittar bra saker!

      postat i Utveckling
      Mikael
      Mikael
    • Git - Kommandon

      Git kommandon

      Ibland kan det vara bra att känna till vanliga kommandon för Git. Här har ni en lista på sådant som kan vara bra att känna till.

      Vanligt bruk

      Checka ut tidigare revision. Använd git log för att se namnet på revisionen du vill ha. För att gå tillbaka så kör du git checkout master eller branch namnet du använder.

      git checkout <revision>
      

      Kloning av ett befintligt arkiv

      git clone remotepath localpath
      

      Se loggen för alla revisioner. Lägg till växel --stat för mera information.

      git log
      

      Konfiguration

      Skapa ett nytt git repository när du står i källkoden (git init --bare ifall du vill ha ett delat repository)

      git init
      

      Visar din git konfiguration

      git config --list
      

      Sätt användaruppgifer för git commit. Ta bort --global ifall du bara ska ha detta för det repositorit du är i just nu

      git config --global user.email "[email protected]"
      git config --global user.name "Fistname Lastname"
      

      Ta bort färger i diff. Kan vara bra ifall du använder detta i script

      git config --global color.diff never
      

      Klona ett git repository över ssh med nyckel

      GIT_SSH_COMMAND="ssh -i <sökväg till nyckel>" git clone user@host:<Sökväg i serven>
      

      Byt repository källa. Detta kan vara bra att veta när någon flyttar ett repository som du använder. Sökväg till repository kan vara https://<användarnamn>@github.com/<användarnamn>/<repo> för http eller [email protected]:<användarnamn>/<repo> för ssh. Testa att nyckel funkar med ssh -T [email protected].

      git remote set-url origin <sökväg till repository>
      

      Övrigt

      Kontrollerar och verifierar objekten i databasen.

      git fsck --full
      

      Räkna hur många commit du har

      git rev-list --all --count
      

      Slå ihop commits (pick, squash) och tvinga upp det. Alla klienter måste ta bort sin kopia och checka ut det igen. Detta kan vara bra när du vill att ditt repository ska minska i storlek. Läs mer på Github. Byt ut X mot antal revisioner du vill gå igenom.

      git rebase --interactive HEAD~X
      git push origin master --force
      

      Kommer lägga till mer kommandon här när jag kommer på något bra 😉

      postat i Utveckling
      Mikael
      Mikael
    • Underhåll och kontroll av Git

      Filsystem-kontroll av ditt git-träd

      Ibland kan man vara osäker på om sin kod är säker i Git samt om hela historiken intakt.

      Med detta kommando så kan du kontrollera om allt står rätt till.

      git fsck --full
      

      Om du vill kontrollera flera git-träd samtidigt så kan du köra detta

      for x in *; do cd $x; git fsck --full; cd -; done
      

      Rätt smidigt ifall du har många träd i samma mapp. Du kan hitta fler bra git-kommandon här.

      postat i Utveckling
      Mikael
      Mikael
    • Olika orderstatus i WooCommerce

      Orderstatus

      En ny order skapas i WooCommerce när en kund slutför ett köp i kassan. Varje order ges ett unikt Ordernummer. Varje order har också en viss Orderstatus beroende på var i orderprocessen den befinner sig.

      De olika typer av orderstatus som en order kan ha är följande:

      • Mottagen (obetald) på engelska Pending - Order skapad, betalning ännu ej registrerad.
      • Misslyckad (Failed) - Betalningen misslyckades eller avböjdes.
      • Behandlas (Processing) - Betalning mottagen och lagersaldot minskat (ordern väntar på att skickas och slutföras).
      • Färdigbehandlad (Completed) - Ordern är skickad (kräver inga ytterligare åtgärder).
      • Mottagen (inväntar betalning) (On hold) - Inväntar betalning. Lagersaldot minskat, men du måste bekräfta betalningen.
      • Avbruten (Canceled) - Ordern avbruten av en administratör eller av kunden (ingen ytterligare åtgärd krävs).
      • Återbetalad (Refunded) - Återbetalad av en administratör (ingen ytterligare åtgärd krävs).

      Ibland kan det vara svårt att veta skillnad mellan olika statusar. Tanken är att detta ska göra det lite lättare 🙂

      postat i Utveckling
      Mikael
      Mikael
    • Tvinga HTTPS för din webbsida med .htaccess

      HTTPS med htaccess

      Ibland är det nödvändigt att se till att webbplatsens besökare använder SSL-krypterad anslutning. Detta för att säkerställa att ditt certifikat användas. Du kan även göra detta med PHP.

      SSL-flowchart.png

      För att tvinga användare till https så använder man en konfigurationsfil som heter .htaccess. Denna fil ligger normalt sätt i rootmappen för din webbsida men fungerar även längre in i strukturen. Viktigt att veta är att om du redan har en .htacess-fil så ska du lägga in dessa koder överst i filen.

      Dirigera om allt på den webbplats till https (Glöm inte att byta ut www.dindomän.se till rätt domän)

      RewriteEngine On
      RewriteCond %{SERVER_PORT} 80
      RewriteRule ^(.*)$ https://www.dindomän.se/$1 [R,L]

      Om du vill tvinga ett specifikt domännamn till https (Här måste du byta ut www.dindomän.se och exempel\.se)

      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^exempel\.se [NC]
      RewriteCond %{SERVER_PORT} 80
      RewriteRule ^(.*)$ https://www.dindomän.com/$1 [R,L]

      Om du vill tvinga SSL för en viss katalog (Byt ur katalog till ditt katalognamn)

      RewriteEngine On
      RewriteCond %{SERVER_PORT} 80
      RewriteCond %{REQUEST_URI} katalog
      RewriteRule ^(.*)$ https://www.yourdomain.com/katalog/$1 [R,L]

      Det finns mycket man kan göra med .htaccess-filen 😉

      postat i Utveckling
      Mikael
      Mikael
    • Tvinga HTTPS för din webbsida med PHP

      HTTPS med PHP

      Ibland är det nödvändigt att se till att webbplatsens besökare använder SSL-krypterad anslutning. Detta för att säkerställa att ditt certifikat användas. Du kan även göra detta med htaccess.

      SSL-flowchart.png

      Lägg in denna kod i toppen på index.php

      if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off")
      {
          $redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
          header('HTTP/1.1 301 Moved Permanently');
          header('Location: ' . $redirect);
          exit();
      }
      

      Smidigt när det är så lätt 😉

      postat i Utveckling
      Mikael
      Mikael
    • Förhindra skräppost i vilket webbformulär som helst

      Spam

      Att bekämpa spam är en av de oändliga uppgifterna för oss alla webbutvecklare. Lyckligtvis har de flesta e-postleverantörer blivit intelligenta nog för att gömma det mesta för oss. Men vad händer när robotar börjar attackera din eller kunders kontaktformulär på webben? Till din e-postleverantör kommer det att se ut som legitima inlägg från dina kunder, men det är detsamma som all annan skräppost man får ta del av.

      Att lägga till någon form av mänsklig verifiering till dina formulär kan hjälpa till att eliminera eventuell skräppost. Det bästa och enklaste att använda för detta är enligt mig Googles kostnadsfria reCAPTCHA-tjänst. Jag kommer nedan beskriva hur man lägger in detta på någon av dina webbplatser.

      1. Registrera din webbsida på Googles reCAPTCHA
      2. Google kommer att generera to nycklar åt dig, en publik och privat. Den publika nyckeln är inte hemlig och kan ligga öppet för alla att se medans den privata ska du hålla hemlig. Du måste generera egna nycklar men här har du 2 nycklar för detta exempel.
      Site key: 6LeySRIUAAAAAJnYn_JKQ5i2UfH85wKA-YgSYACL
      Secret key: 6LeySRIUAAAAAM5d5huz1-SIW4OMjfgDx_pwfToe
      
      1. För att lägga till reCAPTCHA till ditt formulär så behöver du detta inom <form> taggarna.
      <!-- The script should ideally be in your <head> tag, but it still works if it's here -->
      <script src='https://www.google.com/recaptcha/api.js'></script>
      <div class="g-recaptcha" data-sitekey="6LeySRIUAAAAAJnYn_JKQ5i2UfH85wKA-YgSYACL"></div>
      
      1. För att man ska kunna verifiera att besökaren har klickat på reCAPTCHA korrekt så måste man göra en förfrågan mot Google. Jag använder mig av PHP, men om du är en utvecklare så kan du använda vilket språk som helst.
      $siteverify = 'https://www.google.com/recaptcha/api/siteverify';
      $args = array(
          'remoteip' => $_SERVER['REMOTE_ADDR'],
          'response' => $_POST['g-recaptcha-response'],
          'secret' => '6LeySRIUAAAAAM5d5huz1-SIW4OMjfgDx_pwfToe'
      );
      $recaptcha = json_decode(file_get_contents($siteverify.'?'.http_build_query($args)), true);
      if(isset($recaptcha['success']) && $recaptcha['success'] == 1) {
          $captcha = true;
      } else {
          $captcha = false;
      }
      

      Bara att fylla i dina nycklar istället för de i exemplet så skall det fungera. Om du använder dig av Cloudflare så rekommenderar jag att du kör med $_SERVER['HTTP_CF_CONNECTING_IP'] istället för $_SERVER['REMOTE_ADDR']. Annars så får du inte korrekt ip i verifieringen.

      Om ni vill se hur det kan se ut så gå till min sida och tilla längst ner. Hoppas detta kommer att hjälpa er lika mycket som det har hjälpt mig. Om ni inte kan utveckla så kan ni alltid anlita mig att göra det åt er 😉

      Honeypot-tekniken

      Om man inte vill mecka med Googles reCAPTCHA så kan man använda sig av honeypot-tekniken eller båda om man känner för det. Själv så kör jag bara reCAPTCHA 😉

      Honeypot-tekniken är ett snabbt och effektivt sätt att förhindra bottar från att skicka skräppost in dina formulär. Spam-bottar älskar formfält och när de möter ett formfält fyller de ut detta, även om fältet är dolt från användargränssnittet. För att utnyttja detta kan du skapa ett formulärfält som ska lämnas tomt, men göm det från mänskliga användare. När formuläret skickas kan du kontrollera om det finns ett värde för fältet och blockera meddelandet.

      Lägg bara till ett extra input-fält i formuläret och dölj det med display:none. När du sedan ska hantera informationen i PHP så kollar du bara ifall det finns något värde i detta input-fält och kastar informationen ifall det finns ett värde.

      postat i Utveckling
      Mikael
      Mikael
    • Lokalisera och identifiera webbplatsbesökare via IP-adress

      Vilket land kommer mina besökare ifrån

      Om man vill ha olika webbsidor för olika länder så kan det vara smidigt att kolla var besökaren kommer ifrån och skicka dem till rätt webbsida. Det finns massor med tjänster som hjälper till med detta.

      Geo tjänster

      • IPInfoDB
      • Ipstack

      Web proxy

      • Hidemyass
      • Whoer

      Jag har byggt ihop ett litet script där jag använder mig av ipstack för att kolla upp besökarna. Du måste dock skaffa en egen api-nyckel för att detta ska fungera. Du kan sedan testa scriptet med Hidemyass tjänsten.

      <?php
      header('Pragma: no-cache');
      header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
      header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
      
      $api_key = '<api nyckel>';
      $base_url = 'exempel.se';
      function fetch($url) {
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0');
          curl_setopt($ch, CURLOPT_HEADER, 0);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($ch, CURLOPT_TIMEOUT, 10);
          $out = curl_exec($ch);
          curl_close($ch);
          return $out;
      }
      $url = 'http://api.ipstack.com/'.$_SERVER['REMOTE_ADDR'].'?access_key='.$api_key.'&fields=country_code';
      $data = json_decode(fetch($url));
      $europe = array('AD', 'AL', 'AT', 'AX', 'BA', 'BE', 'BG', 'BY', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FO', 'FR', 'GB', 'GG', 'GI', 'GR', 'HR', 'HU', 'IE', 'IM', 'IS', 'IT', 'JE', 'LI', 'LT', 'LU', 'LV', 'MC', 'MD', 'ME', 'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'RU', 'SE', 'SI', 'SJ', 'SK', 'SM', 'UA', 'VA');
      
      try {
          if($data->country_code == 'SE') {
              $redirect = 'se';
          } else if (in_array($data->country_code, $europe)) {
              $redirect = 'eu';
          } else {
              $redirect = 'us';
          }
          if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
          {
              $redirect = 'se';
          }
      } catch(Exception $e) {
          $redirect = 'us';
      }
      $redirect_url = 'http://'.$redirect.'.'.$base_url;
      header("Location: ".$redirect_url, true, 301);
      ?>
      

      Bra med detta script som referens. Bara att bygga vidare på den om det behövs 😉

      postat i Utveckling
      Mikael
      Mikael
    • Javascript scroll exempel

      Jquery

      Här har ni en liten kodsnutt som gör något när man har scrollat en liten stund.

      <script>
      jQuery(document).scroll(function() {
        if(typeof count === "undefined") {
          count=0
        } else {
          if(count < 20) count+=1;
        }
      
        if(count == 20) {
          jQuery('.someclass').html('<p>Some html</p>');
          count+=1;
        }
      });
      </script>
      

      Perfekt att använda istället för någon sleep funktion 😉

      postat i Utveckling
      Mikael
      Mikael
    • 1
    • 2
    • 89
    • 90
    • 91
    • 92
    • 93
    • 120
    • 121
    • 91 / 121