Göm menyn

TDDD52 Webbprogrammering - grundkurs

2014

Laboration 4 - MySQL

1. Syfte

  • Att förstå hur man kan spara information in en databas.
  • Att förstå hur man kan hämta information i en databas.
  • Att förstå hur man kan kommunicera mellan en webbplats och en databas med hjälp av PHP.

2. Genomförande

I föregående laborationer har ni skapat en webbplats med HTML, CSS, JavaScript och PHP. Ni har kommit en bra bit på vägen att få en dynamisk webbplats, men textinformationen och länkar till bilder är fortfarande statisk (ni har skrivit in de i era HTML och PHP sidor). Nu vill vi göra webbplatsen mer dynamisk, genom att spara text i en databas och hämta den därifrån. Vi vill också kunna spara de meddelanden som skickats via formuläret på kontaktsidan.

2.1 Filer

Det finns en ny data.php som skall implementeras istället för den gamla i "lab3". Kopiera därför alla filer från "lab3" till "lab4", undantaget filen data.php.

  • När ni har kopierat alla filer så öppnar ni en terminal och exekverar: cd ~/www-pub/TDDD52/lab4
  • I samma terminalfönster exekverar ni bash -c 'for i in ./*.php; do ln -s "$i" "${i}s"; done;'
  • Titta i den nya data.php i "lab4" för instruktioner om de olika funktionerna som skall implementeras.
  • Tänk på att alla SQL förfrågningar skall göras i data.php, det skall alltså inte finnas några SQL förfrågningar i några andra filer.
  • Ert ER-diagram skall sparas i denna mapp som en pdf fil med namnet erd.pdf.
  • Endast givna filer skall användas och inga filnamn får ändras. Inga andra filer får heller skapas. Det enda undantaget är att bilder får läggas till i denna mapp.

3. Databasdriven Webbplats

3.1 ER-Diagram

Skapa ett ERD för den databas ni kommer att behöva bygga upp. Att läsa kraven nedan kanske underlättar för er. Det skall finnas minst ett samband mellan tabellerna som måste ingå i ert ERD. ERD görs med fördel med papper och penna, spendera inte lång tid på att lära er någon mjukvara för detta.

3.2 phpMyAdmin

När ert ERD är klart kan ni använda phpMyAdmin för att förverkliga strukturen, och för att föra in data i er databas.

3.3 Produktsidorna

Istället för att den information som skall visas för varje produkt skall skrivas in statiskt i era PHP sidor så ska ni hämta informationen från en databas.

  • Om man går till t ex product.php?id=1 så skall ni hämta information om produkt nummer ett (1) och visa till användaren.
  • Information om varje produkt är: namn, kort beskrivning, lång förklaring, pris och minst två bilder (som skall visas i bildspelet).
  • Precis som i laboration 3 skall ni alltså anropa rätt funktion i data.php från product.php och presentera den data som returneras.
  • Lite beroende på hur man skapar sin databas och fyller i data så kanske man inte längre kan använda id nummer 1,2 och 3. Ni får justera detta om det behövs.
  • Tänk på att den HTML kod som genereras av PHP koden skall valideras som HTML5 som i laboration 1.
  • Tänk på att motverka SQL injections.

3.4 Kontaktformulär

Alla meddelanden som korrekt valideras och skickas till er PHP sida skall skrivas till databasen. Listan på produkter som man kan välja mellan skall hämtas från databasen.

  • För varje meddelande som valideras korrekt skall ni skriva till databasen: datum, namn, epost, telefonnummer, meddelandet, vilken produkt som meddelandet angår samt om avsändaren valt att få uppdateringar.
  • Implementera och anropa funktioner i data.php från form.php för att lyckas med detta.
  • Kom ihåg att inkludera data.php från form.php.
  • Precis som i laboration 3 skall listan av produkter i formuläret fyllas på från ett funktionsanrop till data.php.
  • Tänk på att den HTML kod som genereras av PHP koden skall valideras som HTML5 som i laboration 1.
  • Tänk på att motverka SQL injections.

4. Redovisning

Inlämning: Mejla till er laborationsassistent när webbplatsen har blivit publicerad till www-pub, den skall finnas tillgänglig på båda studenters konto. Spara även upp ert ER-diagram i pdf format till samma mapp med namnet erd.pdf. I ämnesraden skriver ni "TDDD52 - Laboration 4 - Redovisning". I mejlet skriver ni länken till er publicerade webbplats, era namn, liu-id och epost-adresser.

Muntlig: Boka en tid med er laborationsassistent (skall vara under ett labbpass) för muntlig redovisning av det färdiga systemet. Ta med LiU-ID på detta tillfälle.

4.1 Deadline

Soft: 2013/02/22

Hard: 2013/03/01

5. Verktyg

För att genomföra laborationen krävs samma verktyg som föregående laborationer.

För att administrera databasen kan ni använda phpMyAdmin.

6. Litteratur

6.1 Böcker

  • Robert Sebesta - Programming the World Wide Web - Chapter 13
  • Gilmore, W. J. (2008). Beginning PHP and MySQL - From Novice to Professional. Apress.
  • Yank, K. (2009). Build Your Own Database Driven Website Using PHP & MySQL. Sitepoint.

6.2 Länkar


Sidansvarig: Jakob Bandelin
Senast uppdaterad: 2013-01-11