login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Help, pas begonnen en het loopt al verkeerd :(

Offline Frisky - 01/04/2010 07:54
Avatar van FriskyNieuw lid Hallo beste PHP liefhebbers,

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.

Dit is de code:

<form name="formulier1" action="formulier1.php" method="get">
Voer alstublieft uw voornaam in: <input type=text name=voornaam><br><br>
Voer alstublieft uw achternaam in: <input type=text name=achternaam><br><br>
<input type=submit name=verzenden>
</form>
<?php
if($verzenden){
echo "<b>Hartelijk welkom, $voornaam $achternaam.</b>";
}
?>

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?

Wat doe ik verkeerd??

10 antwoorden

Gesponsorde links
Offline vinTage - 01/04/2010 08:05
Avatar van vinTage Nieuw lid pls kies een degelijke topic titel, gebruik code tags en gooi dat boek asap weg...

Er moet namelijk eer gekeken worden of $verzenden wel isset is.
Offline Jelmerholland - 01/04/2010 09:03 (laatste wijziging 01/04/2010 09:04)
Avatar van Jelmerholland PHP beginner en jij hebt:
  1. <input type=text name=voornaam />

FOUT, het moet namelijk zo:
  1. <input type="text" name="voornaam" />


quotes zijn zeg maar best wel nodig, ook heb jij als jij 'm gaat echoën, dit:
  1. echo "<b>Hartelijk welkom, $voornaam $achternaam.</b>";

FOUT, het moet namelijk zo:
  1. echo "<b>Hartelijk welkom," . $voornaam . " " . $achternaam . ".</b>";



Check dus aub je hele code nog ff, zitten er geheid nog meer in!
Bedankt door: UpLink
Offline Frisky - 01/04/2010 09:03
Avatar van Frisky Nieuw lid Ok, ik heb het probleem reeds gevonden en ik vrees dat ik je gelijk moet geven wat dat boek betreft, echt rommel.

Toch bedankt en ik zal in het vervolg rekening houden met de etikette die hier gebruikelijk is, het is nog allemaal wat nieuw voor me daarmee.

Offline Jelmerholland - 01/04/2010 09:33 (laatste wijziging 01/04/2010 09:34)
Avatar van Jelmerholland PHP beginner 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 )
Offline larssy1 - 01/04/2010 09:46 (laatste wijziging 01/04/2010 09:47)
Avatar van larssy1 MySQL beginner Frisky, om een goed PHP boek te vinden, raad ik je aan om eens naar de bibliotheek te gaan, en daar te kijken in een PHP boek.

Een bibliotheek heeft bijna altijd wel een PHP voor Dummies boek.

-----
Het mooiste ervan is, je hoeft niet eerst te betalen en daarna weg gooien =D
Offline pijke - 01/04/2010 15:29
Avatar van pijke Gouden medaille

Lid
larssy1 schreef:
Frisky, om een goed PHP boek te vinden, raad ik je aan om eens naar de bibliotheek te gaan, en daar te kijken in een PHP boek.

Een bibliotheek heeft bijna altijd wel een PHP voor Dummies boek.

-----
Het mooiste ervan is, je hoeft niet eerst te betalen en daarna weg gooien =D
en installeer xampp!
Offline Martijn - 01/04/2010 15:47 (laatste wijziging 01/04/2010 15:49)
Avatar van Martijn Crew PHP
pijke schreef:
[..quote..]en installeer xampp!


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 
Offline Ontani - 01/04/2010 15:55
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
X van XAMPP staat voor Cross-platform
Offline Koen - 01/04/2010 16:50
Avatar van Koen PHP expert
Martijn schreef:
@ 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:

  1. <?php
  2. if($_SERVER['REQUEST_METHOD'] == 'POST') // hiermee kijken we na of er een formulier gepost is
  3. {
  4. echo 'Hallo ' . $_POST['naam'] . ', wat fijn dat jij uit ' . $_POST['land'] . ' komt zeg!';
  5. }
  6. else // zoniet, formulier laten zien:
  7. {
  8. ?>
  9. <form action="" method="post">
  10. Naam: <input type="text" name="naam" /><br />
  11. Land: <input type="text" name="land" />
  12. <input type="submit" name="submit" value="Verzenden!" />
  13. </form>
  14. <?php
  15. }
  16. ?>


Ik hoop dat je hier iets aan hebt, het verbaast me dat andere leden je hier nog niet hebben op gewezen.
Bedankt door: Jelmerholland
Offline Jelmerholland - 01/04/2010 17:14
Avatar van Jelmerholland PHP beginner Niet opgevallen, en zoals ik al zij; 'Check dus aub je hele code nog ff, zitten er geheid nog meer in! '

Maar goed dat jij 'm daar nog ff op wijst!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s