Eenvoudig invoerformulier
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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>
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>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 19/09/2014 15:24:45 door - Ariën -
Gebruik gewoon dit om te kijken of deze geldig is, ongeacht de lengte.
Code (php)
Gewijzigd op 19/09/2014 15:31:12 door - Ariën -
En dan met name waar je de haakjes zet.
Wat denk je hiermee te bereiken?
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)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
// 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>';
}
?>
// 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>';
}
?>
Gewijzigd op 19/09/2014 15:42:45 door Frank Nietbelangrijk
De code van het formulier is:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Listing 17-1</title>
<style type="text/css">
<!--
Body, P {color:black; font-family: verdana;
font-size: 10 pt}
H1 {color: black; font-family: arial; font-size: 12 pt}
-->
</style>
</head>
<body>
<table border=0 cellpading=10 width=100%>
<tr>
<td bgcolor=#f0f8ff" align=center valign=top width=17%>
</td>
<td bgcolor=#ffffff" align=left valign=top width=83%>
<H1>Newsletter sign-up form</H1>
<P>Vul hier je e-mailadres in en wij sturen je onze wekelijkse nieuwsbrief.</P>
<form method="post"action="formhandler.php">
<input type="text"size=25 name="email">
<br><br>
<input type="submit"name="submit" value="submit">
</form>
</td>
</tr>
</table>
</body>
</html>
Wat een fouten zeg..... ;-)
Zoals de code er nu staat (in de eerste post) ontbreekt er een 2 ronde haakje na "> 30" daarom dat de foutmelding ook zegt dat { onverwacht is
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
Ik zie daar namelijk helemaal geen enkele variabele op regel 21.
Controleer of je POST-variabelen bestaan!
Sorry Pipo, dat moet zijn regel 2
Henk, heb je al onze reacties gelezen, want wij hebben het steevast over $_POST.
Henk Woeltjes op 19/09/2014 16:42:34:
-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.
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.
Voor dat bedrag kun je aardig wat boeken kopen of één a twee dagen privéles nemen..
Maar ik denk dat je ondanks dit grapje er toch best iets aan zult hebben. Alleen neem je nu niet alles meer voor zoete koek aan hoop ik :-)
-Aar- ik ben er nu uit. Ik had $_post met kleine letters geschreven moet dus $_POST zijn. Ik ben er uit, dank jullie wel voor jullie goede hulp. Ik hoop met jullie hulp toch nog iets goeds uit de LOI cursus te halen. Ik zal me dus vast nog wel een keer melden. Fijne avond allemaal.