html contact form validatie code werkt nie goed!
deze email validation code werkt goed:
Code (php)
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
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
<?php
// define variables and set to empty values
$nameErr = $emailErr = $phoneErr = "";
$name = $email = $phone = $message =$success="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["phone"])) {
$phoneErr = "phone is required";
} else {
$phone = test_input($_POST["phone"]);
// check if phone only contains Invalid phone number
if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
$phoneError = "Invalid phone number";
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
// define variables and set to empty values
$nameErr = $emailErr = $phoneErr = "";
$name = $email = $phone = $message =$success="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["phone"])) {
$phoneErr = "phone is required";
} else {
$phone = test_input($_POST["phone"]);
// check if phone only contains Invalid phone number
if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
$phoneError = "Invalid phone number";
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
ik heb het van w3schools gevonden en bestudeert.
maar wanneer ik deze synax toevoegen :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if ($name_error=='' and $email_error=='' and $phone_error=='') {
$message_body='';
unset($_POST['submit']);
foreach($POST as $key => $value) {
$message_body .= "$key:$value\n";
}
$to='[email protected]'
$subject='Contact For Submit'
if ($mail($to,$subject,$message)) {
$success="Message Sent,thank you for contacting us!" ;
$name=$email=$phone=$message=''
}
}
?>
if ($name_error=='' and $email_error=='' and $phone_error=='') {
$message_body='';
unset($_POST['submit']);
foreach($POST as $key => $value) {
$message_body .= "$key:$value\n";
}
$to='[email protected]'
$subject='Contact For Submit'
if ($mail($to,$subject,$message)) {
$success="Message Sent,thank you for contacting us!" ;
$name=$email=$phone=$message=''
}
}
?>
ik krijg deze melding: Er heeft zich een kritieke fout voorgedaan op deze site.
ik heb alleen de eerste lijn van syntax geplakt
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
</php
if ($name_error=='' and $email_error=='' and $phone_error=='') {
$message_body='';
unset($_POST['submit']);
foreach($POST as $key => $value) {
$message_body .= "$key:$value\n";
}
?>
if ($name_error=='' and $email_error=='' and $phone_error=='') {
$message_body='';
unset($_POST['submit']);
foreach($POST as $key => $value) {
$message_body .= "$key:$value\n";
}
?>
en ik zie dat de fout ligt hier . wat het kan de fout zijn?
ik heb in mij html code:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<fieldset>
<input placeholder="Your name" type="text" name="name" value="name" tabindex="1" autofocus=""></fieldset>
<fieldset> <input placeholder="Your Email Address" type="text" name="email" value="$email" tabindex="2"></fieldset>
<fieldset> <input placeholder="Your phone" type="text" name="phone" value="phone" tabindex="3"></fieldset>
<fieldset>
<textarea placeholder="Type your Message Here...." type="text" name="message" value="message" tabindex="4"></textarea></fieldset>
<input placeholder="Your name" type="text" name="name" value="name" tabindex="1" autofocus=""></fieldset>
<fieldset> <input placeholder="Your Email Address" type="text" name="email" value="$email" tabindex="2"></fieldset>
<fieldset> <input placeholder="Your phone" type="text" name="phone" value="phone" tabindex="3"></fieldset>
<fieldset>
<textarea placeholder="Type your Message Here...." type="text" name="message" value="message" tabindex="4"></textarea></fieldset>
ik heb al key value gezet boven in html.en ik ook 2 klassen gemaakt voor error en success.
ik ga deze syntax weghalen dan kunt u mij website zien.
url is : https://webdesignleren.com/contact/
hoe ik kan deze probleem oplossen of mischien iemand kan corrigeren voor mij deze code?
dank u wel
Laat desnoods even een screenshot zien.
Ik krijg overigens dit te zien:
Oops! That page can’t be found.
je verwijst naar /action_contact.php, en die voorste slash geeft aan dat die in de webroot moet zoeken, en dus niet in de /contact directory waarin je dit wilt uitvoeren.
Gewijzigd op 04/07/2022 19:54:11 door - Ariën -
ik heb paar keer geluisterd.
de url is :https://www.youtube.com/watch?v=1CkBsGhux9U&t=1258s
het werkt helemaal goed in de clip.
plus ik heb eerste gedeelte van de code in w3schools gevonden: https://www.w3schools.com/php/php_form_complete.asp
Dat is geen antwoord op mijn vraag.
Verder misschien even expliciet PHP foutmeldingen aanzetten?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// aan het begin van je code
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
// aan het begin van je code
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Gewijzigd op 04/07/2022 20:16:58 door Frank Nietbelangrijk
Ik zou dit zeker gescheiden houden.
plus ik heb in html action weg gedaan.
hier is html code :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<div class="container">
<form id="contact" method="post">
<h3>Quick Contact</h3>
<h4>Contact us today, and get reply with in 24 hours!</h4>
<fieldset>
<input placeholder="Your name" type="text" name="name" value="name" tabindex="1" autofocus=""></fieldset>
<fieldset> <input placeholder="Your Email Address" type="text" name="email" value="$email" tabindex="2"></fieldset>
<fieldset> <input placeholder="Your phone" type="text" name="phone" value="phone" tabindex="3"></fieldset>
<fieldset>
<textarea placeholder="Type your Message Here...." type="text" name="message" value="message" tabindex="4"></textarea></fieldset>
<fieldset>
<button name="submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button></fieldset>
<form id="contact" method="post">
<h3>Quick Contact</h3>
<h4>Contact us today, and get reply with in 24 hours!</h4>
<fieldset>
<input placeholder="Your name" type="text" name="name" value="name" tabindex="1" autofocus=""></fieldset>
<fieldset> <input placeholder="Your Email Address" type="text" name="email" value="$email" tabindex="2"></fieldset>
<fieldset> <input placeholder="Your phone" type="text" name="phone" value="phone" tabindex="3"></fieldset>
<fieldset>
<textarea placeholder="Type your Message Here...." type="text" name="message" value="message" tabindex="4"></textarea></fieldset>
<fieldset>
<button name="submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button></fieldset>
ik denk het probleem ligt bij deze lijn :
Code (php)
ik denk de value of key als ik de value weghaald in html hoe moet deze code aangepast worden ?
mischien hier wordt het probleem opgelost!
contact form hoort ook bij php in w3schools.
ik begrijpte niet wat bedoeld u precies met screenshot.
ik heb ook ecpliciet foutmeldingen aangezet.
u kunt nu naar deze url gaan:https://webdesignleren.com/contact/
dank u wel
Screenshot is een afdruk van je scherm.
En dit gebeurt er dus!
en dit:
Graag even concreet reageren! Anders wordt de hulp behoorlijk vermoeiend.
En dit gebeurt er dus!
- Ariën - op 04/07/2022 19:50:31:
Ik heb geen idee waar die melding vandaan komt. Waar zie je dat staan?
Laat desnoods even een screenshot zien.
Ik krijg overigens dit te zien:
Oops! That page can’t be found.
je verwijst naar /action_contact.php, en die voorste slash geeft aan dat die in de webroot moet zoeken, en dus niet in de /contact directory waarin je dit wilt uitvoeren.
Laat desnoods even een screenshot zien.
Ik krijg overigens dit te zien:
Oops! That page can’t be found.
je verwijst naar /action_contact.php, en die voorste slash geeft aan dat die in de webroot moet zoeken, en dus niet in de /contact directory waarin je dit wilt uitvoeren.
en dit:
- Ariën - op 04/07/2022 20:27:44:
Ik zie dat je ook Wordpress gebruikt, maar met welke reden meng je dit met het leren van PHP?
Ik zou dit zeker gescheiden houden.
Ik zou dit zeker gescheiden houden.
Graag even concreet reageren! Anders wordt de hulp behoorlijk vermoeiend.
Gewijzigd op 04/07/2022 20:50:44 door - Ariën -
dank u wel
www.imgbb.com, en de URL of BB-code kan je hier plaatsen.
Die kan je uploaden op dank u wel
https://webdesignleren.com/contact/
https://webdesignleren.com/contact/?name=
Werkt prima
https://webdesignleren.com/contact/?name=jan
Pagina niet gevonden.
Dat lijkt met dus een Wordpress issue maar gelukkig heb ik daar geen verstand van ;-)
Los van het feit dat dit niet op die manier hoort (wordpress werkt met plugins), geef ik ook grote kans dat Wordpress roet in het eten gooit.
Dus mijn dringende advies: Als je PHP wilt proberen, doe dit dan buiten een Wordpress omgeving.
Gewijzigd op 04/07/2022 21:11:56 door - Ariën -
hartelijke bedankt iedere geval.
u hebt typo gezien in $_POST
Toevoeging op 04/07/2022 21:14:55:
ik dank iedereen iedere geval,
hartelijke bedankt
ik zoek morgen verder ik heb toch paar fouten gezien dank zij jullie.
bedankt
Johannes davidian op 04/07/2022 21:07:46:
ik heb upload gedaan. daarna voor zekerheid url versuurd maar ik merk niks.
dank u wel
dank u wel
Wat is de URL? Als je die niet deelt, dan kunnen we vrij weinig.
dat is :
https://webdesignleren.com/
https://webdesignleren.com/contact/
Toevoeging op 04/07/2022 21:52:53:
ik wil alleen weten wat deze syntax precies bedoeld : unset($_POST['submit']);
ik weet dat unset betekent destroy maar wat wordt precies bedoeld met $_POST submit.
dank u wel
Johannes davidian op 04/07/2022 21:33:01:
ik heb de url meerdere malen laten zien
dat is :
https://webdesignleren.com/
https://webdesignleren.com/contact/
dat is :
https://webdesignleren.com/
https://webdesignleren.com/contact/
We hebben het over ene upload van je screenshot waarop die 'kritieke fout' stond.
Dat zijn de links naar je site.
Quote:
ik wil alleen weten wat deze syntax precies bedoeld : unset($_POST['submit']);
ik weet dat unset betekent destroy maar wat wordt precies bedoeld met $_POST submit.
dank u wel
ik weet dat unset betekent destroy maar wat wordt precies bedoeld met $_POST submit.
dank u wel
Ik weet zeker dat het misschien beter is om gewoon een tutorial erbij te pakken, en netjes bij het begin te beginnen totdat je bij het hoofdstuk, vermoedelijk deel 3, uitkomt waar GET en POST worden besproken.
Gewijzigd op 04/07/2022 22:15:23 door - Ariën -
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
?>
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
?>
Dus een naam bevat de letters A tm Z (al dan niet in hoofdletters), een koppelteken en/of een spatie. Ook een apostrof is toegestaan.
Toegegeven, is al beter dan de A-Z die je vaak tegen komt, maar hoe zit het met mensen met een é of ö in de naam? of een ð danwel ç ?
telefoon:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
$phoneError = "Invalid phone number";
?>
if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
$phoneError = "Invalid phone number";
?>
een Nederlands telefoonnummer bevat 10 cijfers, of als je +31 er voor zet, zijn dat er 12
Dit zijn er 3+4+4 = 11 met op merkwaardige plaatsen een koppelteken
Toevoeging op 05/07/2022 09:37:57:
En die ð : dat werd een keer op een PHP congres aangedragen door een spreker uit IJsland die ook daadwerkelijk die letter in zijn naam had staan.
Eigenlijk moet je bij namen enkel valideren of de voornaam en achternaam ingevuld is.
Johannes davidian op 04/07/2022 20:44:21:
Je doet:
maar je submit button heeft als name attribuut "form_submit"
Code (php)
1
<button name="form_submit" type="submit" id="contact-submit" data-submit="...Sending">Submit</button>
Zelf geef ik een submit button nooit een name, bijna nooit nodig:
dan kun je dit weghalen uit jouw code:
Als je de name van je submit button hetzelfde wilt blijven houden, dan kun je dit doen:
Gewijzigd op 05/07/2022 19:09:39 door Jan Koehoorn
het komt omdat ik heb de code gewijzigd naar deze:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
function form_capture() {
if(isset($_POST['form_submit']))
{
$name=sanitize_text_field ($_POST['name']);
$email=sanitize_text-field ($_POST ['email']) ;
$phone=sanitize_text-field ($_POST ['phone']);
$message=sanitize_textarea-field ($_POST ['message']);
$to='[email protected]';
$subject='Test Form Submission';
$message= '' .$name.'-' .$email. '-' .$phone. '-' .$message ;
wp_mail($to,$subject,$message);
}
}
add_action('wp_head','form_capture') ;
if(isset($_POST['form_submit']))
{
$name=sanitize_text_field ($_POST['name']);
$email=sanitize_text-field ($_POST ['email']) ;
$phone=sanitize_text-field ($_POST ['phone']);
$message=sanitize_textarea-field ($_POST ['message']);
$to='[email protected]';
$subject='Test Form Submission';
$message= '' .$name.'-' .$email. '-' .$phone. '-' .$message ;
wp_mail($to,$subject,$message);
}
}
add_action('wp_head','form_capture') ;
deze code doet wel maar het stuurt en ontvangt geen email. het kan zijn dat ik hotmail gebruikt.
ik moet morgen speciale plug in installeren voor deze probleem.
als zou het verkeer gaan ik zou beginnen vanaf begin coderen met mij eigen style.
ik wardeer de advies van Ivo P over en Nederlands telefoonnummer.
1- wat is de aanpasing code dan voor Nederland met 12 cijfers?
2-(Toegegeven, is al beter dan de A-Z die je vaak tegen komt, maar hoe zit het met mensen met een é of ö in de naam? of een ð danwel ç ?)
A- wat is de aanpasing code dan voor deze probleem?
dank u wel
Gewijzigd op 05/07/2022 20:17:47 door - Ariën -