mailform werkt niet meer na includen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Mrhocoma

mrhocoma

21/08/2006 11:53:00
Quote Anchor link
Hallo, ik heb een gek probleem ik heb een mailform in de site http://www.mokasol.nl/mail.php
opgenomen.
De mail form wordt "geinclude" in een phppagina:

http://www.mokasol.nl/?actie=contact

nu werkt het form niet als je via deze pagina verstuurd, maar wel als je rechtstreeks de pagina gebruikt?

Het form is verder goed want op diverse vergelijkbare sites die gemaakt zijn met de zelfde opzet (wel op een andere server) werkt het prima

Enig idee hoe dit kan?

de code (volgens mij hier van phphulp):

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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?
// geef e-mail adres op van ontvanger(je eigen mail dus)
$mail_ontv = "hier het mail adres";

// is niet 100% !!!
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;
}


// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{

    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))  
    {

        echo "<p><font color=\"#ff0000\"> U bent vergeten een van de velden vergeten in te vullen.<br /> Naam, e-mail adres, onderwerp of bericht moeten worden ingevuld.<br /> Ook kan het zijn dat u een verkeerd e-mail adres hebt ingevuld.</font></p></p>";
    }

      
    // form + tabel
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
    echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
      
    // naam
    echo "<tr><td>Naam:</td></tr>";
    echo "<tr><td><input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>E-mail adres:</td></tr>";
    echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>Onderwerp:</td></tr>";
    echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>Bericht:</td></tr>";
    echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // button
    echo "<tr><td>&nbsp;</td></tr>";
    echo "<tr><td><input type=\"submit\" name=\"submit\" value=\"Versturen\"></td></tr>";
      
    // sluit form + tabel
    echo "</form>";
    echo "</table>";
}

// versturen naar
else
{      
    // set datum
    $datum = date("d.m.Y H:i");
      
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];
      
    $inhoud_mail = "===================================================\n";
    $inhoud_mail .= "Ingevuld contact formulier\n";
    $inhoud_mail .= "===================================================\n\n";
      
    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= "Bericht:\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";
      
    $inhoud_mail .= "Verstuurd op $datum via het ip " . $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);
    
    // space
    echo "<tr><td>&nbsp;</td></tr>";
    
    echo "<h5>Uw bericht is verstuurd.</h5>";
    
    echo "<p>Bedankt voor uw reaktie / aanvraag.";
    }

?>
 
PHP hulp

PHP hulp

29/04/2024 00:45:30
 
- SanThe -

- SanThe -

21/08/2006 11:56:00
Quote Anchor link
Waarschijnlijk moet je in het form bij action ook de parameter meegeven ?actie=contact
 
Mrhocoma

mrhocoma

21/08/2006 12:03:00
Quote Anchor link
Ok zal het proberen, maar snap niet waarom dat op die andere server dan niet hoefde?

neem aan dat je in dit stukje bedoeld:

"<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
Gewijzigd op 01/01/1970 01:00:00 door mrhocoma
 
- SanThe -

- SanThe -

21/08/2006 12:05:00
Quote Anchor link
"<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "?actie=contact\">";
 
Mrhocoma

mrhocoma

21/08/2006 12:17:00
Quote Anchor link
Santhe, bedankt het werkt nu wel :)
 
- SanThe -

- SanThe -

21/08/2006 12:45:00
Quote Anchor link
Ok. prima.

Uitleg is simpel: In je index.php doe je nu de include van de ?actie=..pagina.. Maar $_SERVER['PHP_SELF'] zal dus index.php geven zonder de ?actie=..pagina.. En om toch weer op je mailform uit te komen moet dat dus bij de link gezet worden.
 



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.