E-mail adres versturen met PHP naar email

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruud van Gerven

Ruud van Gerven

02/09/2010 15:49:44
Quote Anchor link
Hallo Allemaal!

Ik ben nieuw op deze community en een extreme beginner op het gebied van programmeren :)

Ik hoop dat jullie mij kunnen helpen met het volgende probleem: Op een html pagina zou ik graag een veldje plaatsen waar de bezoekers hun e-mail adres kunnen invullen en daarna versturen. Online heb ik een voorbeeld contact form gevonden die met behulp van een html en php document informatie doorstuurt naar een e-mail adres. Helaas heeft dit voorbeeld formulier meer velden dan ik nodig heb zoals naan/telefoon/etc. Ik heb zelf een poging gedaan om in de html en php code deze velden te verwijderen zodat alleen het email adres wordt gemailed maar helaas krijg ik dit niet werkende. Bij de originele versie krijg ik het bericht dat het juist verstuurd is, zodra het php document wordt opgeroepen. Na het verwijderen van de velden krijg ik een blanco pagina te zien zodra de php wordt opgeroepen en ontvang ik geen email.

Dit zijn de 2 files:
contactform.htm
Quote:
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="first_name">First Name *</label>
</td>
<td valign="top">
<input type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>

<tr>
<td valign="top"">
<label for="last_name">Last Name *</label>
</td>
<td valign="top">
<input type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">Email Address *</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="80" size="30">
</td>

</tr>
<tr>
<td valign="top">
<label for="telephone">Telephone Number</label>
</td>
<td valign="top">
<input type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="comments">Comments *</label>
</td>
<td valign="top">
<textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>

</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit"> <a href="http://www.freecontactform.com/email_form.php">Email Form</a>
</td>
</tr>
</table>
</form>




send_form_email.php
Quote:
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
<?php
if(isset($_POST['email'])) {
    
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "your email";
    $email_subject = "form test";
    
    
    function
died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form your submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !
isset($_POST['last_name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['telephone']) ||
        !
isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form your submitted.');        
    }

    
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
      $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }

    $string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$first_name)) {
      $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }

  if(!eregi($string_exp,$last_name)) {
      $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }

  if(strlen($comments) < 2) {
      $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }

  $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$telephone)) {
      $error_message .= 'The Telphone Number you entered does not appear to be valid.<br />';
  }

  if(strlen($error_message) > 0) {
      died($error_message);
  }

    $email_message = "Form details below.\n\n";
    
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    
    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
    
    
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@
mail($email_to, $email_subject, $email_message, $headers);  
?>


<!-- include your own success html here -->

Thank you for contacting us. We will be in touch with you very soon.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>


Zouden jullie mij kunnen laten zien hoe ik de code dien aan te passen?

Alvast bedankt!

Grtz Ruud
 
PHP hulp

PHP hulp

10/01/2025 21:25:11
 
Obelix Idefix

Obelix Idefix

02/09/2010 16:59:48
Quote Anchor link
Volgens mij zou je met onderstaande een heel eind moeten komen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
<tr>
    <td valign="top"><label for="email">Email Address *</label></td>
    <td valign="top"><input type="text" name="email" maxlength="80" size="30"></td>
</tr>
</table>
</form>


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
<?php
if(isset($_POST['email']))
{

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "your email";
    $email_subject = "form test";
    
    function
died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form your submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['email'])
    {

        died('We are sorry, but there appears to be a problem with the form your submitted.');        
    }


    $email_from = $_POST['email']; // required
    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
    if(!eregi($email_exp,$email_from)) {
      $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }


  if(strlen($error_message) > 0) {
      died($error_message);
  }

    $email_message = "Form details below.\n\n";
    
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    
    $email_message .= "Email: ".clean_string($email_from)."\n";
    
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@
mail($email_to, $email_subject, $email_message, $headers);  
}

?>


Of het verstandig is dit script te gebruiken is een ander verhaal. Je code is 'oud' (functie eregi is vervallen vanaf php 5.3.0), geen/weinig controle, etc. Gebruik van @ onderdrukt foutmelding; niet altijd wenselijk, zorg voor goede foutafhandeling.
 



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.