Foutmelding in script na wijziging emailadres

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sabine de Jong

Sabine de Jong

13/06/2010 11:55:01
Quote Anchor link
Ik heb het volgende script in een pagina geplaatst. Hij werkt met het emailadres dat er nu in staat, maar als ik het adres wijzig in [email protected] geeft hij de volgende foutmelding: Why ?? :(

Ik zie dat staan in het script, maar waarom geeft hij dit als ik alleen het emailadres maar heb gewijzigd en verder niets aan het script zelf?


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
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
<?php
          function checkmail($mail)
            {

                $email_host = explode("@", $mail);
                $email_host = $email_host['1'];
                $email_resolved = gethostbyname($email_host);
            
                if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
                    $valid = 1;
            
                return $valid;
            }

                                  
            // geef e-mail adres op van ontvanger
            $mail_ontv = "[email protected]"; // [email protected]
            
            // als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is

            if (!$_POST['submit'])
            {
  
                    echo "<form method='post' action='".$PHP_Self."#melding'>";
                    echo "<p>";
                    echo "<label for='1'><font color='#73BE44' size='5px'> Naam </font></label><br/>";
                    echo "<input type='text' id='1' name='naam'>";
                    echo "</p>";
                    echo "<p>";
                    echo "<label for='3'><font color='#73BE44' size='5'> E-mail adres </font></label><br/>";
                    echo "<input type='text' id='3' name='mail'>";
                    echo "</p>";
                    echo "<p>";
                    echo "<label for='4'><font color='#73BE44' size='5'> Reactie: </font></label><br/>";
                    echo "<TEXTAREA class=forms name='msggs' id='4' ROWS='8' COLS='32'>" . htmlentities($_POST['msggs']) . "</TEXTAREA>";
                    echo "<p>";
                    echo "<label>&nbsp;</label><input type='submit' name='submit' value='Verstuur' class='button'>";
                    echo "</p>";
                    echo "</form>";                        
    }
  
    // versturen naar
    else  
    {      
            
    // onderwerpregel van de mail naar arieblok.nu
    $onderwerp = 'Contactformulier van arieblok.nu';
    $_POST['onderwerp'] = $onderwerp;

    // set datum
    $datum = date("d.m.Y H:i");
    
    $from = $_POST["naam"];
    $from = urldecode($from);
    if (eregi("\r",$from) || eregi("\n",$from)){
     die("Why ?? :(");
     }

    $emailadress = $_POST["mail"];
    $emailadress = urldecode($emailadress);
    if (eregi("\r",$emailadress) || eregi("\n",$emailadress)){
     die("Why ?? :(");
     }

     $message = $_POST["msggs"];
    $message = urldecode($message);
    if (eregi("\r",$message) || eregi("\n",$message)){
     die("Why ?? :(");
     }

  
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];  
      
    $inhoud_mail .= "===================================================\n";
    $inhoud_mail .= "INGEVULD CONTACT FORMULIER OP ARIEBLOK.NU\n\n";  
    $inhoud_mail .= "===================================================\n\n";  
      
    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";  
      
    $inhoud_mail .= "Verstuurd op $datum via het ip address " . $ip . "\n\n";  
      
    $inhoud_mail .= "===================================================\n\n";  
                
    // --------------------
    // spambot protectie
    // ------
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
    // ------

    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
                    
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n
    $headers = str_replace("\r", "", $headers); // Verwijder \r
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
    
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
                                
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);  
      
    echo "<b>Bedankt voor je reactie!</b>";      
    }

?>

</p>

Alvast bedankt voor jullie tijd en antwoord.

Sabine
 
PHP hulp

PHP hulp

29/03/2024 10:01:46
 
Dennis meijer

dennis meijer

13/06/2010 11:59:22
Quote Anchor link
zo moet die het gaan doen waarschijnlijk;)


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
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
<?php
          function checkmail($mail)
            {

                $email_host = explode("@", $mail);
                $email_host = $email_host['1'];
                $email_resolved = gethostbyname($email_host);
            
                if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
                    $valid = 1;
            
                return $valid;
            }

                                  
            // geef e-mail adres op van ontvanger
            $mail_ontv = "[email protected]"; // [email protected]
            
            // als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is

            if (!$_POST['submit'])
            {
  
                    echo "<form method='post' action='".$PHP_Self."#melding'>";
                    echo "<p>";
                    echo "<label for='1'><font color='#73BE44' size='5px'> Naam </font></label><br/>";
                    echo "<input type='text' id='1' name='naam'>";
                    echo "</p>";
                    echo "<p>";
                    echo "<label for='3'><font color='#73BE44' size='5'> E-mail adres </font></label><br/>";
                    echo "<input type='text' id='3' name='mail'>";
                    echo "</p>";
                    echo "<p>";
                    echo "<label for='4'><font color='#73BE44' size='5'> Reactie: </font></label><br/>";
                    echo "<TEXTAREA class=forms name='msggs' id='4' ROWS='8' COLS='32'>" . htmlentities($_POST['msggs']) . "</TEXTAREA>";
                    echo "<p>";
                    echo "<label>&nbsp;</label><input type='submit' name='submit' value='Verstuur' class='button'>";
                    echo "</p>";
                    echo "</form>";                        
    }
  
    // versturen naar
    else  
    {      
            
    // onderwerpregel van de mail naar arieblok.nu
    $onderwerp = 'Contactformulier van arieblok.nu';
    $_POST['onderwerp'] = $onderwerp;

    // set datum
    $datum = date("d.m.Y H:i");
    
    $from = $_POST["naam"];
    $from = urldecode($from);
    if (eregi("\r",$from) || eregi("\n",$from)){
     die("Why ?? :(");
     }

    $emailadress = $_POST["mail"];
    $emailadress = urldecode($emailadress);

     $message = $_POST["msggs"];
    $message = urldecode($message);
    if (eregi("\r",$message) || eregi("\n",$message)){
     die("Why ?? :(");
     }

  
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];  
      
    $inhoud_mail .= "===================================================\n";
    $inhoud_mail .= "INGEVULD CONTACT FORMULIER OP ARIEBLOK.NU\n\n";  
    $inhoud_mail .= "===================================================\n\n";  
      
    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";  
      
    $inhoud_mail .= "Verstuurd op $datum via het ip address " . $ip . "\n\n";  
      
    $inhoud_mail .= "===================================================\n\n";  
                
    // --------------------
    // spambot protectie
    // ------
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
    // ------

    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
                    
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n
    $headers = str_replace("\r", "", $headers); // Verwijder \r
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
    
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
                                
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);  
      
    echo "<b>Bedankt voor je reactie!</b>";      
    }

?>
 
Ivo K

Ivo K

13/06/2010 12:01:32
Quote Anchor link
Je zou ten eerste een wat specifiekere foutmelding kunnen inbouwen. Verder lijkt mij dat je bij check_mail() een fout maakt. Je gebruikt een integer als index in je array, maar daar zet je vervolgens quotes omheen alsof het een string is. Verder snap ik niet geheel waar die functie voor is. De functie eregi raakt verouderd, gebruik liever preg. Als laatst adviseer ik je om een class als Swiftmailer te gebruiker voor een mail script, in plaats van mail.
 
Milo S

Milo S

13/06/2010 12:05:21
Quote Anchor link
Kijken of er gesubmit is doe je met:
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // Ontvanger
    $aan = '[email protected]';
    
    // Fouten opzoeken.
    $errors[] = (isset($_POST['naam'])) ? 'naam';
    $errors[] = (isset($_POST['email'])) ? 'e-mail';
    $errors[] = (isset($_POST['onderwerp'])) ? 'onderwerp';
    $errors[] = (isset($_POST['bericht'])) ? 'bericht';
    
    // Er zijn errors dus fouten weergeven.
    if(!empty($errors))
    {

        echo 'De volgende fouten zijn gevonden: <br /><br />';
        
        foreach($errors as $error)
        {

            echo 'U bent vergeten een geldige '.$error.' in te vullen. <br />';
        }
    }

    else
    {
        // Opmaak van het bericht maken.
        $bericht = '===================================================\n';
        $bericht .= 'Contact formulier Arieblok.nu \n\n';  
        $bericht .= '===================================================\n\n';  
              
        $bericht .= 'Naam: '.$_POST['naam'].'\n';
        $bericht .= 'E-Mail: '.$_POST['email'].'\n';
        $bericht .= 'Bericht: '.$_POST['bericht'].'\n\n';
        
        $bericht .= 'Verstuurd op: '.date('d-m-Y H:i').'\n';
        $bericht .= 'Verstuurd via het ip address: '.$_SERVER['REMOTE_ADDR'].'\n\n';
        $bericht .= '===================================================\n\n';  
        
        // Headers aanmaken
        $headers = 'From: '.$_POST['naam'].' <'.$_POST['email'].'>';
        $headers = stripslashes($headers);
        $headers = str_replace('\n', '', $headers);                                // Verwijder \n
        $headers = str_replace('\r', '', $headers);                                // Verwijder \r
        $headers = str_replace('\'', '\\\'', str_replace('\\', '\\\\', $headers)); // Slashes van quotes
        
        // Bericht zenden en opvangen.

        $msg = mail($aan, $_POST['onderwerp'], $bericht, $headers);
        
        if($msg)
        {

            echo 'Het bericht is verzonden.';
        }

        else
        {
            echo 'Er is een fout opgetreden bij het verzenden van het bericht.';
        }
    }
}

else
{
    echo '<form action="" method="POST">';
        // Naam
        echo '<label for="1">Naam:</label>';
        echo '<input id="1" name="naam" type="text" />';
        
        // E-mail
        echo '<label for="2">E-mail:</label>';
        echo '<input id="2" name="email" type="text" />';
        
        // Onderwerp
        echo '<label for="3">Onderwerp:</label>';
        echo '<input id="3" name="onderwerp" type="text" />';
        
        // Bericht
        echo '<label for="4">Bericht</label>';
        echo '<textarea id="4" name="bericht"></textarea>';
        
        //Knoppen
        echo '<label></label>';
        echo '<input type="submit" value="Verstuur" />';
    echo '</form>';
}

?>
Gewijzigd op 13/06/2010 16:06:09 door Milo S
 
Sabine de Jong

Sabine de Jong

13/06/2010 12:49:21
Quote Anchor link
Tjonge, wat zijn jullie snel! Dank je wel voor alle antwoorden.

@ Dennis; wat heb je nu aangepast? Dan kan ik het de volgende keer zelf oplossen misschien. Het was iets doms zeker.....
@Ivo; dank je voor jouw tips. Het was een bestaand scriptje op een bestaande website, en het werkte eerst, dus ik dacht het kan nog wel. Zal jouw opmerkingen meenemen.
@Milo Dank je wel voor je moeite van het herschrijven. Ik ben dus duidelijk niet echt thuis in php. Dus ik zal proberen of ie het doet, maar het uitbreiden van de beveiliging zit er niet in. Of kan ik dan gebruiken wat er in het oude script stond?

Allemaal bedankt tot zover!
Sabine
 
Sabine de Jong

Sabine de Jong

13/06/2010 12:54:28
Quote Anchor link
@Dennis: ik heb jouw script erin geplakt, maar dezelfde fout.
 
- SanThe -

- SanThe -

13/06/2010 14:01:36
Quote Anchor link
Zet error_reporting(E_ALL) aan en maak duidelijke foutmeldingen.
 
Sabine de Jong

Sabine de Jong

13/06/2010 14:05:03
Quote Anchor link
Hoi San,

Kun je me daarmee helpen, want zoals ik al eerder schreef was dit bestaand op een bestaande website en weet ik eigenlijk nog niet half wat er staat?
 
Ivo K

Ivo K

13/06/2010 14:40:26
Quote Anchor link
Wat je doet is elke foutmelding "Why ?? :(" maken en daarna meteen je script afsluiten. Dat is niet erg overzichtelijk. Beter is "Error: Opdracht X ging mis op regel 1".

Verder geeft SanThe nog de error reporting die al standaard in PHP zit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set("display_errors",1);
error_reporting(E_ALL);

#| HIER PAS DE CODE VAN DE SITE. DIT MOET HELEMAAL BOVENAAN.
?>
 
Sabine de Jong

Sabine de Jong

13/06/2010 19:49:33
Quote Anchor link
Dank je wel!
 



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.