Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se Webmaster DAG 11 VT09 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se
Agenda 9.00 – 10.15 Webbserver Webserverprogrampaket Lite om XAMPP Introduktion till PHP 10.15 – 10.30 Paus 10.30–12.00 PHP-Formulär 12.00 – 13.00 Lunch 13.00 – 14.15 Introduktion till Databaser MySQL databasar phpMyAdmin Applikationsutveckling med MySQL och PHP 14.15 – 14.30 14.30 – 16.00 Vidareutveckling av projektarbete Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Webbserver En webbserver har som uppgift att tillhandahålla webbsidor eller andra filer som distribueras vanligtvis via Internet Kommunikationen sker med hjälp av en webbläsare (klient). Användaren väljer webbsidor och webbläsaren beställer webbsidorna från webbservern och visar dem på användarens datorskärm. De vanligaste webbserverprogrammen är: Apache HTTP Server. Microsoft Internet Information Server Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Webbserverprogrampaket Webbserverprogrampaket är ett paket av program som inkluderar de mest vanligaste programvara som krävs för att köra databas- och serverbaserade webbsidor. T.ex. Apache, MySQL, PHP och phpMyAdmin. Exempel på webbserverprogrampaket är: AppServ (www.appservnetwork.com/) XAMPP (www.apachefriends.org/) WAMP (www.wampserver.com/en) MAMP (www.mamp.info) Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Ladda ner och installera XAMPP Gå till http://www.apachefriends.org/ Klicka på XAMPP XAMPP finns för många olika operativsystem. Välj ”XAMPP for Windows” Ladda ner XAMPP Installera! Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
XAMPP Kontrollpanel Starta Apache Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Testköra genom att surfa till http://localhost/ Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Introduktion till PHP PHP är ett programmeringsspråk. PHP är ett skriptspråk för webbservrar. PHP-dokument bearbetas av en webbserver. PHP-Kod interpreterad till HTML av webbservern och skickas vidare till webbläsaren. För att kunna öppna PHP-dokument behöver du publicera dessa till en webbserver med PHP-stöd. PHP-dokument har filändelsen .php Läs mer på http://www.php.net/ http://www.w3schools.com/php/ Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008 8
Skapa en plats och sätt upp en lokal Testserver Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Min första PHP sida Spara som hej_ditt_namn.php echo "Hej Mahmud! "; ?> Förhandsgranska i webbläsaren och visa källkoden! Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
PHP Variabler <?php $namn = "Mahmud Al Hakim"; echo $namn; ?> En variabel är en platshållare för ett värde som kan ändras under programmets gång. <?php $namn = "Mahmud Al Hakim"; echo $namn; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
PHP Strängar <?php $namn = "Mahmud Al Hakim"; echo "Hej ".$namn; En sträng är en grupp av tecken. I PHP markeras en sträng av att den innesluts av enkla eller dubbla citationstecken. Man lägger ihop strängar med hjälp av concatenationsoperatorn som representeras av tecknet "." (punkt). <?php $namn = "Mahmud Al Hakim"; echo "Hej ".$namn; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Hämta data via $_REQUEST <?php $namn = $_REQUEST['namn']; echo "Hej ". $namn; ?> Variabelnamn och data kan skrivas direkt i URLen ex. hej.php?namn=Mahmud Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Skicka variabler via ett formulär <body> <form id="myform" name="myform" method="post" action="hej.php"> Vad heter du <input id="namn" name="namn" type="text" /> <input type="submit" name="Submit" value="Skicka" /> </form> </body> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
PHP Funktioner En funktion är ett antal instruktioner som utför en sak t.ex. skriva ut dagens datum eller skicka e-post. Exempel: Funktionen date() <?php // Skriv ut dagen datum echo date('Y-m-d'); ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Funktionen mail() Funktionen mail() skickar ett e-post Funktionen behöver ett antal s.k. parametrar: Mottagarens e-postadress Ämnesrubrik Meddelandetext Headers t.ex. From <?php mail("mahmud@hakimdata.se","Hej", "Ett meddelande","From: info@hakimdata.se"); echo "Meddelandet har skickats"; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Skicka ett e-postformulär via PHP filen form.php <body> <form id="myform" name="myform" method="post" action="mail.php"> <p>Namn<br /> <input name="namn" type="text" id="namn" size="50" maxlength="50" /> </p> <p>E-post<br /> <input name="epost" type="text" id="epost" size="50" maxlength="50" /> </p> <p>Meddelande<br /> <textarea name="meddelande" cols="50" rows="5" id="meddelande"></textarea> </p> <p><input type="submit" name="Submit" value="Skicka" /> </p> </form> </body> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
OBS! Funktionsmakro En annan PHP-fil som kommer att ta emot data och skicka vidare som e-post! Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Skicka ett e-postformulär via PHP filen mail.php // Hämta data från formuläret och spara i olika variabler $namn = $_REQUEST['namn']; $epost = $_REQUEST['epost']; $meddelande = $_REQUEST['meddelande']; // Några parametrar $till = "mahmud@hakimdata.se"; $rubrik = "Förfrågan från $namn"; $headers = "From: $epost"; mail($till, $rubrik, $meddelande, $headers); echo "Meddelandet har skickats"; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Databaser En databas är en samling information som organiserats så att ett dataprogram snabbt kan hitta önskade data. En databas är ett elektroniskt kortregister. Traditionella databaser organiseras i fält, poster och filer. Ett fält är en enskild datamängd, en post är en uppsättning sammanhörande fält och en fil är en samling poster. En enkel telefonkatalog kan jämföras med en fil. Den innehåller en lista med poster som var och en innehåller tre fält: namn, adress och telefonnummer. För att hantera informationen i en databas används ett databashanteringssystem (Database Management System, DBMS). Detta är en samling program för att lägga in, organisera och hämta ut data i en databas. Uttrycket databas används numera oftast för att beteckna ett helt databashanteringssystem. Källa: Paginas IT-ordbok Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Exempel på databashanteringssystem Oracle www.oracle.com MS SQL Server www.microsoft.com/sql IBM DB2 www.ibm.com/db2 MySQL www.mysql.com Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Varför MySQL? Prestanda: MySQL är snabb Pris: Fritt att använda till många ändamål Stabilitet: Alla versioner måste klara ”MySQL test suite”! Lätt att använda Läs mer: MySQL Handboken ISBN: 91-636-0830-8 Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Tips: Arbeta med MySQL lokalt Starta MySQL Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Ett praktiskt exempel Skapa en databasbaserad telefonkatalog genom att använda HTML, PHP och MySQL. Steg 1: Skapa en MySQL databas. Lokalt via phpMyAdmin eller på webbservern med hjälp av cPanel Steg 2: Skapa en tabell i denna databas. Enklast genom att använda phpMyAdmin. Steg 3: Skapa ett användargränssnitt (GUI). Enklast med några enkla HTML-formulär. Steg 4: Kommunicera med databasen via PHP Tips: Här finns ett lösningsförslag http://www.hakimdata.se/telefon/ Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Steg 1 Skapa en MySQL Databas lokalt Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Steg 1: Skapa en MySQL Databas på webbservern Logga in på din cPanel Välj ” MySQL Databas guide” Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Steg 2: Skapa en tabell Starta phpMyAdmin Välj databasen ”telefonkatalog” Skapa en tabell genom att ange tabellens namn och antal fält. Klicka på Kör. Ange titel för de olika fälten samt längd (antal tecken). Klicka på Spara. Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Steg 3: Skapa ett användargränssnitt (GUI). Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
SQL SQL står för ”Structured Query Language” SQL är ett standardiserat språk för att hämta och modifiera data i en databas. Exempel 1: Följande SQL-sats hämtar all data från tabellen ”telefonbok”. SELECT * FROM telefonbok Exempel 2: Följande SQL-sats infogar en post i tabellen ”telefonbok”. INSERT INTO telefonbok VALUES ('Mahmud', '0707556405') Tips: Läs mer här http://www.w3schools.com/sql/ http://www.databasteknik.se/webbkursen/sql/index.html Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Steg 4: Kommunicera med databasen select.php Läs från databasen MySQL Telefonkatalog Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008 action="select.php" Connect.php action="insert.php" insert.php Skriv till databasen
connect.php <?php $dbHost = "localhost" ; $dbUser = "hakimdat_telefon" ; $dbPwd = ”XXXXXXX" ; $dbName = "hakimdat_telefonkatalog" ; $dbconn = mysql_connect($dbHost, $dbUser, $dbPwd) ; mysql_select_db($dbName) or die(mysql_error()) ; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
insert.php <?php require ("connect.php"); $namn = $_REQUEST['namn']; $telefon = $_REQUEST['telefon']; $sql="INSERT INTO telefonbok VALUES ('$namn', '$telefon')"; $commit=mysql_query($sql) or die(mysql_error()); echo "$namn har nu lagts till telefonkalalogen!"; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Select.php <?php require ("connect.php"); $query = "SELECT * FROM telefonbok "; $result = mysql_query($query) or die(mysql_error()); echo "<h2>Min telefonkatalog</h2>"; echo "<table>"; echo "<th>Namn</td>"; echo "<th>Telefon</td>"; echo "</tr>"; while($row = mysql_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['namn'] . "</td>"; echo "<td>" . $row['telefon'] . "</td>"; } echo "</table>"; ?> Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Mer om phpMyAdmin och SQL Starta phpMyAdmin och välj databasen telefonkatalog. Klicka därefter på ”Visa” Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
phpMyAdmin visar SQL-fråga och kan Skapa PHP-kod! Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Med hjälp av phpMyAdmin kan du Visa, ändra, radera, skriva ut och exportera data. Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008
Du kan skriva och testa dina SQL-satser direkt från phpMyAdmin Copyright, www.hakimdata.se, Mahmud Al Hakim, mahmud@hakimdata.se, 2008