Ik heb een probleem met een schoolopdracht

Overzicht

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Osman efeler

osman efeler

27/01/2015 14:20:12
Anchor link
EDIT : ONNODIGE TOPIC, MAG WORDEN AFGESLOTEN.
Gewijzigd op 28/01/2015 22:22:10 door Osman efeler
 
PHP hulp

PHP hulp

25/04/2024 08:04:13
 
Thomas van den Heuvel

Thomas van den Heuvel

27/01/2015 15:09:43
Anchor link
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 :)
 
Osman efeler

osman efeler

27/01/2015 17:36:52
Anchor link
Maar van onze meester moeten de values dus antw3 allemaal hetzelfde zijn

Toevoeging op 27/01/2015 17:39:31:

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
 
- wes  -

- wes -

28/01/2015 11:44:06
Anchor link
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
 
Bart V B

Bart V B

28/01/2015 12:01:19
Anchor link
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/
 
Koen Hollander

Koen Hollander

28/01/2015 12:32:37
Anchor link
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
 
Thomas van den Heuvel

Thomas van den Heuvel

28/01/2015 12:39:08
Anchor link
@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):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}

?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<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.
Gewijzigd op 28/01/2015 12:49:21 door Thomas van den Heuvel
 
Pipo Clown

Pipo Clown

28/01/2015 13:25:33
Anchor link
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/01/2015 14:23:21
Anchor link
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.
 
Wouter J

Wouter J

28/01/2015 14:23:24
Anchor link
MySQL, mits goed gebruikt, is even veilig als MySQLi en PDO...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/01/2015 14:26:40
Anchor link
>> 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.
 
Pipo Clown

Pipo Clown

28/01/2015 15:43:42
Anchor link
Wouter J op 28/01/2015 14:23:24:
MySQL, mits goed gebruikt, is even veilig als MySQLi en PDO...


Dan neem ik maar aan dat jij de komende 10 jaar gewoon MySQL blijft gebruiken. :)
 
Thomas van den Heuvel

Thomas van den Heuvel

28/01/2015 17:56:02
Anchor link
Code wordt zelfden voor de eeuwigeheid geschreven, maar als je nieuwe code schrijft is het wellicht verstandiger om van MySQLi of PDO gebruik te maken.

Ik heb het idee dat er altijd redelijk neerbuigend over wrapper classes wordt gedaan maar het kan wel een uitkomst bieden voor het niet hardcoden van specifieke (database-)functies. Als je zoiets al had geschreven voor MySQL dan hoef je slechts de implementatie van deze wrapper aan te passen naar bijvoorbeeld MySQLi, in plaats van een search/replace op je hele codebase van alle mysql_-functie-aanroepen. Welke van de twee zou minder werk zijn :) (tenzij je een of ander lijp unix grep commando kent misschien)

Ook zie ik niet snel iets in specifieke MySQL-syntax veranderen (al helemaal geen wijzigingen die niet backwards compatible zijn) dus je hoeft in principe niet eens een echte Data Access Layer te hebben als je enkel MySQL gebruikt.

Maar goed, we dwalen af :>.
 
Osman efeler

osman efeler

28/01/2015 19:34:19
Anchor link
Jongens denken jullie dat ik dit allemaal voor vrijdag af kan hebben?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/01/2015 20:57:51
Anchor link
Osman efeler op 28/01/2015 19:34:19:
Jongens denken jullie dat ik dit allemaal voor vrijdag af kan hebben?


Als je er de hele dag aan kunt werken misschien wel maar anders kun je het wel vergeten.

Toevoeging op 28/01/2015 21:03:05:

De output escapen lijkt me niet zinnig. Je mag output uit je eigen database en zeker hardcoded variabelen als veilig beschouwen. Zonde van de tijd. Osman heb je al iets wat de gegevens uit het formulier in de database zet?
Gewijzigd op 28/01/2015 21:03:57 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

28/01/2015 23:06:12
Anchor link
Omdat de topicstart hier verwijderd is, sluit ik dit topic maar.

Hier kunnen we verder gaan:
http://www.phphulp.nl/php/forum/topic/hulp-nodig-bij-formulier-as-vrijdag-moet-het-af-zijn/97057/last/
 
 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.