Mijn php script werk niet naar behoren. Help

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Greg Wing

Greg Wing

07/11/2013 16:30:36
Quote Anchor link
Mijn form in html

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
<form name="contactform" action="send_mail.php" method="post">
            <ol>
              <li>
                <label for="name"><strong>Naam</strong> (verplichte veld)</label>
                <input id="name" name="name" class="text" />
              </li>
              </li>
              <li>
                <label for="email"><strong>Email adres</strong> (verplichte veld)</label>
                <input id="mail" name="mail" class="text" />
              </li>
              <li>
                <label for="comments"><strong>Bericht</strong> (verplichte veld)</label>
                <textarea id="comments" name="comments" rows="8" cols="50"></textarea>
              </li>
              <li>
                <input type="image" name="imageField" id="imageField" src="images/submit.gif" class="send" value="submit"/>
                <div class="clr"></div>
              </li>
            </ol>
          </form>


Het php bestand send_mail.php

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
<?php
if(isset($_POST['email'])) {    
  
    // CHANGE THE TWO LINES BELOW
    $email_to = "[email protected]";
    
    $email_subject = "Website-formulier";
    

    function
died($error) {
        // your error code can go here
        echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Sorry, maar er zijn fouten in het formulier.</p><br /><br />";
        echo $error."<br /><br />";
        echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga terug, en vul het formulier opnieuw in.</p><br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['name']) ||
        !
isset($_POST['mail']) ||
        !
isset($_POST['comments'])) {
        died('Sorry, Er is een probleem bij het opsturen van formulier.');        
    }

    
    $first_name = $_POST['name']; // required
    $email_from = $_POST['mail']; // required
    $comments = $_POST['comments']; // required
    
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
      $error_message .= 'Het email dat u heeft ingevult is niet correct.<br />';
  }

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
      $error_message .= 'Uw naam is niet ingevult.<br />';
  }

  if(strlen($comments) < 2) {
      $error_message .= 'U heeft geen bericht ingevult.<br />';
  }

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

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

    
       $email_message .= "Naam: ".clean_string($first_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Bericht: ".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);  

?>

if ($success)    
{    
    echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';    
    exit;    
}    
<?php
}
die();
?>


Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 08/11/2013 11:07:02 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

23/12/2024 00:20:48
 
Victor G

Victor G

07/11/2013 16:34:52
Quote Anchor link
Wat gaat er fout..?
 
Wouter J

Wouter J

07/11/2013 16:38:40
Quote Anchor link
PHPhulp is een robot, jij stopt er code in die 'niet naar behoren werkt' en na een dag komt er code uit die wel werkt.

Op zo'n zelfde manier is de fietsenmaker ook een robot, jij gooit een fiets naar binnen die 'niet naar behoren werkt' en een dag later komt er een fiets uit die werkt.

Denk jij dat deze 2 zinnen waar zijn? Gezien dit topic ben je overtuigt dat de eerste waar is, maar de 2e niet. Waarom zijn wij dan wel robotjes en de fietsenmaker niet? Kun je ons alsjeblieft ook als mensen behandelen, door bijv. zelf wat inzet te tonen en het probleem te omschrijven?
Gewijzigd op 07/11/2013 16:40:37 door Wouter J
 
Greg Wing

Greg Wing

07/11/2013 16:39:05
Quote Anchor link
Als ik het formulier invult bij email, wordt de formulier naar dat email gestuurd. In plaats van $email_to.
 
Kris Peeters

Kris Peeters

07/11/2013 16:55:29
Quote Anchor link
Toon dat formulier eens.
Dan kunnen we zien of de <input> velden overeenkomen met de rest van de code.


Vertel ons eens wat $email_to precies is en wat $_POST['mail'] precies is.
Nu ja, aan dat formulier zullen we dat waarschijnlijk wel merken
 
- Ariën  -
Beheerder

- Ariën -

07/11/2013 17:05:01
Quote Anchor link
Aar:
Zou je a.u.b. je code tussen code-tags kunnen plaatsen door je bericht te bewerken? Dat maakt het overzichtelijker in het topic. Lees hier hoe dat moet.
Alvast bedankt.
 
Kris Peeters

Kris Peeters

07/11/2013 17:11:21
Quote Anchor link
Okay

<label for="email"><strong>Email adres</strong> (verplichte veld)</label>
<input id="mail" name="mail" class="text" />

Wat is dat?
Moet een e-mail naar dit adres gestuurd worden?

Indien ja...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
...
    // CHANGE THE TWO LINES BELOW !!!!!!!!!!
    $email_to = $_POST['mail'];
    $email_from = "[email protected]";
...

?>
 
Greg Wing

Greg Wing

07/11/2013 17:18:20
Quote Anchor link
Ik ga dat effe proberen.
Nee dat wijziging werkt niet. ik krijgt geen email binnen ook niet ongewenst emails
Gewijzigd op 07/11/2013 17:32:42 door Greg Wing
 
Joakim Broden

Joakim Broden

08/11/2013 08:07:29
Quote Anchor link
Zit je op localhost? Dan moet je op je server wel een mailserver instellen.
 

08/11/2013 08:42:59
Quote Anchor link
Precies. Ook als je niet op een Localhost zit kunnen ze de mailserver uit hebben gezet. Waarschijnlijk is dat het probleem.
 
Greg Wing

Greg Wing

08/11/2013 09:19:20
Quote Anchor link
Het is niet de localhost. Deze script werkt wel. Maar dan krijg ik allen wat bij $body staat.

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
<?php

$name
= $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];

$to = "[email protected]";
$subject = "Website-formulier";
$body = "Dit is een automatische bericht. Er kan niet geregeerd worden op deze email.";

mail($to,$subject,$body);

echo "Bericht verzonden!";

?>
Gewijzigd op 08/11/2013 09:20:15 door Greg Wing
 
Kris Peeters

Kris Peeters

08/11/2013 09:38:35
Quote Anchor link
Ja ... je doet niets met de gegevens.

$name, $email en $comments krijgen een waarde, en daarna doe je er niets mee.
 
Michael -

Michael -

08/11/2013 10:21:07
Quote Anchor link
Kijk eens naar mail headers hoe je die andere variabelen ook mee stuurt

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
<?php
// multiple recipients
$to  = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
'
;

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
 
Bas IJzelendoorn

Bas IJzelendoorn

08/11/2013 11:08:08
Quote Anchor link
regel 62 tot en met 68 ziet er niet zo goed uit volgens mij.
 
Kris Peeters

Kris Peeters

08/11/2013 11:21:55
Quote Anchor link
Bas IJzelendoorn op 08/11/2013 11:08:08:
regel 62 tot en met 68 ziet er niet zo goed uit volgens mij.


O ja, inderdaad.

Die zouden er zo moeten uitzien
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
...
// lijn 62 en verder
  $success = @mail($email_to, $email_subject, $email_message, $headers);  
  if ($success)    
  {
    
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';    
      exit;    
  }    
}

die();
?>
 
Greg Wing

Greg Wing

08/11/2013 18:44:24
Quote Anchor link
regel 62 tot met 68 veranderd naar de code hierboven.

Maar script werkt nog steeds niet na behoren. Ik krijg nog steeds geen email binnen.
 
- Ariën  -
Beheerder

- Ariën -

08/11/2013 19:22:25
Quote Anchor link
Haal het @ voor mail() eens weg? Zie je errors?
 
Greg Wing

Greg Wing

08/11/2013 23:11:11
Quote Anchor link
Ik heb @ voor mail() verwijdeerd maar nog steeds geen email binnen gekregen.
 
- Ariën  -
Beheerder

- Ariën -

08/11/2013 23:17:54
Quote Anchor link
En zie je ook geen errors?

Wat meldt dit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump(ini_get('SMTP'));
?>
Gewijzigd op 09/11/2013 00:49:02 door - Ariën -
 
Greg Wing

Greg Wing

09/11/2013 00:01:41
Quote Anchor link
Het is gewoon bij het invullen van het formulier als ik mijn email adres invult wordt het formulier naar dat email adres gestuurd inplaats naar het email adres bij $email_to. Ik heb ook een hidden input met de value email adres geprobeerd maar werkt niet. Het is of dat het script niet begrijpt waarnaar welke email adres hij het formulier moet sturen.
Gewijzigd op 09/11/2013 00:04:35 door Greg Wing
 
- Ariën  -
Beheerder

- Ariën -

09/11/2013 00:48:47
Quote Anchor link
Zie mijn vorige post....
 

Pagina: 1 2 volgende »



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.