Equerm Skrevet 11. juni 2009 Del Skrevet 11. juni 2009 (endret) Jeg skrev denne guiden som en skoleoppgave for ca 3 år siden, så den er muligens litt utadatert. Den er ment for deg som har litt erfaring med HTML og vil teste ut litt serversidescripting og database. Merk: Jeg har ikke tatt hensyn til sikkerhet i denne guiden, den er ment å forklare hvordan man kan bruke PHP og MySQL. Kom gjerne med kommentarer, spørsmål og forslag til forbedringer Forord Dette er ein introduksjon til PHP. Den er meint for folk som allereie har litt kunnskapar innan. Eg vil ta for meg ein del eksempel på korleis du kan bruke PHP saman med MySQL. Når du har lest den vil du kanskje kunne klare å lage ei lita gjestebok, eller kanskje eit nyheitsystem med PHP og MySQL. Eg er ikkje ein profesjonell PHP programmerar men har det som ein hobby. Denne introduksjonen eir eit resultat av hovudoppgåva som eg har no mens eg går på IKT-driftsfag ved Ålesund VGS. Innføring i PHP PHP vart starta som eit einmannsprosjekt av Rasmus Lerdorf, hensikta var å gjere det enklare å implementere kompleks kode i HTML. Sidan då har PHP blitt eit masse kraftigare programmeringsspråk , i skrivande stund er den nyaste versjonen 5.1.2 For å programmere i PHP treng du: Webserver med PHP støtte (Apache / IIS) Teksteditor, ala notisblokk. Sjølv brukar eg Zend Studio (som kostar pengar) Grunnleggjande HTMLkunnskap PHP(Hypertext Preprocessor) er eit serverbasert scriptspråk. Dette vil sei at koden blir kjørt på ein server. PHP blir brukt saman med oppmarkeringsspråk på internettsider for å gi oss fleire funksjonar, for eksempel kan vi skrive ut ein bestemt tekst berre på bestemte tidspunkt, sjå bildet: Denne koden vil gi ut teksten ”Variabelen $i er mindre enn 5!”. Kor stor nytte denne koden har kan jo diskuterast men det er eit eksempel på kva vi kan gjere med PHP. Eksempel på større ting vi kan gjere med PHP er å lage eit webbasert forum eller kanskje ei gjestebok på ei internettside. Vi kan bruke det saman med for eksempel ein SQL database der MySQL er eit av dei mest brukte, visst webhosten din ikkje har støtte for database kan vi lagre det i flatfiler(tekstfiler). Merk: Alle webhostar har vanlegvis støtte for databasar, det er berre gratistenestar som ikkje brukar å ha støtte for dette. Dersom du ikkje har behov for ei eiga side kan du sette opp ein webserver på din egen PC. Last ned og installer programmet Apache2Triad for å få ein webserver med Apache, PHP, MySQL, Perl, PostgreSQL, Python, OpenSSL, XMAIL og SlimFTPD. Du får også phpMyAdmin med dette programmet. Når du programmerar PHP er formålet å få ut noko på ei side. Dette er vanlegvis HTML kodar. Derfor må ein som skal programmere med PHP ha grunnleggjande HTML kunnskap. Variablar Alle programmeringsspråk kan ha variablar, du kan legge inn kodar i variablar. Eit eksempel på ein variabel kan vere: Kodeeksempel PHP kode skal alltid skrivast innanfor PHP sin start tag ”<?php” og PHP sin slutt tag ”?>”. Slik som vist på bildet. Her har vi omtrent det same som vi hadde på kodeeksempelet som var på side 1. Forskjellen her er at vi har lagt til ein else kommando. Denne vil bli utført dersom if ikkje stemmer. If, else og elseif fungerer slik: Vi kan legge til så mange elseif vi har lyst til, men det kan berre vere 1 if og 1 else. Skrive ut tekst For å få fram tekst med PHP kan vi bruke echo eller print. Det finst også andre metodar å bruke men dei er meir avanserte og vi vil ikkje gå nærmare inn på dei enda. Vi gjer det slik: Vi kan bruke både doble og enkle siteringsmerker. Dersom vi brukar doble kan vi skrive ut variablar: Den første echo vil skrive ut ”Hallo verden” og den andre echo vil skrive ut ”Hallo $var”. Sende tekst For å sende teksten til ei anna side med PHP brukar vi HTML-forms. Her er eit eksempel på korleis det kan gjerast: Vi må lage 2 filer. Ei HTML fil og ei PHP fil, HTML fila skal innehalde ein form der du kan skrive inn namn og alder, HTML fila skal så sende deg vidare til eit PHP script som hentar ut namnet og alderen du skreiv i HTML fila først. Vi lager HTML fila sende_tekst.html og legg inn følgjande kode: I ein nettlesar vil dette sjå slik ut: Når du har skreve inn namnet og alderen din kan du trykke på ”Send Inn”. Du skal da bli vidaresendt til fila vis_sendt_tekst.php. Den ser slik ut: Her brukar vi den ferdigdefinerte variabelen $_POST. Den hentar informasjon frå ein form som har method=”POST”. Det finst 8 slike ferdigdefinerte variablar med forskjellige funksjonar, vi kallar dei for ”superglobale variablar”. $_SERVER, $_POST, $_GET, $_SESSION, $_FILE, $_COOKIE, $_REQUEST og $_ENV. Eg har ikkje tenkt å gå nærare inn på dei i denne guiden. Nettlesaren vil da gi ut denne sida når du kjem til vis_sendt_tekst.php: Dette vil vi da bruke til å lage meir avanserte script som i for eksempel eit nyheitsscript der vi vil legge nyhetene inn i ein database. MySQL MySQL er eit SQL basert databasesystem som ofte blir brukt saman med PHP, MySQL er basert på tabellar slik som alle andre SQL-baserte databasesystem. Visst du for eksempel skal lage eit publiseringssystem med PHP så kan det vere veldig tungvindt å redigere flatfiler heile tida. Derfor brukar vi heller eit databasesystem som for eksempel MySQL. Det finst mange andre databasesystem enn MySQL, nokon av dei er: PostgreSQL, MS-SQL, Oracle, Informix og SQLite. Opprette tabellen Før vi kan legge inn informasjon inn i databasen må vi opprette tabellen som vi skal legge den inn i. For dette kan du enten skrive SQL kode for å opprette den. Visst du skal lage ein større tabell så kan dette bli litt avansert. For å forenkle dette kan vi bruke eit program som lagar alt for oss. Eit eksempel på eit slikt program er MySQL-Front. Vi kan også bruke eit webbasert system som gjer dette for oss, det som blir brukt og som alle gode webhostar har installert er phpMyAdmin. Koden vi brukar for å lage tabellen eg brukar i eksempelet er: Dette vil opprette ein tabell med felta, id, tittel, ingress, artikkel, oppretta, og kategori. Feltet id er av datatypen INT og kan innehalde 5 teikn, AUTO_INCREMENT gjer at for kvar gang noko blir lagt til i tabellen så vil feltet id få eit tal, dette talet startar på 1 og kan i vårt tilfelle fortsette til 99999. Feltet tittel brukar datatypen TINYTEXT, denne datatypen kan innehalde opp til 255 teikn. Feltet ingress som brukar datatypen MEDIUMTEXT kan innehalde opp til 16 777 215 teikn. Feltet artikkel som brukar datatypen LONGTEXT kan innehalde opp til 4 294 967 295 teikn. Feltet oppretta er av typen VARCHAR som betyr variable character(variabelt teikn), det vil seie at den kan innehalde alle typar teikn, dette feltet har vi spesifisert slik at det kan innehalde maksimum 32 teikn. Det same gjeld for feltet kategori. Alle felta har NOT NULL aktivert, det gjer slik at du må legge inn noko i dei. Vi bruker feltet id som PRIMARY KEY, det gjer slik at visst vi skal søke opp noko så skal vi nytte feltet id for å få søket til å gå kjappare, dersom vi ikkje hadde oppgitt ein PRIMARY KEY ville søket tatt lengre tid. Kor relevant dette eigentleg er på mindre tabellar kan diskuterast men eg velgjer å ha der med for ordensskyld. Tabelltypen vi bruker er MyISAM. Dette er ein standartype og du bør eigentleg ikkje bekymre deg noko serlig om dette, det finst også andre tabelltypar men MyISAM er den som er vanleg å bruke. Dei andre tabelltypane er: HEAP, MEMORY, MERGE og MRG_MYISAM. Dette er eigentleg ein litt avansert tabell visst du aldri har prøvd dette før men sidan vi har hatt om SQL så reknar eg med at ein del kan litt om dette. PHP og MySQL tilkopling For å kople til ein MySQL database med PHP gjer vi slik: Linje 2 velgjer serveradressa, brukarnamnet og passordet. Serveradressa er i dei aller fleste tilfella localhost, så lenge du ikkje brukar same servermaskina til MySQL som til webserveren. Linje 4 velgjer databasen. Alle alternativa må du velje ut når du opprettar databasen. Legge til data i tabellen For å legge til data i databasen må vi bruke SQL kodar, desse er relativt enkle og består eigentleg berre av engelske ord. Kommandoane vi brukar er INSERT og INTO. Eit eksempel på ein slik kode kan vere: INSERT INTO nyhende(tittel,ingress,artikkel,oppretta,kategori) VALUES ('Testpost,'Ingressen her’,'Sjølve artikkelen her','10.03.2006','Skulearbeid') Legge til data i tabellen med PHP For å legge til data i tabellen med PHP treng vi berre nokre få PHP funksjonar, mysql_query() denne funksjonen brukar vi for å kjøre SQL kommandoar i ei PHP fil. Vi må også logge oss på databasen slik som vist tidlegare. For kvar gang denne flia blir kjørt (opna i nettlesaren) vil verdiane bli lagt til i tabellen. Hente ut data frå tabellen For å hente ut data frå databasen brukar vi SQL kommandoen SELECT. Når vi skal hente ut all data som ligg i databasen brukar vi kommandoen ”SELECT * FROM tabellnamn”. Da vil vi få fram alt som ligg i tabellen. Hente ut data frå tabellen med PHP Å hente ut data frå tabellen med PHP kan gjerast på denne måten: Som vanleg må vi først kople oss til databasa og velje databasen. Vi har mysql_query() funksjonen med innhaldet ”SELECT * FROM nyhende” som vi legg i variabelen $query. Deretter kjører vi ei while løkke og angir $row til å innehalde mysql_fetch_row($query). While løkka seier eigentleg at so lenge der er nye rader med informasjon som kan bli henta så skal dei bli henta med mysql_fetch_row() funksjonen. Informasjonen skal bli lagt i variabelen $row. Du ser også at vi skriv $row[0], $row[1] osv. $row[0] vil hente ut informasjonen som ligg i det første feltet(id), $row[1] vil hente ut informasjonen som ligg i det andre feltet(tittel) osv. Slette data i ein tabell For å slette data i ein tabell har vi logisk nok ein SQL-kommando som heiter DELETE. Vi bruker denne kommandoen slik: ”DELETE FROM nyhende WHERE tittel = 'Testpost'”. No vil rada der feltet tittel inneheld ”Testpost” bli sletta. Slette data i ein tabell med PHP For å slette data i ein tabell med PHP brukar vi berre SQL-koden som vist over saman med PHP funksjonen mysql_query() i et script, i scriptet må det også vere tilkoplingsinformasjon til databasen. Nyttige funksjonar i PHP No vil eg presentere nokre PHP funksjonar som kan vere nyttige å kunne. Desse kan spare deg for mykje arbeid. Include() og require() Funksjonane include() og require() blir brukt til å hente opp filer. Visst du vil ha for eksempel 5 html filer i saman i 1 fil. Det fungerar relativt enkelt: Funksjonane har same effekt. Det einaste du treng å passe på når du brukar ein av desse funksjonane er at fila du ska hente opp ligg same mappa som fila du lagar. Visst den ikkje ligg i den same mappa må du angi adressa til fila. Funksjonane er også nyttige visst du vil hente ut 2 filer frå forskjellige webserverar. $_SERVER[’HTTP_USER_AGENT’]; Denne funksjonen finn ut kva nettlesar den som ser sida brukar og kva operativsystem som personen brukar. NB: For at du faktisk skal få informasjonen skrevet ut i nettlesaren må du ha med echo før du skriv funksjonen. NT’]; Denne funksjonen finn ut kva nettlesar den som ser sida brukar og kva operativsystem som personen brukar. $_SERVER[’REMOTE_ADDR’]; Denne funksjonen vil finne ut kva IP-adressa til den besøkande er. Den blir ofte brukt for å anten sperre ute brukarar frå nettsider men er også nyttig å bruke visst du skal lage ein telja til nettsida di som tel kor mange besøkande du har hatt. Skal du lage ein teljar kan du berre legge IP-adressene til besøkande inn i ei database. Så kan du bruke mysql_num_rows() for å telje kor mange IP-adresser som ligg i databasen. str_replace() Funksjonen str_replace() kan vi bruke til å bytte ut eit bestemt ord med eit anna ord i ein tekst. Vi kan bruke dette visst vi for eksempel vil bytte ut alle æ ø og å med HTML-entitetar. (Ein HTML-entitet er ein kode som vi kan skrive inn for å få opp eit teikn). Vi brukar desse fordi utanlandske folk brukar ikkje same teiknsett som vi gjer. Derfor vil dei ikkje få opp norske teikn. Oppsummering: No har du forhåpentlegvis fått eit innblikk i korleis PHP fungerar og kva det blir brukt til. Visst du vil lære meir om PHP, finst det mange andre guidar på internett, og mange bra bøker om dette. Dokumentasjonen til PHP finn du på www.php.net/manual http://gigzor.com/gammalt/hovedoppgave/"" target="_blank" rel="nofollow">Guiden ligg også ute på nettsida mi</a> Endret 11. juni 2009 av Equerm Lenke til kommentar
superkaisa Skrevet 11. juni 2009 Del Skrevet 11. juni 2009 sjapt spørsmål: er det din nettside? Lenke til kommentar
Equerm Skrevet 11. juni 2009 Forfatter Del Skrevet 11. juni 2009 Ja det er min nettside, men nå la jeg til alt sammen i posten Lenke til kommentar
Mooberry Skrevet 30. juli 2009 Del Skrevet 30. juli 2009 Takk for denne! Jeg leste akkurat den serien som ble publisert av hw.no, men den slutter?? før de kommer til koblingen mellom php og databasen.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå