reactiescript
Dit script werkt tot zover goed maar ik wil er iets aan toevoegen waar ik totaal geen kaas van heb gegeten. Nu bij naam email etc invullen zou je in principe alles in kunnen vullen en dat zal hij dan ook verzenden. Ik zou graag er iets aan toe willen voegen zodat alles juist wordt ingevult en rare emailadressen, namen het script een foutmelding geeft.
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
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
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma, Geneva, sans-serif;
font-size: 12px;
color: #747474;
}
-->
</style>
<hr />
<p> </p>
<p><strong>
<?php
mysql_connect('','','');
mysql_select_db('');
$query = 'SELECT id FROM paginas WHERE url="'.mysql_escape_string($_SERVER['REQUEST_URI']).'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 1){
$row = mysql_fetch_array($result);
$pagina_id = $row['id'];
} else {
mysql_query('INSERT INTO paginas SET url="'.
$_SERVER['REQUEST_URI'].'";');
$pagina_id = mysql_insert_id();
}
?>
</strong></p>
<p><strong><img src="images/03.png" width="20" height="20" /> Reageer zelf</strong></p>
<p> </p>
<form method="post">
<p> </p>
<p>Naam:
<input type="text" name="naam"><br>
</p>
<p> </p>
<p>E-mail:
<input name="email" type="text" value="" />
*wordt niet getoond
<br>
</p>
<p> </p>
<p>Reactie:<br>
<textarea cols="45" rows="4" name="reactie"></textarea>
<br>
<input type="submit" value="Versturen">
</p>
</form>
<p> </p>
<br>
<?php
if (isset($_POST['naam'])) {
if($_POST['naam'] != '' && $_POST['email'] != '' && $_POST['reactie'] != ''){
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}else{
echo 'Reactie niet opgeslagen, vul alles in';
}
}
?>
<br>
<p><strong><u>Reacties van anderen</u></strong></p>
<br>
<br>
<?php
$query = 'SELECT * FROM reactie WHERE pagina="'.$pagina_id.'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 0){
echo 'Er zijn nog geen reacties.';
} else {
while ($row = mysql_fetch_array($result)) {
// deze reactie weergeven
echo
''.$row["datumtijd"].'<br>'.$row['naam'].' zegt: '.'<br>'.'<br>'.
''.$row['reactie'].'<br>'.'<br>'.'<br />';
}
}
?>
<!--
body,td,th {
font-family: Tahoma, Geneva, sans-serif;
font-size: 12px;
color: #747474;
}
-->
</style>
<hr />
<p> </p>
<p><strong>
<?php
mysql_connect('','','');
mysql_select_db('');
$query = 'SELECT id FROM paginas WHERE url="'.mysql_escape_string($_SERVER['REQUEST_URI']).'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 1){
$row = mysql_fetch_array($result);
$pagina_id = $row['id'];
} else {
mysql_query('INSERT INTO paginas SET url="'.
$_SERVER['REQUEST_URI'].'";');
$pagina_id = mysql_insert_id();
}
?>
</strong></p>
<p><strong><img src="images/03.png" width="20" height="20" /> Reageer zelf</strong></p>
<p> </p>
<form method="post">
<p> </p>
<p>Naam:
<input type="text" name="naam"><br>
</p>
<p> </p>
<p>E-mail:
<input name="email" type="text" value="" />
*wordt niet getoond
<br>
</p>
<p> </p>
<p>Reactie:<br>
<textarea cols="45" rows="4" name="reactie"></textarea>
<br>
<input type="submit" value="Versturen">
</p>
</form>
<p> </p>
<br>
<?php
if (isset($_POST['naam'])) {
if($_POST['naam'] != '' && $_POST['email'] != '' && $_POST['reactie'] != ''){
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}else{
echo 'Reactie niet opgeslagen, vul alles in';
}
}
?>
<br>
<p><strong><u>Reacties van anderen</u></strong></p>
<br>
<br>
<?php
$query = 'SELECT * FROM reactie WHERE pagina="'.$pagina_id.'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 0){
echo 'Er zijn nog geen reacties.';
} else {
while ($row = mysql_fetch_array($result)) {
// deze reactie weergeven
echo
''.$row["datumtijd"].'<br>'.$row['naam'].' zegt: '.'<br>'.'<br>'.
''.$row['reactie'].'<br>'.'<br>'.'<br />';
}
}
?>
Gebruik voortaan de [.code][./code] tags.[/modedit]
Verhuist naar Algemene PHP Scripting en meer.[/modedit]
Gewijzigd op 07/06/2010 19:26:29 door Tom Beuckelaere
e-mail kan zo gecontroleerd worden:
Code (php)
1
2
3
2
3
<?php
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
Deze geeft TRUE als het emailadress bestaat uit vb. [email protected]
Gewijzigd op 06/06/2010 15:01:40 door jo colling
Zie ook dit voorbeeld.
Een alternatief is het gebruik van PHP filters om de input te valideren. Een voorbeeld daarvan zie je hier.
Gewijzigd op 06/06/2010 14:54:08 door Joren de Wit
Dit klopt dit zou ik er in willen voegen.
Ik weet alleen niet waar ik dit tussen moet zetten in mijn script.
Code (php)
1
2
3
2
3
<?php
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
Eregi is oud, gebruik liever preg_match. Als je daarvoor geen regex kunt vinden, dan is php's filter_var een goede optie, maar de validatie voor een e-mailadres is niet helemaal correct.
Karl Karl op 06/06/2010 21:45:41:
Eregi is oud, gebruik liever preg_match. Als je daarvoor geen regex kunt vinden, dan is php's filter_var een goede optie, maar de validatie voor een e-mailadres is niet helemaal correct.
Waarschijnlijk krijg je ook foutmeldingen met eregi
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Code (php)
1
2
3
2
3
<?php
preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
Bram Boos op 06/06/2010 21:49:37:
Waarschijnlijk krijg je ook foutmeldingen met eregi
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Karl Karl op 06/06/2010 21:45:41:
Eregi is oud, gebruik liever preg_match. Als je daarvoor geen regex kunt vinden, dan is php's filter_var een goede optie, maar de validatie voor een e-mailadres is niet helemaal correct.
Waarschijnlijk krijg je ook foutmeldingen met eregi
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Dat bedoel ik dus.
Frank dak op 06/06/2010 21:53:48:
Dus eregi wordt vervangen.
Code (php)
1
2
3
2
3
<?php
preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z]{2,4})$",$emailadres)
?>
Nee, de regexen zijn meestal niet 'inwisselbaar' met elkaar. Sowieso, nu ik naar die regex kijk, is die nogal onzinnig.
Laats keek ik in mijn database en zag ik allerlei vreemde emailadressen met spam.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_POST['naam'])) {
if($_POST['naam'] != '' && $_POST['email'] != '' && $_POST['reactie'] != ''){
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}else{
echo 'Reactie niet opgeslagen, vul alles in';
}
}
?>
if (isset($_POST['naam'])) {
if($_POST['naam'] != '' && $_POST['email'] != '' && $_POST['reactie'] != ''){
$query = 'INSERT INTO reactie SET pagina="'.$pagina_id.'", naam="'.mysql_real_escape_string($_POST['naam']).'", email="'.mysql_real_escape_string($_POST['email']).'", '.'reactie="'.mysql_real_escape_string($_POST['reactie']).'";';
$result = mysql_query($query);
echo '<p>Je bericht is opgeslagen.</p>';
}else{
echo 'Reactie niet opgeslagen, vul alles in';
}
}
?>
<br>
<p><strong><u>Reacties van anderen</u></strong></p>
<br>
<br>
Dit is dezelfde vraag als waarmee je dit topic begon? Wat heb je inmiddels met de tussenliggende antwoorden gedaan? Ik zie zo een aantal suggesties waar je nog niets mee gedaan hebt (filter_var, preg_match). Beide zouden een oplossing kunnen zijn voor jouw probleem.
htmlentities en misschien zou je ook akismet willen gebruiken.
Gebruik ook