Du är här: keryx/Lars blogg/72. Hoppa till huvudinnehållet (h) Sidans menysektion:
Keryx logotype

Lars Gunthers bloggsida

Ny lärobok: Webbserverprogrammering 1 med PHP

Nu är min nya lärobok upptryckt och kan köpas. Den behandlar Webbserverprogrammering med PHP och skiljer sig från andra böcker i ämnet på några sätt. Jag går inte igenom språkets alla detaljer. Det behövs inte. PHP har en ypperlig manual. I stället vill jag lära mina läsare hur de kan använda manualen och vad de behöver tänka på för att bygga säkra PHP-appar redan från början.

När jag själv en gång i tiden lärde mig PHP så var det genom en bok som ända sedan dess tjänat som skräckexempel för mig. Jag följde dess lärdomar och blev en usel webbutvecklare! Jag blev tvungen att lära om och lägga bort mina dåliga vanor. Det som jag lärde mig gjorde mina webbplatser vidöppna för olika slags attacker och dessutom skrev jag svårunderhållen grötkod.

Filosofin bakom boken

I min lärobok så försöker jag följa några viktiga principer:

Säkerhet och god praxis

Dessa aspekter betonas genomgående. Varje enskilt moment beskrivs ur säkerhetsperspektiv och den övergripande arkitekturen följer konsekvent principen filter input, escape output. Boken har dessutom ett övergripande teorikapitel om säkerhet.

Ett exempel på hur min bok skiljer sig från andra är att jag beskriver hur man på ett säkert sätt kan ta emot formulärdata och skicka det vidare med mejl. SMTP-protkollet är lika öppet för manipulation som SQL och dåligt skrivna kontaktsidor används gärna för att spamma tredje part, ofta utan att den som driver webbplatsen ens vet om det.

För lösenordshantering visar jag hur de kan skapas och kontrolleras mycket enkelt med den säkraste krypteringsalgoritmen, för närvarande bcrypt, och alltid kompletteras med ett slumpmässigt skapat salt.

De råd och tips som ges om god praxis i övrigt är sådant som jag samlat på mig under en lång rad av år som utvecklare där jag också läst böcker, artiklar och bloggar skrivna av några av de mest ansedda inom PHP-gemenskapen. Numera samlas många av dessa råd av PHP Framework Interop Group i form av kodstandarderna PSR. På nybörjarnivå följs dock inte dessa slaviskt.

Specifika frågor

Bygger boken vidare på Webbutveckling 1?

Den fortsätter utvecklingen av samma webbplats, men den kan användas även om man inte först läst Webbutveckling 1. HTML och CSS-kunskaper på motsvarande nivå tas dock för givna.

Går boken igenom objektorientering

Boken lär ut användningen av objekt, men stannar vid mellanläget objektbaserad utveckling. Boken tipsar om designmönster men som en framtida vidareutveckling av läsarens kunskaper.

Vilken databas används?

Boken går igenom alternativen för datalagring, inklusive NoSQL, men än så länge är relationsdatabasen det mest använda. Boken använder därför MySQL eller MariaDB. (Den reder ut turerna om varför MariaDB skapades.)

Vilka program behöver installeras?

På Linux finns allt du behöver i din distribution. För Windows och Mac OS X rekommenderar jag XAMPP. Apple erbjuder visserligen inbyggt PHP-stöd men det ger dig en föråldrad version av PHP.

Måste man gå på gymnasiet för att ha nytta av boken

Nej, definitivt inte. Även om boken är anpassad efter kursplanen, så hoppas jag att kursplanen jag skrev i sin tur är anpassad efter verkligheten!

Täcker boken alla moment i kursplanen?

Nästan. Den går inte igenom utvecklingsprocessen och den nämner bara CMS:er och ramverk flyktigt. Så 9 moment av 11 täcks av boken, vilket inte är så illa, väl?

Hur blir det med arbetsbok, videos och lärarhandledning?

Arbete pågår. Arbetsbok bör vara klar före september månads utgång (2013). Videos kommer att läggas upp successivt. Lärarhandledningens tidsplan är mer osäker. Den ska innehålla mer än bara svar på arbetsbokens frågor och det tar en liten stund att skriva.

Borde jag köpa boken?

Absolut! Köp den hos förlaget på Skolportalen.

Innehållsförteckning

  1. Förlagets förord
  2. Författarens förord
  3. Att använda detta läromedel
    1. Typografiska konventioner
    2. Webbplats
    3. Till sist: Vad denna bok inte är
  4. Innehållsförteckning
  5. Ämnesplan och kursplan
    1. Ämne – Webbteknik
    2. Kursplan för Webbserverprogrammering 1
  6. 1 Kom igång med PHP
    1. 1.1 Installation av PHP på Linuxdatorer
    2. 1.2 Installation av PHP på Windows och Mac OS X
    3. 1.3 Ett första PHP-skript
    4. 1.4 En komplett webbsida med inslag av PHP
    5. 1.5 Variabler och citationstecken (enkel- och dubbelfnuttar)
    6. 1.6 Några korta anmärkningar om PHP som språk (syntax och kompilering)
    7. 1.7 OK, hur lär jag mig detta?
    8. 1.8 En bra editor för PHP
    9. 1.9 Katalog och filstruktur
    10. 1.10 Lästips
  7. 2 Några ytterligare exempel
    1. 2.1 Visa datum, månad, tid, etc.
    2. 2.2 Ett slumpmässigt valt citat
    3. 2.3 Räkna antalet tecken i ett namn och skriv det baklänges
    4. 2.4 Lästips
  8. 3 PHP:s historia, versioner, styrkor och svagheter
    1. 3.1PHP:s historia
    2. 3.2Vem använder PHP
    3. 3.3 Versionshistorik
    4. 3.4 Hur bra är PHP?
  9. 4 Att använda PHP som ett mallsystem
    1. 4.1 Återanvändning av kod mellan olika sidor med mallar
    2. 4.2 Samma sida, men olika innehåll
    3. 4.3 Läs mer
  10. 5 PHP som programmeringsspråk
    1. 5.1 Att växla till PHP-läge
    2. 5.2 Satser, block och kommentarer
    3. 5.3 Värdetyper, variabler, konstanter och uttryck
    4. 5.4 Variablers namngivning och räckvidd (scope)
    5. 5.5 Tilldelning
    6. 5.6 Några operatorer
    7. 5.7 Jämförelser, sant och falskt
    8. 5.8 Finkod och fulkod
    9. 5.9 Läs mer
  11. 6 Säkerhetstänk
    1. 6.1 Problemkällor
    2. 6.2 Principer
    3. 6.3 Försvarsåtgärder
    4. 6.4 Läs mer
  12. 7 Strängar
    1. 7.1 En sträng är en sekvens av tecken
    2. 7.2 UTF-8 kräver mb-funktionerna
    3. 7.3 Specialtecken
    4. 7.4 Verifikation av välformad UTF-8
    5. 7.5 Ta bort farliga delar av en sträng
    6. 7.6 Läs i manualen
    7. 7.7 Extra läsanvisning: Se vad manualen säger om kontrollstrukturer innan du fortsätter
  13. 8 Arrayer
    1. 8.1 ”Min array är inte lik din array”
    2. 8.2 Definiera arrayer, lägg till, ändra och ta bort värden
    3. 8.3 Läsa och skriva till array-element
    4. 8.4 Använda arrayvärden i textsträngar
    5. 8.5 By reference mellan array-medlem och enkel variabel
    6. 8.6 Loopa genom arrayer med foreach
    7. 8.7 Bryta en loop i förtid
    8. 8.8 Några array-funktioner
    9. 8.9 Array-liknande strukturer
    10. 8.10 Läs mer
  14. 9 Funktioner i PHP
    1. 9.1 En funktions funktion
    2. 9.2 Utnyttja variablernas begränsade räckvidd (scope)
    3. 9.3 Statiska variabler
    4. 9.4 Sök i manualen, din funktion finns nog redan där!
    5. 9.5 Att läsa PHP-manualen om funktioner
    6. 9.6 Att hellre returnera än skriva
    7. 9.7 Dokumentera dina funktioner
    8. 9.8 Definiera funktioner (och klasser) för sig
    9. 9.9 Läs mer
  15. 10 Objekt i PHP
    1. 10.1 Vad är ett objekt i PHP
    2. 10.2 OO syntax i PHP kontra andra språk
    3. 10.3 Klasser – objekt av en viss typ
    4. 10.4 Metoder och $this
    5. 10.5 Magiska metoder
    6. 10.6 Klasskonstanter och statiska metoder
    7. 10.7 Derefencing (översättning saknas)
    8. 10.8 Objekt skickas alltid som referens
    9. 10.9 Läs mer om objekt
  16. 11 Felhantering
    1. 11.1 Att förebygga och hantera logikfel
    2. 11.2 Fel (errors)
    3. 11.3 Undantag (exceptions)
    4. 11.4 Error eller exception – när passar vad?
    5. 11.5 Tekniska fel och felmeddelanden till slutanvändaren
    6. 11.6 Läs mer
  17. 12 Databaser och datalagring
    1. 12.1 Databaser och databashanterare (DBMS)
    2. 12.2 Alternativ för datalagring
    3. 12.3 MySQL och MariaDB
    4. 12.4 PhpMyAdmin
    5. 12.5 Datatyper i MySQL/MariaDB
    6. 12.6 PHP och databasen
    7. 12.7 Läs mer
  18. 13 Att ansluta till en databas och hämta värden
    1. 13.1 Välj ett modernt gränssnitt!
    2. 13.2 Ett enkelt exempel
    3. 13.3 En komplett funktion för att ansluta (en aning ”kokbok”)
    4. 13.4 Prepared statements
    5. 13.5 Loopa igenom databasresultat
    6. 13.6 Snyggare visning av namnet på den som skrivit ett inlägg
    7. 13.7 Läs mer
  19. 14 Formulär och PHP
    1. 14.1 Ett första exempel
    2. 14.2 Läs indata med filter-funktionerna
    3. 14.3 Don’t, just don’t…
    4. 14.4 När formulärdata ska få innehålla HTML-kod
    5. 14.5 Sätt inte användaren på pottkanten
    6. 14.6 Hantera framgången och undvik CSRF
    7. 14.7 Lästips
  20. 15 Cookies, Inloggning och lösenordshantering
    1. 15.1 Cookies är omstridda men nödvändiga
    2. 15.2 Vad ska ett autentiseringssystem kunna?
    3. 15.3 Bygga eget eller låna?
    4. 15.4 Sessioner
    5. 15.5 Inloggning för läxhjälpens administratörer
    6. 15.6 Säkra lösenord
    7. 15.7 Lösenordskontroll
    8. 15.8 Kontroll av att någon är inloggad och har behörighet
    9. 15.9 Behörigheter
    10. 15.10 Läs mer
  21. 16 Från formulär till databas
    1. 16.1 Visa formulär
    2. 16.2 Hantera bloggposter
    3. 16.3 Formulärhanteringen
    4. 16.4 Radera poster
    5. 16.5 Lästips
  22. 17 Skicka mejl med PHP
    1. 17.1 Mejlprotokoll, SMTP och SMTP-injektion
    2. 17.2 PHP:s mejlfunktioner
    3. 17.3 Kontaktformulär för Läxhjälpen
    4. 17.4 Läs mer
  23. 18 Att ha kul med PHP
    1. 18.1 Snygga URL:er
    2. 18.2 Skapa annat än HTML-kod
    3. 18.3 Ajax
    4. 18.4 Webbtjänster – att kommunicera med andra servrar
    5. 18.5 Internationalisering och lokalisering
  24. 19 Infrastruktur för utveckling
    1. 19.1 En ”riktig” IDE
    2. 19.2 Virtuella värdar
  25. 20 Checklista för säkerhet och kodkvalitet
    1. 20.1 Preliminär kontroll
    2. 20.2 Kodkvalitet, egen kontroll
    3. 20.3 Automatisk kontroll
    4. 20.4 Extern kontroll
    5. 20.5 Kontroll av webbhotell
    6. 20.6 SSL
  26. 21 Appendix
    1. 21.1 Installation och konfiguration
    2. 21.2 Kör PHP-kod online
    3. 21.3 Xdebug
    4. 21.4 FirePHP
    5. 21.5 Git och Github
  27. Index

Publicerad: 2013-09-05 15:26
Uppdaterad: 2013-09-06 10:16


Permalink

Senaste bloggar

Köp min lärobok
2012-08-03 21:21

Vad är diskreta domskript?
2011-10-11 21:02

Framtidens programmeringsundervisning = patterns and paradigms first (del 3)
2011-05-22 07:00

Framtidens programmeringsundervisning = web first (del 2)
2011-05-08 14:35

Framtidens programmeringsundervisning = user first (del 1)
2011-04-19 13:38

Mina tankar och resurser om gy11 kurserna
2011-03-17 20:46

Alternativ utformning av arbetsplatsförlagt lärande
2010-11-07 07:16

Kort politiskt mellanspel
2010-09-05 18:34

Tyck till om mina kursplaner och köp min bok!
2010-05-31 16:00

Gy -11 webbkursernas inbördes relation
2010-02-26 09:13

Bloggar i samma ämne

Köp min lärobok
2012-08-03 21:21

Vad är diskreta domskript?
2011-10-11 21:02

Mina tankar och resurser om gy11 kurserna
2011-03-17 20:46

Tyck till om mina kursplaner och köp min bok!
2010-05-31 16:00

Gy -11 webbkursernas inbördes relation
2010-02-26 09:13

Hej då webbdesign!
2009-10-28 06:01

Högre kvalitet på webb-utbildningen på gymnasiet
2009-10-07 09:40

Framtidens gymnasiala webbutbildning - 1
2009-09-27 13:12

Experter finnes och jag är en av dem!
2009-09-17 17:17

Stort intresse för WaSP InterAct i Frankfurt
2009-04-07 17:14

Artiklar i samma ämne

Svårt att göra lätta siffror
2006-06-04 08:31
Församlingens hemsida
2005-09-27 05:01
Give me that homepage
2005-06-16 08:59
Olika slags (X)HTML
2005-05-11 05:38
God HTML
2005-05-10 17:33

Technorati


RSS-ikon
Uppdaterad: 2013-09-06 10:16    © Keryx