Snel vraagje.
MikeY schreef op 25.02.2008 14:38:
Dat heeft niks met het opslaan van een ip-adres te maken. Je gaat dan een getal opslaan, waarvan jij in je PHP-code beweert dat het een ip-adres is. In de database is het echter géén ip-adres!ik doe altijd IP2LONG($_SERVER['.........
kan je altijd daarna makkelijk een range uitlezen
kan je altijd daarna makkelijk een range uitlezen
Edit:
Jeroen schreef op 25.02.2008 14:41:
En dat is dus weer een tekortkoming van MySQL, weer een reden om afscheid te nemen van deze verzameling bugs en andere ellende. Ga toch eens met een echte database werken, alles is beter dan MySQL.@Frank Ik ben niet meer dat PostgreSQL doen..
Ik ben nu bezig met MySql.
En daar kent ie INET in.
Ik ben nu bezig met MySql.
En daar kent ie INET in.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
waarom zou je het ip adres als ip adres opslaan en niet als integer ?
dit is gewoon om te oefenen :S
Btw; Dat PostgreSQL is lekker duidelijk als j ut probeert te downloade ofzo -.-''
MikeY schreef op 25.02.2008 14:44:
Omdat een ip-adres geen integer is. Daarnaast kun je met een ip-adres ook vergelijkingen op netwerk doen, zie bv. de functie network(). Dit werkt zowel voor IPv4 als IPv6, in tegenstelling tot ip2long() die uitsluitend met IPv4 uit de voeten kan.waarom zou je het ip adres als ip adres opslaan en niet als integer ?
MySQL heeft een paar ip-functies, maar die kunnen (bij mijn weten) evenmin met IPv6 uit de voeten en kennen nog wel meer beperkingen.
IP-adress zijn tog gewoon een paar cijfertjes die de database meot opslaan (met de . ertussen) en vervolgens weer moet late zien?
Les 1 : Ga nooit maar dan ook nooit met frank in discussie. Of jou nou gelijk hebt of niet (wat ik in dit geval laat ik dat in het middel) frank zal het toch nooit toegeven :P
Jeroen schreef op 25.02.2008 14:57:
Nee, dat is het niet, zie Wikipedia voor een goede uitleg.IP-adress zijn tog gewoon een paar cijfertjes die de database meot opslaan (met de . ertussen) en vervolgens weer moet late zien?
@Frank
Ja, gewoon wat cijfertjes met een . ertussen wat 'het getal van je computer' als het waren is. Gewoon opslaan in de database als wat en weer op de site weergeven.
Bumpen::
Ook al excuseer jij je, regels zijn regels en zover ik het natuurlijk kan bijhouden (kan niet alles in de gaten houden) heeft niemand, zelfs ik niet
privileges om de regels te buigen voor welke reden dan ook.
Dus :
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
Ook al excuseer jij je, regels zijn regels en zover ik het natuurlijk kan bijhouden (kan niet alles in de gaten houden) heeft niemand, zelfs ik niet
privileges om de regels te buigen voor welke reden dan ook.
Dus :
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
Sorry voor het bumpen maar dit is omdat ik anders een nieuw topic moet aanmaken en deze stond er nog tussen dus kon ik net zo goed deze gebruiken!
Hoi mensen :D
Ik heb advice van Jacco opgevolgd en ben nu bezig met gastenboek,
dit heb ik nu:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST['naam']) OR empty($_POST['naam'])) { // naam valideren
$fouten[] = 'naam';
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
}
if (!isset($_POST['bericht']) OR empty($_POST['bericht'])) { // bericht valideren
$fouten[] = 'bericht';
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
} // einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST['naam']) OR empty($_POST['naam'])) { // naam valideren
$fouten[] = 'naam';
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
}
if (!isset($_POST['bericht']) OR empty($_POST['bericht'])) { // bericht valideren
$fouten[] = 'bericht';
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
} // einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
Geen errors, nagekeken met WAMP en Ecplise.
Alleen als ik iets fouts in tik, gebeurt er niks,
en ook als ik iets goeds in tik gebeurt er niks.
Komt dit omdat het nog niet word opgeslagen in de database, of omdat er geen andere pagina aanvast zit, of omdat er gewoon een fout inzit?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
Nu nog je action formulier :p
Ik heb dat stuk uit een PHP boek gehaald (PHP 5 voor gevorderden).
En nu dit probleem, geen errors maar hij voegt niks toe aan de database:
Dit is m'n script:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","********","********");
mysql_select_db("**********", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
} else {
$sql = "INSERT INTO
gastenboek (naam)
VALUES ('".mysql_real_escape_string($_POST["naam"])."')
";
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
} else {
$sql1 = "INSTERT INTO
gastenboek (email)
VALUES ('".mysql_real_escape_string($_POST["email"])."')
";
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
} else {
$sql2 = "INSTERT INTO
gastenboek (bericht)
VALUES ('".mysql_real_escape_string($_POST["bericht"])."'))
";
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
} // einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","********","********");
mysql_select_db("**********", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
} else {
$sql = "INSERT INTO
gastenboek (naam)
VALUES ('".mysql_real_escape_string($_POST["naam"])."')
";
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
} else {
$sql1 = "INSTERT INTO
gastenboek (email)
VALUES ('".mysql_real_escape_string($_POST["email"])."')
";
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
} else {
$sql2 = "INSTERT INTO
gastenboek (bericht)
VALUES ('".mysql_real_escape_string($_POST["bericht"])."'))
";
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
} // einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
Hulp van de Pro's? :)
Je stelt wel query's op, maar je voert ze niet uit.
(Sorry, beetje stomme vraag maar ben laatste beetje minder gaan PHPen en probeer ut nu weer op te pakken + incl veel bij te leren..)
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "INSERT INTO
gastenboek (naam)
VALUES ('".mysql_real_escape_string($_POST["naam"])."')
?>
$sql = "INSERT INTO
gastenboek (naam)
VALUES ('".mysql_real_escape_string($_POST["naam"])."')
?>
maar daarna zou je nog moeten doen:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","*******","*******");
mysql_select_db("*******", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
// einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
<?php
} else {
$sql = "INSERT INTO
gastenboek (naam, email, bericht)
VALUES ('".mysql_real_escape_string($_POST["naam"])."', '".mysql_real_escape_string($_POST["email"]).", '".mysql_real_escape_string($_POST["bericht"])."'')";
}
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","*******","*******");
mysql_select_db("*******", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
// einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
<?php
} else {
$sql = "INSERT INTO
gastenboek (naam, email, bericht)
VALUES ('".mysql_real_escape_string($_POST["naam"])."', '".mysql_real_escape_string($_POST["email"]).", '".mysql_real_escape_string($_POST["bericht"])."'')";
}
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$errors = array ();
$messages = array ();
$required = array ('naam', 'email', 'bericht');
function show_info ($array) {
if (!is_array ($array)) return;
$html = '';
if (!empty ($array)) {
$html .= '<ul>';
foreach ($array as $value) {
$html .= '<li>' . $value . '</li>';
}
$html .= '</ul>';
}
return $html;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($required as $field) {
$value = trim ($_POST[$field]);
if (empty ($value)) {
array_push ($errors, 'U bent ' . $field . ' vergeten in te vullen');
}
if ($field == 'email') {
if (!preg_match ('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', $_POST[$field])) {
array_push ($errors, 'Ongeldig e-mailadres: ' . $_POST['email']);
}
}
}
if (empty ($errors)) {
$sql = "
INSERT INTO gastenboek
(
naam,
email,
bericht
)
VALUES
(
'" . mysql_real_escape_string ($_POST['naam']) . "',
'" . mysql_real_escape_string ($_POST['email']) . "',
'" . mysql_real_escape_string ($_POST['bericht']) . "'
)
";
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
array_push ($messages, 'Bericht geplaatst');
}
else {
array_push ($errors, 'Bericht niet geplaatst');
}
}
else {
array_push ($errors, 'Fout bij het uitvoeren van de query:');
array_push ($errors, '<pre>' . htmlentities ($sql) . '<pre>');
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Jan Koehoorn | Verbeterd script voor Jeroen</title>
<style type="text/css" media="screen">
div#container {margin: 0 auto; width: 800px; background: #fd9; padding: 10px;}
label,
input,
li {font: 12px Verdana, Arial, Helvetica, sans-serif;}
form p {overflow: hidden; width: 100%;}
label {float: left; width: 100px; text-align: right; padding-right: 10px; cursor: pointer;}
</style>
</head>
<body>
<div id="container">
<?php
echo show_info ($errors);
echo show_info ($messages);
?>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<p>
<label for="naam">Naam:</label>
<input type="text" id="naam" name="naam" value="<?php if (isset ($_POST['naam'])) echo $_POST['naam']; ?>" />
</p>
<p>
<label for="email">E-mail:</label>
<input type="text" id="email" name="email" value="<?php if (isset ($_POST['email'])) echo $_POST['email']; ?>" />
</p>
<p>
<label for="bericht">Bericht:</label>
<input type="text" id="bericht" name="bericht" value="<?php if (isset ($_POST['bericht'])) echo $_POST['bericht']; ?>" />
<input type="submit" value="verzenden">
</p>
</form>
</div>
</body>
</html>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$errors = array ();
$messages = array ();
$required = array ('naam', 'email', 'bericht');
function show_info ($array) {
if (!is_array ($array)) return;
$html = '';
if (!empty ($array)) {
$html .= '<ul>';
foreach ($array as $value) {
$html .= '<li>' . $value . '</li>';
}
$html .= '</ul>';
}
return $html;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($required as $field) {
$value = trim ($_POST[$field]);
if (empty ($value)) {
array_push ($errors, 'U bent ' . $field . ' vergeten in te vullen');
}
if ($field == 'email') {
if (!preg_match ('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', $_POST[$field])) {
array_push ($errors, 'Ongeldig e-mailadres: ' . $_POST['email']);
}
}
}
if (empty ($errors)) {
$sql = "
INSERT INTO gastenboek
(
naam,
email,
bericht
)
VALUES
(
'" . mysql_real_escape_string ($_POST['naam']) . "',
'" . mysql_real_escape_string ($_POST['email']) . "',
'" . mysql_real_escape_string ($_POST['bericht']) . "'
)
";
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
array_push ($messages, 'Bericht geplaatst');
}
else {
array_push ($errors, 'Bericht niet geplaatst');
}
}
else {
array_push ($errors, 'Fout bij het uitvoeren van de query:');
array_push ($errors, '<pre>' . htmlentities ($sql) . '<pre>');
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Jan Koehoorn | Verbeterd script voor Jeroen</title>
<style type="text/css" media="screen">
div#container {margin: 0 auto; width: 800px; background: #fd9; padding: 10px;}
label,
input,
li {font: 12px Verdana, Arial, Helvetica, sans-serif;}
form p {overflow: hidden; width: 100%;}
label {float: left; width: 100px; text-align: right; padding-right: 10px; cursor: pointer;}
</style>
</head>
<body>
<div id="container">
<?php
echo show_info ($errors);
echo show_info ($messages);
?>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<p>
<label for="naam">Naam:</label>
<input type="text" id="naam" name="naam" value="<?php if (isset ($_POST['naam'])) echo $_POST['naam']; ?>" />
</p>
<p>
<label for="email">E-mail:</label>
<input type="text" id="email" name="email" value="<?php if (isset ($_POST['email'])) echo $_POST['email']; ?>" />
</p>
<p>
<label for="bericht">Bericht:</label>
<input type="text" id="bericht" name="bericht" value="<?php if (isset ($_POST['bericht'])) echo $_POST['bericht']; ?>" />
<input type="submit" value="verzenden">
</p>
</form>
</div>
</body>
</html>
bedankt :)
Maar wat betekend dit:
Warning: ini_set() has been disabled for security reasons in /usr/export/www/vhosts/funnetwork/hosting/frosting/form.php on line 2
?
Dat je host geen ini_set toestaat. Dat is overigens wel de eerste keer dat ik dat meemaak. Maar goed, haal die regel 2 maar weg, dan werkt het ook wel.