EDIT : ONNODIGE TOPIC, MAG WORDEN AFGESLOTEN.
Ik ga jouw huiswerk niet voor je doen, maar hier een aantal tips:
- een formulier begint met <form ...> en eindigt met </form> de formulier-elementen moeten tussen deze tags staan
- de pagina die het formulier verwerkt zal een PHP-document moeten zijn, want een HTML-pagina kan geen formuliergegevens verwerken, je definieert de pagina die het formulier verwerkt in je action-attribuut van je form-tag (dus het wordt zoiets als <form action="verwerk.php" method="post">)
- de formulier-informatie wordt doorgegeven door middel van naam-waarde (key-value) paren. In het bovenstaande formulier hebben je velden geen unieke namen maar wordt heel vaak "antw1" en "antw3" gebruikt; als je wilt dat alle formuliervelden apart verwerkt kunnen worden zul je voor elk veld een unieke naam moeten invoeren, anders worden de waarden telkens overschreven

succes :)
Maar van onze meester moeten de values dus antw3 allemaal hetzelfde zijn

[size=xsmall]Toevoeging op 27/01/2015 17:39:31:[/size]

Thomas van den heuvel, ik heb ook een aparte bestand met po.php, dus action = po.php, dat bedoel je toch dus dat ik mijn pagina verwerk bij php? Dat begrijp ik wel. Mijn leraar zegt ook dat de ingevoerde gegevens bij de solicitatieformulier naar de database van de beheerder moeten? Heeft u hiervoor ook een aantal tips want de leraar zei dat niet in de textboek stond
Vraag je leraar om meer uitleg als hij zegt dat het niet in het boek staat. We gaan niet je huiswerk hier maken, huiswerk is ervoor gemaakt om jezelf iets bij te brengen, als wij dat voor je gaan doen heb je er niets aan en sta je hier volgende week weer met dezelfde vraag.

Dus conclusie: ga naar je leraar met huiswerkvragen
Huiswerk maken hebben wij ook geen zin in. :)

Dus ik heb voor je een mooie link waarin precies staat hoe je het moet doen, je moet het alleen zelf verder maken. Overigens als je alle stappen hiervan overneemt dan wordt het een 10+ want er zit ook nog een foutafhandeling bij. http://www.pfz.nl/wiki/het-wiel-uitgevonden-formulieren/
Goed, op je weblink die je gaf zie ik je HTML.

Ik ga je alleen tips geven.

-Een name is altijd uniek! Anders gaat PHP lopen overschrijven.
-Het héle formulier zet je tussen <form...> </form> tags.
-En waarom zoveel paragrafen?
-Verder mis ik nog meer in je document, maar voor nu keek ik alleen naar je formulier.

Als ik je docent was en hem nu al moest becijferen werd het een 2. Succes er mee! :D
@Osman: probeer het eerst zo werkend te krijgen zodat formulier-gegevens opgevraagd kunnen worden na de verzending ervan via een PHP-script. Dat wil zeggen dat je een werkend formulier moet hebben dat verwijst naar een verwerk-script, en dit verwerk-script dumpt je formulier-inhoud ($_POST) naar het scherm. In principe moet je 4 dingen ontwikkelen:
- je database-tabel
- het invulformulier
- de afhandeling ervan
- een eenvoudige backend voor het (in eerste instantie?) weergeven van ingevulde data

Het artikel waar BartVB naar linkte zou je een heel eind op weg moeten helpen.

---

@BartVB Een 10- misschien, want er wordt met geen woord gerept over een (vaste) character encoding, o.a. in je output escaping.

Hier zou je -voor de leesbaarheid- een functie of (static) helper method voor kunnen gebruiken (er vanuitgaande dat je overal UTF-8 gebruikt):

<?php
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}
?>


Daarnaast kan sommige code korter en daarbij zou alle output geescaped moeten worden:

<select id="maand" name="maand">
    <option value="1"<?php echo ( isset($_POST['maand']) and $_POST['maand'] == 1 ) ? ' selected="selected"' : '' ?>>Januari</option>
    <option value="2"<?php echo ( isset($_POST['maand']) and $_POST['maand'] == 2 ) ? ' selected="selected"' : '' ?>>Februari</option>
    <option value="3"<?php echo ( isset($_POST['maand']) and $_POST['maand'] == 3 ) ? ' selected="selected"' : '' ?>>Maart</option>
    <option value="4"<?php echo ( isset($_POST['maand']) and $_POST['maand'] == 4 ) ? ' selected="selected"' : '' ?>>April</option>
    <option value="5"<?php echo ( isset($_POST['maand']) and $_POST['maand'] == 5 ) ? ' selected="selected"' : '' ?>>Mei</option>
</select>


Kun je vereenvoudigen tot:

<select id="maand" name="maand"><?php
    $maanden = array(1 => 'Januari', 'Februari', 'Maart', 'April', 'Mei');
    foreach ($maanden as $k => $v) {
        $selected = (isset($_POST['maand']) && $_POST['maand'] == $k ? ' selected="selected"' : '');
        ?><option value="<?php echo escape($k) ?>"<?php echo $selected ?>><?php echo escape($v) ?></option><?php
    }
?></select>


(edit: lol, de code is nu even lang, maar als je alle maanden afdrukt, you get the idea :))

Als er code herhaald wordt zou je eigenlijk altijd moeten kijken of een loop of functie uitkomst kan bieden.

Ook kun je misschien beter van dit patroon gebruik maken, maar dan zul je een sessie moeten gebruiken om je data tijdelijk op te slaan zodat je deze terug kunt plaatsen in je formulier indien er fouten optraden.

Oh, en hier kun je dan ook meteen gebruik van maken om je formulier te beschermen tegen CSRF (Cross Site Request Forgeries) middels een token :).

Er is altijd ruimte voor verbetering.
Bart V B op 28/01/2015 12:01:19

Overigens als je alle stappen hiervan overneemt dan wordt het een 10+ want er zit ook nog een foutafhandeling bij.


Wat mij betreft zou hij met deze code niet verder komen dan een mager zesje aangezien er nog gebruik gemaakt wordt van het (zwaar) verouderde en onveilige MySQL in plaats van MySQLi of PDO
Pipo Clown op 28/01/2015 13:25:33

Wat mij betreft zou hij met deze code niet verder komen dan een mager zesje aangezien er nog gebruik gemaakt wordt van het (zwaar) verouderde en onveilige MySQL in plaats van MySQLi of PDO


Helaas lopen de opleidingen en ook de leerkrachten hierin erg achter. Ik verwacht zelf absoluut geen slechtere beoordeling door het gebruik van mysql_* functies. Voor de beveiliging is het wel beter. Wil je direct goede foutafhandeling kado krijgen ga dan voor PDO.
MySQL, mits goed gebruikt, is even veilig als MySQLi en PDO...
>> MySQL, mits goed gebruikt, is even veilig als MySQLi en PDO...

Maar is wel deprecated. In de toekomstige PHP versies zal het niet meer (standaard) werken.

Reageren