Hallo,
deze email validation code werkt goed:



<?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;
}

?>




ik heb het van w3schools gevonden en bestudeert.

maar wanneer ik deze synax toevoegen :



<?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=''
		}
	
	}
	
?>




ik krijg deze melding: Er heeft zich een kritieke fout voorgedaan op deze site.

ik heb alleen de eerste lijn van syntax geplakt

</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";
			
		}
?>



en ik zie dat de fout ligt hier . wat het kan de fout zijn?

ik heb in mij html code:



<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
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.
Dat is geen antwoord op mijn vraag.
$_POST versus $POST

Verder misschien even expliciet PHP foutmeldingen aanzetten?


<?php
// aan het begin van je code
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
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.
u hebt gelijk $_POST versus $POST.
plus ik heb in html action weg gedaan.

hier is html code :


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


ik denk het probleem ligt bij deze lijn :

<?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"; 
?>


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!

- 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.



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.




Graag even concreet reageren! Anders wordt de hulp behoorlijk vermoeiend.
hoe ik kan screenshot uploaden naar deze forum ?
dank u wel
Die kan je uploaden op www.imgbb.com, en de URL of BB-code kan je hier plaatsen.
ik heb upload gedaan. daarna voor zekerheid url versuurd maar ik merk niks.
dank u wel

Reageren