Ik ken HTML en heb zopas mijn eerste stappen gezet in PHP. Maar het loopt nu al fout en ik word er gek van!
Ik heb WAMPSERVER geïnstalleerd omdat dit het eenvoudigst leek om mee te beginnen. Hierna heb ik met een cursus enkele oefeningen gedaan, maar na de code letterlijk overgenomen te hebben blijkt het toch niet te werken. Kunnen jullie mij zeggen wat ik verkeerd doe?
Aangezien de code letterlijk uit het boek is overgenomen zou ze geen fouten mogen bevatten dus vraag ik me af wat er aan de hand is? Ik hoop van harte dat jullie mij snel uit de nood kunnen helpen.
Voor alle duidelijkheid ik ben het nog aan het leren en test alles op de localhost.
En dit is het resultaat in mijn browser (localhost):
Onderaan het formulier dat normaal wordt weergegeven staat:
Notice: Undefined variable: verzenden in C:\wamp\www\EC464\voorbeelden\formulier1.php on line 7
Ik begrijp hieruit dat hij mijn variabele "verzenden" niet herkent ofzoiets, maar de code is letterlijk overgenomen uit een boek dus zou toch moeten werken? Ik heb hetzelfde probleem met andere gelijkaardige formulieren die ook letterlijk overgenomen zijn uit mijn boek.
En het weergeven van de ingevulde gegevens werkt niet zoals het zou moeten?
Dan vragen we je nu of je op de knop 'Oplossing!' wilt drukken, dan gaat hij uit de snellijst aan de rechterkant
(moet je wel op die bij mijn post drukken (A), lekker egoïstisch XD )
en waarom zou je dat doen? WAMP is prima, de W is van windows, X van wat adners. Verder is XAMPP veel uitgebreider met opties die je als beginneling totaal niet nodig hebt.
@ topicposter. Je noemt zon inputveld bv voornaam. Alles uit een formulier is zogenaamde POST data. Daarom kun je het bereiken met $_POST['voornaam'], en niet $voornaam.
Vroeger kon $voornaam gewoon wel, maar dat is ondertussen allang weggewerkt, vandaar dat je boek aardig out of date is
Ik zou er neit mee verder gaan, want er zitten verschillende fouten in die best groot zijn voor zo'n klein scriptje
@ topicposter. Je noemt zon inputveld bv voornaam. Alles uit een formulier is zogenaamde POST data. Daarom kun je het bereiken met $_POST['voornaam'], en niet $voornaam.
Vroeger kon $voornaam gewoon wel, maar dat is ondertussen allang weggewerkt, vandaar dat je boek aardig out of date is
De topic starter gebruikt een formulier dat de gegevens verstuurd met behulp van een GET request, dus met $_POST zal hij ook niet zoveel zijn.
Jelmerhollan schreef:
en jij hebt:
[..code..]
FOUT, het moet namelijk zo:
[..code..]
quotes zijn zeg maar best wel nodig, ook heb jij als jij 'm gaat echoën, dit:
[..code..]
FOUT, het moet namelijk zo:
[..code..]
Check dus aub je hele code nog ff, zitten er geheid nog meer in!
Er is helemaal niets fout aan die code, de schrijfwijze is gewoon exotischer en niet XHTML valid. Het probleem bij hem zit 'm erin dat hij een enorm verouderde tutorial gebruikt. In deze tutorial wordt nog aangenomen dat de php.ini waarde (configuratiebestand voor php) "register_globals" standaard aanstaat.
PHP maakt bij zijn variabelen namelijk onderscheid tussen zogenaamde globale variabelen (superglobals zoals $_POST, $_GET, $_SERVER, ...) en gewone variabelen ($variabele). De variabelen die worden meegestuurd met een formulier dat via de "POST" methode wordt verzonden moeten bijgevolg worden aangesproken met behulp van de superglobal $_POST (dit is een array die alle geposte gegevens bevat).
Welnu, in de beginjaren van PHP was het ook mogelijk om die superglobals te benaderen met gewone variabelen, met andere woorden: $_POST['variabele'] kon je gewoon aanroepen met $variabele, en omgekeerd. Naargelang je jezelf meer en meer in PHP gaat verdiepen zal je begrijpen dat tot enorme problemen zou kunnen leiden die betrekking hebben tot de beveiliging van je pagina's, omdat door deze methode een groot aantal variabelen van buitenaf te manipuleren zijn.
Op jouw webhosting is deze optie uitgezet (deze functionaliteit wordt trouwens volledig verwijderd vanaf PHP6). Voor jou heeft dit als gevolg dat je formulier gegevens zal moeten aanroepen met de superglobal die van toepassing is op de verzendingsmethode van dat formulier (GET/POST). Een voorbeeldje: