Telefoon nr. komt niet door in mail form script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johnny van den Crommenacker

Johnny van den Crommenacker

19/04/2021 14:35:57
Quote Anchor link
Hoi jullie allen, ik heb een simpele site met daarin een mail form, nu komt alles wat de lezer ingeeft netjes in mijn mail box, alleen het telefoonnr. komt niet door, ipv daarvan staat er alleen een .

Wie ziet waar ik de fout in gegaan ben.
sorry na het editen krijg ik het script niet meer op zijn plaats.
Gewijzigd op 19/04/2021 14:59:20 door Johnny van den Crommenacker
 
PHP hulp

PHP hulp

22/11/2024 08:09:31
 
Ozzie PHP

Ozzie PHP

19/04/2021 14:39:17
Quote Anchor link
$email_body = "U heeft een nieuw bericht van uw Solidsky website contact formulier.\n\n"."Dit zijn de gegevens:\n\nNaam : $name\n\nEmail: $email_address\n\nPhone: $telefoonnr.\n\nBericht:\n$message";

Je gebruikt $telefoonnr ipv $phone
 
- Ariën  -
Beheerder

- Ariën -

19/04/2021 14:40:15
Quote Anchor link
Kan je de code in jouw bericht bewerken door deze tussen de code-tags te plaatsen? Dan is het beter leesbaar. Om spam te voorkomen is het plaatsen van een mailadres ook niet echt handig.
 
Johnny van den Crommenacker

Johnny van den Crommenacker

19/04/2021 14:46:09
Quote Anchor link
thnx Ozzie, het script werkt weer, zou ik dit script nu willen implementeren in andere sites van mij, kan ik dan het gedeelte in de html toevoegen en verwijzen naar beide contact_me files, of moet ik nog andere dingen doen?
 
- Ariën  -
Beheerder

- Ariën -

19/04/2021 14:52:27
Quote Anchor link
Zie mijn vorige bericht over de leesbaarheid.

Dit script kan je prima gebruiken op andere websites. Als je extra formuliervelden wilt toevoegen dan moet je die aan je HTML code toevoegen, en je contact_me.php aanpassen zodat de waardes uit het invoerveld ook gemaild worden.
 
Johnny van den Crommenacker

Johnny van den Crommenacker

19/04/2021 14:55:16
Quote Anchor link
Arien, thnx voor je antwoordt, maar wat bedoel je precies met het aanpassen vd contact_me , bedoel je het email adres waar de mail heen moet en de domein naam waar het vandaan komt?

Toevoeging op 19/04/2021 15:01:24:

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!-- Contact-->
        <section class="page-section" id="contact">
            <div class="container">
                <div class="text-center">
                    <h2 class="section-heading text-uppercase">Contacteer Ons</h2>
                    <h3 class="section-subheading text-muted">Vul hier uw gegevens is en wij nemen contact met u op.</h3>
                </div>
                <form id="contactForm" name="sentMessage" novalidate="novalidate">
                    <div class="row align-items-stretch mb-5">
                        <div class="col-md-6">
                            <div class="form-group">
                                <input class="form-control" id="name" type="text" placeholder="Uw Naam *" required="required" data-validation-required-message="Please enter your name." />
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="form-group">
                                <input class="form-control" id="email" type="email" placeholder="Uw Email *" required="required" data-validation-required-message="Please enter your email address." />
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="form-group mb-md-0">
                                <input class="form-control" id="phone" type="tel" placeholder="Uw telefoon nr. *" required="required" data-validation-required-message="Please enter your phone number." />
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group form-group-textarea mb-md-0">
                                <textarea class="form-control" id="message" placeholder="Uw bericht *" required="required" data-validation-required-message="Please enter a message."></textarea>
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                    </div>
                    <div class="text-center">
                        <div id="success"></div>
                        <button class="btn btn-primary btn-xl text-uppercase" id="sendMessageButton" type="submit">ZEND BERICHT</button>
                    </div>
                </form>
            </div>
        </section>


// contact_me.js

$(function () {
    $(
        "#contactForm input,#contactForm textarea,#contactForm button"
    ).jqBootstrapValidation({
        preventSubmit: true,
        submitError: function ($form, event, errors) {
            // additional error messages or events
        },
        submitSuccess: function ($form, event) {
            event.preventDefault(); // prevent default submit behaviour
            // get values from FORM
            var name = $("input#name").val();
            var email = $("input#email").val();
            var phone = $("input#phone").val();
            var message = $("textarea#message").val();
            var firstName = name; // For Success/Failure Message
            // Check for white space in name for Success/Fail message
            if (firstName.indexOf(" ") >= 0) {
                firstName = name.split(" ").slice(0, -1).join(" ");
            }
            $this = $("#sendMessageButton");
            $this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages
            $.ajax({
                url: "/assets/mail/contact_me.php",
                type: "POST",
                data: {
                    name: name,
                    phone: phone,
                    email: email,
                    message: message,
                },
                cache: false,
                success: function () {
                    // Success message
                    $("#success").html("<div class='alert alert-success'>");
                    $("#success").html("<div class='alert alert-success'>");
                    $("#success > .alert-success")
                        .html(
                            "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;"
                        )
                        .append("</button>");
                    $("#success > .alert-success").append(
                        "<strong>Uw bericht is verzonden. </strong>"
                    );
                    $("#success > .alert-success").append("</div>");
                    //clear all fields
                    $("#contactForm").trigger("reset");
                },
                error: function () {
                    // Fail message
                    $("#success").html("<div class='alert alert-danger'>");
                    $("#success > .alert-danger")
                        .html(
                            "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;"
                        )
                        .append("</button>");
                    $("#success > .alert-danger").append(
                        $("<strong>").text(
                            "Sorry " +
                                firstName +
                                ", Het lijkt dat de mailserver niet reageert, probeer het later opnieuw!"
                        )
                    );
                    $("#success > .alert-danger").append("</div>");
                    //clear all fields
                    $("#contactForm").trigger("reset");
                },
                complete: function () {
                    setTimeout(function () {
                        $this.prop("disabled", false); // Re-enable submit button when AJAX call is complete
                    }, 1000);
                },
            });
        },
        filter: function () {
            return $(this).is(":visible");
        },
    });

    $('a[data-toggle="tab"]').click(function (e) {
        e.preventDefault();
        $(this).tab("show");
    });
});

/*When clicking on Full hide fail/success boxes */
$("#name").focus(function () {
    $("#success").html("");
});

// contact_me.php

<?php
// Check for empty fields
if(empty($_POST['name'])      ||
   empty($_POST['email'])     ||
   empty($_POST['phone'])     ||
   empty($_POST['message'])   ||
   !
filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {

   echo "No arguments Provided!";
   return false;
   }

  
$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));
  
// Create the email and send the message
$to = 'info@*****.com'; // Add your email address in between the '' replacing [email protected] - This is where the form will send a message to.
$email_subject = "Website Contact formulier Solidsky van :  $name";
$email_body = "U heeft een nieuw bericht van uw Solidsky website contact formulier.\n\n"."Dit zijn de gegevens:\n\nNaam : $name\n\nEmail: $email_address\n\nPhone: $phone.\n\nBericht:\n$message";
$headers = "From: noreply@******.nl\n"; // This is the email address the generated message will be from. We recommend using something like [email protected].
$headers .= "Reply-To: $email_address";  
mail($to,$email_subject,$email_body,$headers);
return true;        
?>
Gewijzigd op 19/04/2021 15:02:49 door Johnny van den Crommenacker
 
- Ariën  -
Beheerder

- Ariën -

19/04/2021 15:02:24
Quote Anchor link
Het mailadres en de tekst moet je ook aanpassen bij gebruik op andere websites.
Gewijzigd op 19/04/2021 15:03:08 door - Ariën -
 
Johnny van den Crommenacker

Johnny van den Crommenacker

24/04/2021 11:24:51
Quote Anchor link
Hoi jullie allen weer, ik heb het script nu op diverse van mijn sites geplaatst, werkt allemaal perfect alleen mijn hoofd website, daar lukt t dus niet.
Het form is zichtbaar en ik heb exact als bij de andere pagina's gehandeld maar het form wordt niet verzonden. waar ga ik de fout in? wie weet raad, het betreft www.vereiken.com
 
- Ariën  -
Beheerder

- Ariën -

24/04/2021 11:35:25
Quote Anchor link
Heb je al de error_log bekeken?

Edit:
In de netwerk-tab van mijn broser zie ik dit voorkomen:
Gewijzigd op 24/04/2021 11:51:09 door - Ariën -
 
Johnny van den Crommenacker

Johnny van den Crommenacker

24/04/2021 11:55:31
Quote Anchor link
Arien, pfff, ik had al van alles geprobeerd en ook getest, maar dit is dus weer de oplossing, super bedankt hiervoor.
 
- Ariën  -
Beheerder

- Ariën -

24/04/2021 11:56:46
Quote Anchor link
Daarom bij problemen van een AJAX-script altijd de Netwerk-tab van de browser erbij halen, en kijken wat de aanvraag naar je AJAX-script doet.

https://developer.chrome.com/docs/devtools/network/

Ook Firefox en andere browsers hebben een soortgelijke mogelijkheid.
Gewijzigd op 24/04/2021 11:57:36 door - Ariën -
 
Ivo P

Ivo P

26/04/2021 12:11:02
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $email_address = strip_tags(htmlspecialchars($_POST['email'])); ?>


htmlspecialchars() zal van bijvoorbeeld <b>hoi maken: &lt;b&gt;hoi

strip_tags zal vervolgens geen tags meer aantreffen. Die functie is daarmee nogal overbodig.

--
kijk ook eens naar filter_input.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $email_address = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); ?>


Dat strip niet alleen de rommel, maar valideert ook het formaat van het emailadres. (ik zie nu dat je dat hoger in de code al doet)
Maar er zijn ook varianten op dat filter, bijvoorbeeld FILTER_SANITIZE_SPECIAL_CHARS

zie de examples op https://www.php.net/filter-input
 



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.