html contact form validatie code werkt nie goed!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Johannes davidian

johannes davidian

04/07/2022 19:37:46
Quote Anchor link
Hallo,
deze email validation code werkt goed:

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

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
<?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='xxxxxxxxxx@hotmail.com'
        $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)
PHP script in nieuw venster Selecteer het PHP script
1
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";
            
        }
?>




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

ik heb in mij html code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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

PHP hulp

01/02/2023 09:46:31
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 19:50:31
Quote Anchor link
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.
Gewijzigd op 04/07/2022 19:54:11 door - Ariën -
 
Johannes davidian

johannes davidian

04/07/2022 19:58:44
Quote Anchor link
ik heb geheel van deze code in youtube gezien .
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
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 19:59:31
Quote Anchor link
Dat is geen antwoord op mijn vraag.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/07/2022 20:14:07
Quote Anchor link
$_POST versus $POST

Verder misschien even expliciet PHP foutmeldingen aanzetten?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// 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
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 20:27:44
Quote Anchor link
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.
 
Johannes davidian

johannes davidian

04/07/2022 20:44:21
Quote Anchor link
u hebt gelijk $_POST versus $POST.
plus ik heb in html action weg gedaan.

hier is html code :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


ik denk het probleem ligt bij deze lijn :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 20:48:58
Quote Anchor link
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.
Gewijzigd op 04/07/2022 20:50:44 door - Ariën -
 
Johannes davidian

johannes davidian

04/07/2022 20:58:55
Quote Anchor link
hoe ik kan screenshot uploaden naar deze forum ?
dank u wel
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 20:59:48
Quote Anchor link
Die kan je uploaden op www.imgbb.com, en de URL of BB-code kan je hier plaatsen.
 
Johannes davidian

johannes davidian

04/07/2022 21:07:46
Quote Anchor link
ik heb upload gedaan. daarna voor zekerheid url versuurd maar ik merk niks.
dank u wel
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/07/2022 21:09:08
Quote Anchor link
Het formulier werkt nu maar je Wordpress Router doet moeilijk.

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 ;-)
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 21:11:28
Quote Anchor link
Ik heb het idee dat je nu PHP wilt leren, maar dan kan je beter niet in een WordPress omgeving werken.
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 -
 
Johannes davidian

johannes davidian

04/07/2022 21:11:57
Quote Anchor link
geen probleem,
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
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 21:29:22
Quote Anchor link
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

Wat is de URL? Als je die niet deelt, dan kunnen we vrij weinig.
 
Johannes davidian

johannes davidian

04/07/2022 21:33:01
Quote Anchor link
ik heb de url meerdere malen laten zien
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
 
- Ariën  -
Beheerder

- Ariën -

04/07/2022 22:15:03
Quote Anchor link
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/

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

Ivo P

05/07/2022 09:27:00
Quote Anchor link
Naam:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
  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.
 
- Ariën  -
Beheerder

- Ariën -

05/07/2022 10:50:31
Quote Anchor link
Eigenlijk moet je bij namen enkel valideren of de voornaam en achternaam ingevuld is.
 
Jan Koehoorn

Jan Koehoorn

05/07/2022 19:08:38
Quote Anchor link
Johannes davidian op 04/07/2022 20:44:21:
ik denk het probleem ligt bij deze lijn :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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";
?>


Je doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_POST['submit']);
?>

maar je submit button heeft als name attribuut "form_submit"
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<button type="submit" id="contact-submit" data-submit="...Sending">Submit</button>

dan kun je dit weghalen uit jouw code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_POST['submit']);
?>

Als je de name van je submit button hetzelfde wilt blijven houden, dan kun je dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_POST['form_submit']);
?>
Gewijzigd op 05/07/2022 19:09:39 door Jan Koehoorn
 
Johannes davidian

johannes davidian

05/07/2022 20:07:18
Quote Anchor link
dank u wel,
het komt omdat ik heb de code gewijzigd naar deze:
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
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='hovhannes111@hotmail.com';
        $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 -
 

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.