Mailscript... Graag nodig inspectie van gevorderden.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Aleks Andr

Aleks Andr

26/05/2010 22:27:20
Quote Anchor link
Hallo dames en heren.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
    }

    ?>

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_SERVER["PHP_SELF"]?>
" method="post">
Naam: <input name="name" type="text" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST["naam"] ?>
" size="40" />
Bedrijfsnaam: <input name="bedrijfsnaam" type="text" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST["bedrijfsnaam"] ?>
" size="40" />
E-mailadres: <input name="mailadres" type="text" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST["mailadres"] ?>
" size="40" />
Telefoonnummer: <input name="telefoonnummer" type="text" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST["telefoonnummer"] ?>
" size="40" />
Uw reactie: <textarea name="reactie" cols="50" rows="10">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST["reactie"] ?>
</textarea>
<input type="submit" value="verzenden" name="verzendbutton" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    else {
        $boodschap = "Naam: ".$_POST["naam"]."\nCommentaar: ".$_POST["reactie"];
        mail ($_POST["mailadres"], "Uw reactie van de website", $boodschap);
        echo "Bedankt ".$_POST["naam"].", voor uw reactie. We nemen zo spoedig mogelijk contact met u op.";
    }

    ?>
Gewijzigd op 26/05/2010 23:19:14 door Aleks Andr
 
PHP hulp

PHP hulp

22/12/2024 14:45:22
 
Victor Php

Victor Php

26/05/2010 22:32:39
Quote Anchor link
Zet je code even tussen code tags. Dan is het beter leesbaar =)
 
Wesley Overdijk

wesley Overdijk

26/05/2010 22:34:50
Quote Anchor link
Als het plaatsen van code niet echt lukt, probeer dan een website als pastie of pastebin, of pastebay te gebruiken. Dan is het leesbaar. het eerste waar ik over struikel is het ereg gedeelte. al zal dit wel weer iets persoonlijks zijn.... het zetten van je ini zal niet nodig zijn, maar kan leuk zijn als je er een class van maakt. en verder heb ik geen zin om er op in te gaan... het is nogal, meeh.. maar zoals je zei, je begint net. Dus zo vreselijk is het niet. wel raad ik je aan om de basics eens goed onder de arm te nemen.

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
 
Johan K

Johan K

27/05/2010 10:29:47
Quote Anchor link
$_POST is een array, ik zou bij dit specifiek script dit door gaan loopen en kijken wat is gezet, etc.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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";
}


?>
Gewijzigd op 27/05/2010 10:32:22 door Johan K
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.