PHP

Post on 19-Jan-2015

3.029 views 3 download

description

 

Transcript of PHP

Webtoegang tot

gegevensbanken

Katrien Verbert

katrien.verbert@cs.kuleuven.be

Hypertext Markup Language (HTML)

• gebruikt voor webpagina‟s

• statische pagina‟s

• tekst met tags tussen scherpe haakjes die het formaat

specificeren om de tekst te tonen in bepaalde vorm

<html>

<head>

<title>Welkom</title>

</head>

<body>

<h1>Ga zitten</h1>

<p>Hartelijk <b>welkom</b> in de cursus.</p>

</body>

</html>

dynamische pagina‟s

• gegevens kunnen verschillen telkens de pagina getoond wordt

• verscheidene technieken om dynamische HTML pagina‟s te definiëren

– Een daarvan: PHP script taal

• gebruik: – in een HTML document wordt een of meerdere plaatsen een stukje php

code geplaatst.

– wanneer de pagina wordt opgevraagd, wordt op de server de php code uitgevoerd; het resultaat wordt doorgestuurd naar de client

<html>

<body>

<?php

echo "Welkom!”;

?>

</body>

</html>

PHP: een inleiding

• script-taal

– een programmeertaal geschikt voor het schrijven van kleine

programma‟s (=scritps)

– om veel voorkomende taken te automatiseren.

• ontworpen in 1994 door Rasmus Lerdorf

• naam:

– Oorspronkelijk: PHP = Personal Home Page

– Nu: PHP = PHP: Hypertext Preprocessor

• PHP processor is geschreven in C, dus erg draagbaar

• erg geschikt voor het manipuleren van dynamische

web-pagina‟s op een Web server

• heeft verscheidene functiebibliotheken voor toegang tot

verschillende types van relationele gegevensbanken

variabelen

• namen – beginnen met $

– mogen verder letters, cijfers en het onderstrepingsteken

bevatten (maar geen cijfers onmiddellijk na $-teken)

• type: variant – kan wijzigen in functie van de

uitgevoerde bewerking – moet dus niet vooraf gedeclareerd worden

– een variable krijgt haar type bij de eerste toekenning (maar dat

type kan later nog wijizgen!)

• soorten: – Getallen – Strings (tussen „ „ of “ “) – Boolese waarden

PHP

• Begin- en eindtag:

– <?php ?>

– <? ?>

• Commentaar:

– // tot einde regel

– # tot einde regel

– /* over verscheidene regels */

tabellen (arrays)

• zijn dynamisch: geen vast aantal elementen

• posities kunnen genummerd zijn (beginnend bij 0)

• posities kunnen ook door een string aangegeven

worden; dan spreekt men van associatieve tabellen.

voorbeelden

• $Fruitlijst = array (`appel`, `banaan`, `sinaasappel`);

– bevat 3 elementen, index begint bij 0

• $Fruitlijst = array (1=>`appel`, 2=> `banaan`,

3=>`sinaasappel`);

– bevat 3 elementen, index begint bij 1

• $db = array (`host` => `localhost`,

`user` => `root`,

`password` => `geheim`,

`port` => `3306`,

`db_name` => `php_app`) ;

tabellen (arrays)

• Sequentieel doorlopen van tabellen kan met foreach

• Foreach ($Fruitlijst as $fruit)

print (“$fruit <br />”);

PHP

• rekenkundige operatoren:

– * / % + - ++ --

• vergelijkingsoperatoren:

– == === < > <= >= != <> !==

• echo() en print()

– weergeven van strings binnen PHP

– met echo() kan de tekst meerdere regels omvatten, met

print() niet

– Voorbeelden

echo `dit is tekst`;

echo (`dit is tekst`);

PHP

• Logische operatoren

– ! and && or ||

• String operatoren

– . .=

• Controlestructuren

– if – else

– verkorte if-else

– switch

– for

– while

– do – while

– foreach

superglobal variabelen

• variabelen die automatisch door PHP aangemaakt worden

en altijd globaal zijn

• een aantal arrays van superglobals zijn beschikbaar, o.a.:

– $GLOBALS:

• array van alle variabelen die je zelf als global definieert

– $_GET en $_POST:

• array van alle formuliervelden die via GET of POST verzonden worden

– $_SESSION:

• array met sessievariabelen

– $_SERVER:

• array met servergegevens (servernaam, protocol,…)

– $_ENV:

• array met omgevingsvariabelen (OS, computernaam,…)

– …

formulieren

• geschikt voor communicatie met een gebruiker

• gepreciseerd tussen tags <form> en </form>

• belangrijke attributen van <form> tag:

– action: verwijzing naar de pagina die de verwerking van het

formulier doet

– method: manier waarop de gegevens verstuurd worden (keuze

tussen GET en POST)

• GET: plakt alle gegevens achter de URL

• POST de verzonden gegevens zijn niet zichtbaar in de URL, maar komen

in de HTTP-headers

• de velden van het formulier zijn beschikbaar in php-

script d.m.v. de $_POST superglobal variabele

formulieren

• bij versturen van dit formulier gaan de gegevens naar het

formHandler.php script, dat er b.v. als volgt kan uitzien:

<html>

<body>

<form action="formHandler.php" method="post">

Voornaam: <input type="text" name="voornaam" />

Familienaam: <input type="text" name="naam" />

<input type="submit" />

</form>

</body>

</html>

<html>

<body>

Hallo <?php echo $_POST["voornaam"]." ".

$_POST["naam"]."!"; ?>

</body>

</html>

gebruik van PHP

• wordt aan server-zijde gebruikt voor

– dynamische web-pagina‟s

– web-interfaces voor het zoeken in en het aanpassen van

gegevensbanken

verbinding maken met een

gegevensbank

• Gebruik mysql_connect en mysql_select_db

– mysql_connect ([<server> [,<gebruikersnaam> [,<paswoord>]]])

;

– mysql_select_db ( <gegevensbank> [,<connectie>]) ;

$host = „barbary.cs.kuleuven.be‟ ;

$user = „phpdb‟ ;

$pass = „frietjes‟ ;

$database = „muziek‟ ;

$conn = mysql_connect ( $host, $user, $pass )

or die ( “cannot connect to database”

) ;

mysql_select_db ( $database ) ;

queries

• gebruik mysql_query

– mysql_query ( <query> [, <connectie>] ) ;

– dit geeft een tabel als resultaat

• voorbeeld

$query = “SELECT user_id AS id, login_name AS naam, ”

.”birthdate AS datum “

.”FROM user ” ;

$result = mysql_query ($query) or

or die (“database fout: “ .

mysql_error() ) ;

rijen uit het resultaat halen

• gebruik een herhaling zoals while, foreach,…

• voorbeeld

while ( $entry = mysql_fetch_array($result,

MYSQL_ASSOC) ) {

<tr>

<td><?php echo $entry[„naam‟]; ?> </td>

<td><?php echo $entry[„datum‟]; ?> </td>

</tr>

}

afsluiten van de connectie:

• Gebruik mysql_close

mysql_close (<connectie>) ;

• Voorbeeld

$mysql_close ( $conn ) ;

tutorials

• Online Php Manual

http://www.php.net/manual/en/index.php

• Online MySQL Manual

http://dev.mysql.com/doc/

VRAGEN?