Sådan laver du web apps is PHP. Gennemgang af form data, sessions, cookies og filadgang.
Materiale fra foredraget http://appacademy.dk/foredrag/web-apps-i-php/
1. Web apps i
PHP
Eksempler og links kan efterfølgende findes på
http://appacademy.dk
App Academy
www.appacademy.dk
@appacademydk
2. Kristian Langborg-Hansen
Partner i App Academy
Underviser og foredragsholder
Forfatter
klh@appacademy.dk
App Academy
www.appacademy.dk
@appacademydk
3. Opgaven fra sidst
• Lav en pinkodehusker
–
–
–
–
8 x 5 felter
Hver felt har en af fire farver
Udfyld med tilfældige tal
Lad brugeren rette tallene (så de passer til hans
pinkode)
• Løsningsforslag på www.appacademy.dk
App Academy
www.appacademy.dk
@appacademydk
4. Dagens case
• Redigering af en brugers profil på et socialt
medie
–
–
–
–
Navn og adgangskode
Profilbillede
Log-in
Huske brugerens brugernavn
App Academy
www.appacademy.dk
@appacademydk
6. Indsendte data
• GET
– Til beskeder, der kan sendes igen (søgninger)
– $_GET[”navn”]
• POST
– Til beskeder, der ikke kan sendes igen (tilføj til
indkøbskurv)
– $_POST[”navn”]
• Ligeglad
– $_REQUEST[”navn”]
App Academy
www.appacademy.dk
@appacademydk
7. Gem data i fil
<?php
$fil = fopen(
$_REQUEST["brugernavn"] . ".txt",
"w");
fwrite($fil, $_REQUEST["adgangskode"]);
fclose($fil);
?>
App Academy
www.appacademy.dk
@appacademydk
8. Gem data i fil
<?php
$fil = fopen(
$_REQUEST["brugernavn"] . ".txt",
"w");
fwrite($fil, $_REQUEST["adgangskode"]);
fclose($fil);
?>
App Academy
www.appacademy.dk
@appacademydk
9. Parametre til filer
Parameter
Betydning
r
Kun læsning. Starter ved filens begyndelse.
r+
Læsning og skrivning. Starter ved filens begyndelse.
w
Kun skrivning. Overskriver en eksisterende fil, eller opretter en ny,
hvis filen ikke findes.
Læsning og skrivning. Overskriver en eksisterende fil, eller opretter
en ny, hvis filen ikke findes.
Tilføjelse. Åbner filen og skriver i slutningen af den. Opretter en ny
fil, hvis filen ikke eksisterer.
Tilføjelse og læsning. Åbner filen, og skriver i slutningen af den.
Opretter en ny fil, hvis filen ikke eksisterer.
Kun skrivning. Opretter en ny fil, hvis filen ikke eksisterer. Giver en
fejl, hvis filen eksisterer i forvejen.
Læsning og skrivning. Opretter en ny fil, hvis filen ikke eksisterer.
Giver en fejl, hvis filen eksisterer i forvejen.
w+
a
a+
x
x+
App Academy
www.appacademy.dk
@appacademydk
10. Upload af filer
<form action="redigerprofil.php"
method="post"
enctype="multipart/form-data">
App Academy
www.appacademy.dk
@appacademydk
11. Upload af filer
$file_name = $_REQUEST["brugernavn"] . ".jpg";
move_uploaded_file(
$_FILES["profil"]["tmp_name"],
$file_name);
App Academy
www.appacademy.dk
@appacademydk
13. Sessioner
• Session = et sammenhængende besøg på
webstedet
– Samme bruger
– Inden for et begrænset tidsrum
• Oplysninger kan overføres mellem sider inden
for samme session.
App Academy
www.appacademy.dk
@appacademydk
15. Kontrol af login
<?php
if (!isset($_SESSION["brugernavn"])) {
header("Location: login.php");
}
?>
App Academy
www.appacademy.dk
@appacademydk
16. Cookies
• Husker oplysninger i mellem sessioner
• Gemmes i brugerens hjemmemappe på
computeren.
• ”Bekendtgørelse om krav til information og
samtykke ved lagring af eller adgang til
oplysninger i slutbrugeres terminaludstyr”
App Academy
www.appacademy.dk
@appacademydk
19. En opgave at gå hjem på
• Kan I huske ”Gæt et tal”?
• Brug sessionsvariabler til
– At huske det rigtige tal
– At tælle hvor mange gange brugeren har gættet
• Vis antal gæt for brugeren
• Tip: et tilfældigt tale laves med
$tal = rand(1,10);
• Vejledende løsning på www.appacademy.dk
App Academy
www.appacademy.dk
@appacademydk