Mailscript... Graag nodig inspectie van gevorderden.
Ik ben heel erg nieuwe in PHP, maar heb toch geprobeerd om mijn eerst script te schrijven met behulp van een boek "PHP5" (die ik onlangs gekocht heb). Ik probeer een mailscript zelf te maken omdat naar een zoektocht door deze website heb ik veel kritiek gezien op andere mailscripts die mensen hebben geplaatst voor gebruik. Vandaar heb ik besloten om zelf eentje te schrijven maar gezien de omstandigheden blijkt dat de script die word uitgelegd in boek niet echt werkend en/of niet volledig is vandaar wil ik advies van gevorderden mensen op deze geweldige site/forum die kunnen mijn script beoordelen in misschien wat advies geven om de script te optimaliseren ( als dat kan ). Zou ook graag willen weten of deze script "mail injection" proof is.
Alvast bedankt voor uw reactie en of advies/beoordeling.
mijn script: ( ofkijk hier
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
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
<?php
ini_set ("SMTP" , "smtp.provider.nl");
ini_set ("smtp_port", 25);
ini_set ("sentmail_from", "[email protected]");
function valid_name ($str) {
return (ereg ('(^[A-Za-z. -}+$', $str));
}
function valid_company ($str) {
return (ereg ('(^[0-9a-zA-Z. -}+$', $str));
}
function valid_mail ($str) {
return (ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{2,}$)', $str));
}
function valid_phone ($str) {
return (ereg ('(^[0-9]{10}$)',$str));
}
$_POST["naam"] = ucfirst($_POST["name"]);
if ($_POST["verzendbutton"] != "verzenden" || !valid_name($_POST["name"]) || !valid_company($_POST["bedrijfsnaam"]) || !valid_mail($_POST["mailadres"]) || !valid_phone($_POST["telefoonnummer"]) ||
!$_POST["reactie"]);
if ($_POST["verzendbutton"] && !valid_name($_POST["naam"])) {
echo "<font color=\"red\">Vul uw naam in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_company($_POST["bedrijfsnaam"])) {
echo "<font color=\"red\">Vul uw bedrijfsnaam in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_mail($_POST["mailadres"])) {
echo "<font color=\"red\">Vul uw e-mailadres in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_phone($_POST["telefoonnummer"])) {
echo "<font color=\"red\">Vul uw telefoonnummer in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !$_POST["reactie"]) {
echo "<font color=\"red\">Vul hier uw reactie in AUB!</font><br>";
}
?>
ini_set ("SMTP" , "smtp.provider.nl");
ini_set ("smtp_port", 25);
ini_set ("sentmail_from", "[email protected]");
function valid_name ($str) {
return (ereg ('(^[A-Za-z. -}+$', $str));
}
function valid_company ($str) {
return (ereg ('(^[0-9a-zA-Z. -}+$', $str));
}
function valid_mail ($str) {
return (ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{2,}$)', $str));
}
function valid_phone ($str) {
return (ereg ('(^[0-9]{10}$)',$str));
}
$_POST["naam"] = ucfirst($_POST["name"]);
if ($_POST["verzendbutton"] != "verzenden" || !valid_name($_POST["name"]) || !valid_company($_POST["bedrijfsnaam"]) || !valid_mail($_POST["mailadres"]) || !valid_phone($_POST["telefoonnummer"]) ||
!$_POST["reactie"]);
if ($_POST["verzendbutton"] && !valid_name($_POST["naam"])) {
echo "<font color=\"red\">Vul uw naam in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_company($_POST["bedrijfsnaam"])) {
echo "<font color=\"red\">Vul uw bedrijfsnaam in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_mail($_POST["mailadres"])) {
echo "<font color=\"red\">Vul uw e-mailadres in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !valid_phone($_POST["telefoonnummer"])) {
echo "<font color=\"red\">Vul uw telefoonnummer in AUB!</font><br>";
}
if ($_POST["verzendbutton"] && !$_POST["reactie"]) {
echo "<font color=\"red\">Vul hier uw reactie in AUB!</font><br>";
}
?>
<form action="" method="post">
Naam: <input name="name" type="text" value="" size="40" />
Bedrijfsnaam: <input name="bedrijfsnaam" type="text" value="" size="40" />
E-mailadres: <input name="mailadres" type="text" value="" size="40" />
Telefoonnummer: <input name="telefoonnummer" type="text" value="" size="40" />
Uw reactie: <textarea name="reactie" cols="50" rows="10"></textarea>
<input type="submit" value="verzenden" name="verzendbutton" />
</form>
Code (php)
Gewijzigd op 26/05/2010 23:19:14 door Aleks Andr
Zet je code even tussen code tags. Dan is het beter leesbaar =)
en @Vic tor, het staat tussen code tags, neem ik aan. anders zou het begin al niet binnen de code blocks staan denk je niet?
Gewijzigd op 26/05/2010 22:35:49 door wesley Overdijk
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
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
<?php
$required_fields = Array(
'name',
'password',
'meh'
);
$regex = Array(
name = '^etc$'
);
foreach $_POST as $key => $value{
// Doe je ding, leef je uit ik kan wel dingen gaan voorkouwen maar, als je het echt wil leren..
// Kijk wat is gezet, wat gezet moet worden, merge deze arrays voor default values, zodat toch elke key is gezet. Je kan anomynous functions gebruiken voor dynamische function calls, of je werkt met een array om dan de waardes te checking.
// Daarbij raad ik je aan om met sprintf te gaan werken voor een beter overzicht, want dit:
$str = $meh . " " . $bar . " is geen goede " . $manier . $om . " een string " . " te mergen";
// Voorbeeld #1
$Str = sprintf( "%s %s is een betere %s %s een string te mergen", $meh, $bar, $manier, $om );
// Voorbeeld #2
// Kijk wel uit, het vreet wel performance. Dit nog meer:"
$str = "$meh is geen goede $manier $om een string te mergen";
}
?>
$required_fields = Array(
'name',
'password',
'meh'
);
$regex = Array(
name = '^etc$'
);
foreach $_POST as $key => $value{
// Doe je ding, leef je uit ik kan wel dingen gaan voorkouwen maar, als je het echt wil leren..
// Kijk wat is gezet, wat gezet moet worden, merge deze arrays voor default values, zodat toch elke key is gezet. Je kan anomynous functions gebruiken voor dynamische function calls, of je werkt met een array om dan de waardes te checking.
// Daarbij raad ik je aan om met sprintf te gaan werken voor een beter overzicht, want dit:
$str = $meh . " " . $bar . " is geen goede " . $manier . $om . " een string " . " te mergen";
// Voorbeeld #1
$Str = sprintf( "%s %s is een betere %s %s een string te mergen", $meh, $bar, $manier, $om );
// Voorbeeld #2
// Kijk wel uit, het vreet wel performance. Dit nog meer:"
$str = "$meh is geen goede $manier $om een string te mergen";
}
?>
Gewijzigd op 27/05/2010 10:32:22 door Johan K