Mijn php script werk niet naar behoren. Help

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Greg Wing

Greg Wing

09/11/2013 07:58:49
Quote Anchor link
Op welke regel moet dat invoeren in mijn script. Aar
 
PHP hulp

PHP hulp

25/11/2024 22:15:39
 
- Ariën  -
Beheerder

- Ariën -

09/11/2013 09:04:47
Quote Anchor link
Zet bijvoorbeeld bovenaan.
 
Greg Wing

Greg Wing

09/11/2013 09:42:33
Quote Anchor link
Ik heb het bovenaan gezet maar nog steeds geen email ontvangen
 
- Ariën  -
Beheerder

- Ariën -

09/11/2013 09:43:32
Quote Anchor link
Logisch, want zoals ik al in dit topic zei, moet dit wat vermelden.

WAT vermeldt dit?
En waar voer je dit script uit? Eigen lokale server op localhost? Online op een webhosting?
Gewijzigd op 09/11/2013 09:44:06 door - Ariën -
 
Greg Wing

Greg Wing

09/11/2013 10:07:49
Quote Anchor link
Op een webhosting
 
- Ariën  -
Beheerder

- Ariën -

09/11/2013 10:44:05
Quote Anchor link
Hoe mail je nu? Laat eens al je relevante code zien?
 
Greg Wing

Greg Wing

09/11/2013 11:17:17
Quote Anchor link
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
  
    var_dump(ini_get('SMTP'));
    // CHANGE THE TWO LINES BELOW
    $email_to = "[email protected]";
    $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['telephone']) ||
        !
isset($_POST['mail']) ||
        !
isset($_POST['comments'])) {
        died('Sorry, Er is een probleem bij het opsturen van het formulier.');        
    }

    
    $first_name = $_POST['name']; // required
    $telephone = $_POST['telephone']; // not 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);
  }

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

    
       $message .= "Naam: ".clean_string($first_name)."\n";
    $message .= "Telephone: ".clean_string($telephone)."\n";
    $message .= "Email: ".clean_string($email_from)."\n";
    $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();
$success = mail($email_to, $email_subject, $email_message, $headers);  
  if ($success)    
  {
    
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';    
      exit;    
  }
    
die();

?>



Toevoeging op 09/11/2013 11:18:08:

Bij $email_to staat natuurlijk mijn email
 
- SanThe -

- SanThe -

09/11/2013 11:35:25
 
Greg Wing

Greg Wing

09/11/2013 12:25:37
Quote Anchor link
Ja maar ik kan mijn formulier niet gebruiken met deze script. SanThe
 
- SanThe -

- SanThe -

09/11/2013 12:31:04
Quote Anchor link
Je kan het toch aanpassen.
Je From is niet correct.
 
Jack Maessen

Jack Maessen

09/11/2013 13:45:38
Quote Anchor link
uitgaande van jouw form in je eerste post blijf je een error krijgen omdat je checked op "telephone" terwijl dat veld in je form niet bestaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
// validation expected data exists
    if(!isset($_POST['name']) ||
        !isset($_POST['telephone']) || // deze moet op non actief
        !isset($_POST['mail']) ||
        !isset($_POST['comments'])) {
        died('Sorry, Er is een probleem bij het opsturen van het formulier.');        
    }
Gewijzigd op 09/11/2013 13:47:23 door Jack Maessen
 
Greg Wing

Greg Wing

09/11/2013 14:05:02
Quote Anchor link
Ik heb telephone toegevoegd aan het form en aan het script.
Maar kunnen jullie mij vertellen waarom als ik mijn email invult op het formulier word het formulier naar dat adres gestuurd inplaats van $email_to
 
Jack Maessen

Jack Maessen

09/11/2013 15:06:44
Quote Anchor link
in je mail command staan 2 parameters verkeerd; $email_subject, $email_message
Deze 2 variabelen staan nergens in je script en zijn leeg.
Je krijgt hier ook een error op van undefined variablele, maar omdat je een meta refresh op de $success hebt staan, komen die niet in beeld (anders had je ze gezien).

$email_subject moet zijn: $subject
$email_message moet zijn: $message

Omdat deze leeg waren, heeft je email geen onderwerp en geen bericht in zich. Een beetje spamprotector houdt ze dus tegen en laat ze in de spambox verdwijnen. Nou kan het zijn dat de Reply wel doorkomt omdat hij ze toevallig niet ziet alszijnde spam. Dat verklaart waarom de emails wel bij de afzender doorkomen maar niet bij jou.

Dus: verander je mail() regel naar deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$success = mail($email_to, $subject, $message, $headers);


Nu zouden de mails bij jou binnen moeten komen omdat ze onderwerp en bericht bevatten en niet meer als spam gezien worden
Gewijzigd op 09/11/2013 15:10:32 door Jack Maessen
 
Greg Wing

Greg Wing

09/11/2013 21:51:34
Quote Anchor link
Ik heb nu deze script gemaakt en die werkt maar er zit geen handler in om fouten in het formulier op te sporen.

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

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


$to = "[email protected]";
$subject = "Website-formulier";

  
$message = <<<EMAIL

Formulier gegevens hieronder

Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments

EMAIL
;


$success = mail($to, $subject, $message);  
  if ($success)    
  {
    
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';    
      exit;    
  }
    
die();

?>
Gewijzigd op 09/11/2013 21:52:36 door Greg Wing
 
- Ariën  -
Beheerder

- Ariën -

09/11/2013 22:13:15
Quote Anchor link
Met mail() kan er weinig gedebugged worden. je kan hoogstens een foutmelding tonen als mail() false is.
Anders moet je eens kijken naar phpMailer.
 
Greg Wing

Greg Wing

10/11/2013 10:16:48
Quote Anchor link
Bedankt voor de reacties maar dit is mijn script geworden.

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

$to
= "[email protected]";
$subject = "Website-formulier";

function
died($error) {
        // je foutbericht staat hier
        echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Het spijt ons, vanwege een fout is het formulier niet verzonden.</p>";
        echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Deze fout(en) tonen zich hieronder.</p><br /><br />";
        echo $error."<br /><br />";
        echo "<p style ='font:18px/24px Arial,tahoma,sans-serif;color:#ff0000'>Ga aub terug om de velden correct in te vullen.</p><br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['name']) ||
        !
isset($_POST['telephone']) ||    
        !
isset($_POST['email']) ||
        !
isset($_POST['comments'])) {
        died('Het spijt ons, er is een probleem opgetreden bij het verzenden van het formulier.');        
    }

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

    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email)) {
      $error_message .= 'Het emailadres is niet geldig.<br />';
  }

    $string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$name)) {
      $error_message .= 'De naam is niet ingevult.<br />';
  }

  if(strlen($comments) < 2) {
      $error_message .= 'Het bericht is niet ingevult.<br />';
  }

  $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$telephone)) {
      $error_message .= 'Het telefoonnummer is niet geldig.<br />';
  }

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

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


  
$message = <<<EMAIL

Formulier gegevens hieronder

Naam: $name
Telefoon: $telephone
Email: $email
Bericht: $comments

EMAIL
;

$success = mail($to, $subject, $message);  
  if ($success)    
  {
    
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=succes.html">';    
      exit;    
  }
    
die();

?>
 
Michiel Mussies

Michiel Mussies

10/11/2013 11:48:10
Quote Anchor link
Gebruik van eregi wordt ontmoedigd want zit alleen in oudere php versies.
kijk hier
zie de tip op die pagina:
Quote:
preg_match() with the i (PCRE_CASELESS) modifier is the suggested alternative


Succes
Gewijzigd op 10/11/2013 11:48:47 door Michiel Mussies
 
Jack Maessen

Jack Maessen

10/11/2013 12:07:28
Quote Anchor link
waarom gebruik je geen headers in e mail() functie?
 
Greg Wing

Greg Wing

10/11/2013 15:41:25
Quote Anchor link
Want ik hebt het probeerd maar bij $success = mail($to, $subject, $message, $headers); pakt hij niet de header als ik hem in zet.
 

Pagina: « vorige 1 2



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.