Door
Henk Woeltjes
op 19-09-2014 15:01
gewijzigd op 19-09-2014 15:24
2.114 views
Ik heb in mijn cursus de opdracht gekregen een eenvoudig invoerformulier te maken.
Het invoerformulier heb ik succesvol gemaakt, echter de ontvangst moet worden bevestigd in de formulierhandler formhandler.php en dat krijg ik niet werkend. Hij geeft elke keer de volgende melding:
( ! ) Parse error: syntax error, unexpected '{' in C:\wamp\www\formhandler.php on line 3
Hieronderoner de code van formhandler.php
<?php
if (!$_post['email'] || $_post['email'] =="" ||
strlen(isset($_post['email']) && $_post['email'] > 30){
echo '<P>Is je emailadres echt zo lang?</P>';
} else {
//Open connection to de database
mysql_connect("localhost", "root", "")
or die("Kan geen contact maken met de database");
mysql_select_db("test");
//Insert mail address
$as_email = mysql_real_escape_string($_post['email']);
$tr_email = trim($as_email);
$QUERY = "INSERT INTO mailinglist (ID, Email, Source)
VALUES(NULL, '$tr_email',
'www.example.com/newsletter_signup.html')
";
$result = mysql_query($QUERY);
if (mysql_affected_rows() == 1) {
echo '<P>Your information has been recorded.</P>';
} else {
error_log(mysql_error());
echo '<P>Somthing went wrong with your signup
attempt.</P>';
}
}
?>
</td>
</tr>
</table>
</body>
</html>
Wat denk je hiermee te bereiken?
<?php
strlen(isset($_post['email']) && $_post['email'] > 30)
?>
strlen is een functie die het aantal tekens in een string voor je optelt. Daar geef jij nu een vergelijking mee.
Hoe het beter kan: (ik ken je studieboek niet natuurlijk)
<?
// eerst kijken we of de pagina wel in de POST methode is aangeroepen. Anders kunnen we geen enkele $_POST[..] verwachten.
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* nu ga ik er gewoon klakkeloos van uit dat $_POST['email'] bestaat omdat:
a. Deze pagina zeker in de POST methode is aangeroepen, en
b. Het formulier (<form>) ALTIJD een invoerveld bevat met de naam 'email'
*/
if(strlen($_POST['email']) > 30)
echo '<p>Is je emailadres echt zo lang?</p>';
}
?>
Dit voorbeeld komt letterlijk uit het studie boek (PHP6 en MySQL, DE ECHTE WILEY BIBLE) en het gaat inderdaad om een veld waarbij een email adres moet worden ingevoerd.
De code van het formulier is:
-Aar-
Je hebt gelijk, eigenlijk kan de hele cursus PHP & MySQL van de LOI in de open haard. Maar ik heb er wel bijna € 500,- aan betaald en het is de enige schriftelijke cursus PHP & MySql dus ik maak 'm toch maar even af alhoewel ik me afvraag of ik er iets aan zal hebben.
G P
Dank voor je hulp. Ik heb dat ronde haakje er bij geplaatst echter nu geeft hij de volgende foutmelding:
( ! ) Notice: Undefined variable: _post in C:\wamp\www\formhandler.php on line 21
Call Stack
# Time Memory Function Location
1 0.0016 374104 {main}( ) ..\formhandler.php:0