Hantera input via get och post

Syfte: att lära sig ta hand om data som kommer via $_POST och $_GET.
OBS! För att php skall fungera måste skripten ligga på en webserver som har stöd för PHP.

<?php
// Om man vill slippa se en massa NOTICE meddelanden:
error_reporting(E_ALL ^E_NOTICE);
// Tips!
print_r($_POST);
print_r($_GET);
if ($_GET['passwd'] == 'secret') {
  echo 'Grattis, du har knäckt koden'; 
} else {
  echo 'Du kan inte det hemliga lösenordet';
}
 
<form method="post">
  <input type="text" name="login">
  <input type="password" name="passwd">
  <input type="submit" name="submit" value="Login">
</form>

1. Gör en sida där man måste mata in rätt query-string för att få se något hemligt. Om man har fel ska det stå att man inte är behörig.
(Om du inte vet vad query-string är…)

2. Gör en sida där man matar in 2 tal via ett formulär, när man har tryckt på skicka skall det skrivas ut vilka tal man skrev in och vilket av dem som var störst.

3. Gör en sida där man matar in 2 tal via ett formulär, när man har tryckt på skicka skall talen skrivas ut i storleksordning, störst först!

4. Gör en sida med en fråga, om man svarar rätt via ett formulär skall det stå att man har svarat rätt annars skall det stå att man har svarat fel.

5. Gör en sida för inloggning via ett formulär. Om man anger rätt login och lösen så får man upp ett välkomstmeddelande annars skall det stå att det är felaktig inloggning. Det behöver bara finnas ett korrekt login.

6. Utöver $_POST och $_GET finns några till “Superglobals” variabler. Ni skall nu med hjälp av $_SERVER skriva ut vilket IP den som surfar till sidan har.
Tips! använd dig av print_r($_SERVER) för att se vad som finns i denna variabel. print_r ska dock inte vara med i den färdiga koden.

7. a) Gör en sida där man får mata in två tal och en text i ett formulär. Om båda talen är större än 100 så ska texten skrivas ut.
Försök att lösa detta med endast en if-sats (if-sats för isset får också finnas med).
b) Gör en sida där man får mata in två tal och en text i ett formulär. Om minst ett av talen är större än 100 så ska texten skrivas ut.
Försök att lösa detta med endast en if-sats (if-sats för isset får också finnas med).

8. Extrauppgift: Klura ut hur radio button i forms funkar och gör en frågesport med minst 5 frågor som rättas av PHP. Efter att man har svarat skall man få reda på hur många rätt man fick.

9. Extrauppgift: Gör en sida där man matar in tre tal, när man trycker på submit skall talen skrivas ut i storleksordning. (svårare än man kan tro…)

10. Uppgift vid tid över: Ta reda på hur php-funktionen mail() fungerar. Gör sedan en sida som skickar iväg ett mail. På sidan ska man ange en mottagaradress, ett ämne och ett meddelande. Sidan ska ge ett felmeddelande och inte skicka iväg mailet om något av fälten i formuläret är tomt. (Bonus: Få mailet att hantera svenska bokstäver (ÅÄÖ))

11. Extrauppgift: Gör ett formulär där man matar in radie och höjd för en cylinder. Programmet ska sedan beräkna volymen för cylindern. Programmet ska ge en lämplig felutskrift ifall något av värdena som matas in inte är positivt.

12. Extrauppgift: Gör ett formulär där man får mata in mätarställningen för en bil vid början av året och vid slutet av året (hela mil). Dessutom ska man mata in hur många liter bensin som förbrukats under året. Programmet ska sedan skriva ut ANTAL KÖRDA MIL och GENOMSNITTLIG BENSINFÖRBRUKING PER MIL.

13. Extrauppgift:
a) Skriv ett program som ger information om hur mycket det kommer att kosta att gå in på en marknad. Barn under 5 år får gå in gratis, barn under 15 år får betala 34 kr och övriga får betala 67 kr. Ålder läses in via ett formulär.
b) Gör ett nytt program som beräknar kostnaden för en hel familj. I formuläret ska man ange antal personer i familjen, antal barn under 5 år och antal barn under 15 år (men som ej är under 5 år).
c) Bygg ut uppgift a) och b) med att man även får ange hur mycket pengar man räcker fram i kassan (de tar tydligen endast kontanter i entrén till denna marknad !!!). Programmet ska beräkna hur mycket växel som man får tillbaka. Om man räcker fram för lite pengar ska det stå “DU HAR BETALAT FÖR LITE”.

14. Extrauppgift En viss löpartävling består av två deltävlingar där den totala tiden läggs ihop. Gör ett formulär där man får mata in timmar, minuter och sekunder för båda loppen. Programmet ska sedan beräkna den totala tiden i timmar, minuter och sekunder.