Kmom03: Dynamisk webbplats med PHP

Konto-informationen som behövs för att logga in på min sida:

Användarnamn: nicolas

Lösenord: password

* Reflektera över svårigheter/problem/lösningar/resultatet, etc.

De största utmaningarna i kursmomentet var att koda test.php och login.php, med tillhörande sidor;

test.php var inte svår för mig då dess logik gick att implementera liksom motsvarande logik i C++ och andra språk jag har god erfarenhet inom.

De enda egentliga problem jag stötte på under utvecklingen av test.php:

1) I första versionen av mina form-testsidor blev så att deras forms försvann då de brukats för att submitta eller getta. Det var förstå då jag förstod att jag nog behövde göra det som det nämndes att man borde göra i Tips-rutan för uppgiften, vars tips jag tidigare bara snabbt ögnat igenom utan att begripa poängen med. Det stod i rutan att man behöva specifiera action-attributet, som jag i första versionen lät ha värdet "?" för alla forms. Jag gjorde de föreslagna ändringarna och noterade att forms då inte försvann efter bruk, men jag började undra varför avsaknaden av ett värde på action-attributet kan orsaka att forms försvinner från en multi-sida, så jag kollade upp action-attributet i HTML-manualen. Istället för att där läsa om varför så kunde vara fallet så läste jag att action-attributet inte längre används i HTML5, varpå jag tog bort attributet helt från mina forms och noterade att jag då verkar få samma resultat som när jag följde instruktionerna i förutnämnda Tips-ruta. Eftersom jag känner för att följa HTML5 så lät jag action-attributet vara borttaget från alla forms.

2) Jag fick av Unicorn-validatorn reda på att sidan som skriver ut innehållet i $_SERVER hade ett fel i sig som var att pre-taggen, som jag hade satte runt utskriften av $_SERVER, för att ange att innehållet i denna variabel kommer men formattering som skall behållas, inte tillåter child-element av sorten adress, varav det tydligen förekom på raden för SERVER_SIGNATURE i $_SERVER. Först tänkte jag att man nog kunde strippa bort dessa tags, men jag märkte att på MOS sida, som validerades korrekt i Unicorn-validatorn, så var värdet för den raden borttaget på nåt vis, varpå jag valde att sätta SERVER_SIGNATURE till "". Med den ändringen valideras sidan korrekt och gav samma utskrift som MOS sida. Jag noterade dock sen att i MOS kod tas inte värdet bort lokalt liksom i min kod. Jag antog då att dess värde töms genom någon server-inställning vilket fick mig att läsa lite om värdet online tills jag fick uppfattningen att det anses utgöra en säkerhetsrisk att ge ut en servers signatur, eftersom potentiella hackers då får en del information om servern och då kan se om den burkar mjukvara vars ev. säkerhetspoblem de känner till.

login.php, däremot, hade lite klurigare problematik för mig:

1) Det tog ett tag för mig att vara med på tanken att funktioner i login/src.php skulle brukas för att generera lite content som man för den tidigare multi-sidan (test.php), och generellt, hade ordnat skrivit på plats på vanligt vis. Just funktionen userLogin tog det några minuter att begripa, mest pga att dess och dess sätt att relatera till userLoginForm-funktionen var oklart för mig tills jag förstod att userLogin först kollar om userLoginForm redan har submittat en post för att logga in. När jag väl kommit in i det tänket så var det inga nämnvärda tankeproblem med att fixa till det som behövdes för logiken för login/logout, särskilt inte eftersom jag tidigare i utförandet av kursmomenten fått koll på hur grunderna för hur man hanterar multi-sidor och forms.

Mindre problem/buggar på sajten som helhet:

1) Link-validatorn påpekade att en länk varit bruten (sedan Kmom02), vilket jag såg var p.g.a. ett nu korrigerat stavfel.

2) Link-validatorn påpekade att länken till den s.k. CSS3-manualen, i footern (såsom den angivits i Kmom02), innehöll ett nu borttaget "brutet fragment" (#CSS3).

Besvär/osmidigheter i utvecklingprocessen under kursmomentet:

Under detta kursmoment började jag verkligen känna av att mängden filer och mängden filtyper de är av, kombinerad med mängden kollar som bör göras för de olika filtyperna, sinkar ner arbetsprocessen ganska mycket, vilket fick mig att önska att jag hade haft ett IDE för HTML, PHP, och CSS som

1) tydliggör och kontrollerar mina kopplingar mellan HTML/PHP-filer och CSS-filer, samt har någon motsvarighet till Visual Studios "Intellisense", vilket ju är bra för att ha för att påminna en om eller snabba på införandet av kod som är applicerbar för vilken tag, etc. det nu är som man skriver i.

2) genom ett knapptryck ladda upp just de filer jag ändrat i och därefter automatiskt köra alla valideringstesterna på de ändrade sidorna, varpå ev. fel/varningar lagras i en log som har funktionalitet för att öppna filen för felet/varning som man klickar på i loggen och då även visa raden för det.

När jag uttryckte dessa önskningar för en webb-kunnig bekant rekommendarade denne programmet PhpStorm till mig, så jag tror jag kommer testa att utföra Kmom04 med detta IDE.

Resultatet:

Resultatet är nu att jag på min sajt har lagt, bland andra tillägg, ett par sidor som är liksom flera sidor "på en gång" (multi-sidorna test.php och login.php) och vars så innehavda sidor demonstrerar en del dynamik framtagen genom PHP-kod, däribland förmågan för en besökare på sidan att logga in på sajten.

I skrivande stund har jag inte lagt någon möda på att ordna en layout för tilläggen som är konsekvent med resten av sajten eller möda på att styla den nya mark-up-koden. Jag sköt på detta för att jag först bara ville fokusera på att få min nya mark-up (ex. aside-menyn) och den nya PHP-koden att fungera korrekt.

Allmänt om kursmomentet:

Jag gillade nämnandet av säkerhetsrisker och att länkadet till forumet på Flashback där man kunde läsa folk tala om brister de funnit på sajter efterom jag tycker det tillför en del att få sådana tänkvärda exempel på "kulturen" kring webbutveckling.

* Beskriv hur väl du kan PHP (nybörjare, erfaren).

Jag är nybörjare inom PHP.

* Har du programmerat tidigare, i vilka språk?

Jag har programmerat mycket i C++, lite i Assembler, Java och C#, och pyttelite i C.

* Känner du igen dig i PHP-koden?

Exekveringsflödet, med includes, if-satser, osv., känner jag mig hemma i, men bruket av variabler och syntaxen för parameter-hanteringen känns lite ovant än. Mer ovant är hur man kan blanda PHP-kod med HTML-markup, inte bara genom att sätta in PHP-taggade stycken mellan HTML-taggar utan också genom bruk av PHP:s echo-utskrift för att sätta in HTML-taggar inuti PHP-taggar. Sällan har jag tagit eller fått tillfälle att göra liknande med andra språk, så tidigare vana att snabbt begripa hur olika språk, som kanske även har olika ändamål, går samman finns inte för att göra så att fallen då PHP, HTML, och kanske även CSS, blandas i samma kodstycke blir snabbt begripliga för mig.

Det känns just nu som om jag har ganska god koll på grunderna för HTML och CSS, men vad det gäller PHP så kommer jag säkerligen behöva kolla tillbaka på saker som jag sysslat med i och med detta kursmoment när väl jag behöver bruka PHP i genomförandet av de senare kursmomenten.

* Vad tycker du om PHP så här långt in i kursen?

PHP påminner om programmeringsspråk jag behärskar sedan tidigare. Det är inte svårt, än så länge, men det är ovant eftersom det är nytt språk för mig. Jag kan för lite om PHP och har tänkt för lite på det för att vid detta lag ha nån nämnvärd åsikt om hur jag gillar dess syntax, osv.

* Fick du hjälp av guiden php20?

Ja, den var till nytta för mig och jag har inga klagomål på den, då jag tycker den är ett bra kortfattat och övergripande komplement till den PHP-relaterade kursliteraturen och lättbegripligt gick över så gott som all ny kunskap som behövdes för att kunna klara av uppgifterna i kursmoment, och lite till.