Working Contact Form in PHP with Validation & Email Sending

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 19. 04. 2020
  • Learn the basics of creating a working contact form with email sending and basic email validation using PHP. We'll learn about the 'name' attribute of our form input elements and use that to build and send an email when a user fills out the contact form. We'll add some basic validation for the email as well as some conditional logic to display a 'thank you' message if the form was sent properly.
    Grab the referenced HTML/CSS form too follow along: github.com/wilsmex/edu/tree/m...
    💖 SUBSCRIBE (Please) 💖
    czcams.com/users/FollowAndrew?s...
    #php #contact #form #email

Komentáƙe • 243

  • @FollowAndrew
    @FollowAndrew  Pƙed 4 lety +32

    Something a bit different today: PHP contact form with email! Comment, like, & subscribe!!

    • @alexshel8578
      @alexshel8578 Pƙed 2 lety +2

      it works with github pages server?

  • @Ditdee
    @Ditdee Pƙed 3 lety +1

    Thank you! Thank you ! Thank you! I just wrote this script and it works wonderfully. This is after getting 3-5K quotes from developers. I migrated servers and the old server was using an outdated "perl" script to process forms. I cannot tell you how helpful this video was for me! Thank you Andrew!!!

  • @BenAssane
    @BenAssane Pƙed 4 lety +6

    Follow andrew's tutorials are the best
    i have learned so much stuff in this channel !
    Hope you'll continue php tutorials and responsive tutorial with other projects 👌

  • @matthewrobinson6183
    @matthewrobinson6183 Pƙed 2 lety +8

    Huge thank you.
    I literally had no experience with PHP (at all) and I used your lesson to teach myself how to edit a form submission page PHP script generated by a block editor program (Nicepage) and get it to work first time!
    Crystal clear instruction.
    Thank you!

    • @toma1610
      @toma1610 Pƙed rokem

      Have you include checkboxes or multiple select options in your form? Are you in Stackoverflow?

  • @jekath2786
    @jekath2786 Pƙed 3 lety

    Thank you so much. One of the few people who explain php so good. :)

  • @easilyCoded
    @easilyCoded Pƙed 3 lety

    Thank you. Thank you. Thank you. Thank you so much for this video. You're the best teacher on net!

  • @_nightowl263
    @_nightowl263 Pƙed rokem

    Amazing tutorial. Straightforward & to the point.

  • @santiagoramirez5507
    @santiagoramirez5507 Pƙed 3 lety

    Muchas gracias!! From Chile!! I appreciate your video so much!

  • @graybab
    @graybab Pƙed rokem

    This is exactly what I was looking for, thank you!

  • @evaprzybyla8955
    @evaprzybyla8955 Pƙed rokem

    love the way you are explaining stuff! thank you

  • @lizburke737
    @lizburke737 Pƙed rokem

    Exactly what I needed! I know literally zero PHP but it worked first try. Thank you!

  • @ryansymons8915
    @ryansymons8915 Pƙed 3 lety

    Another awesome tutorial.. now to finish off validation and get this bad boy online

  • @niteshsahni8393
    @niteshsahni8393 Pƙed 3 lety

    i searched for this keyword and i found you and you know what you are awesome amazing

  • @mikeb2604
    @mikeb2604 Pƙed 4 lety +1

    Perfect tutorial, thank you for this!

  • @Unknown-yl1do
    @Unknown-yl1do Pƙed 3 lety +1

    This is very very very helpful, specially going through the logic of the code that u typed everytime, it really makes it so clear and understandable. I cannot thank you enough for your effort. here's a like and a subscribe :)

  • @amarantakruger8902
    @amarantakruger8902 Pƙed rokem

    Thanks for explaining the logic behind easy to understand!

  • @Abhishekkumar-rt9ro
    @Abhishekkumar-rt9ro Pƙed 2 lety

    Your tutorials are really awesome thanks for the hard work you are putting in. Love from India

  • @fd-daniel578
    @fd-daniel578 Pƙed 3 lety

    I love your tutorial Andrew, Thank you for such detailed information on how we really do this! You're great man!

  • @shnam928
    @shnam928 Pƙed 4 lety +2

    Your tutorials are different & very helpful, thanks a lot.

  • @sodiq_5
    @sodiq_5 Pƙed 2 lety

    Thanks a bunch for this video. It worked on a live server.

  • @somethingnew3338
    @somethingnew3338 Pƙed rokem

    You are great. I am happy I discovered your channel.

  • @_aamir
    @_aamir Pƙed 3 lety

    Perfection! Great job! Amazing tutorial!

  • @sifisomasilela6753
    @sifisomasilela6753 Pƙed 4 lety

    One of the best Tuts. Thanks

  • @nafijrohi01
    @nafijrohi01 Pƙed 2 lety

    Great tutorial,Andrew -really things easier for me.

  • @shuvrodebroy2813
    @shuvrodebroy2813 Pƙed 3 lety

    Thank you very much for this tutorial, and waiting for more interesting !!!

  • @somethingnew3338
    @somethingnew3338 Pƙed rokem

    You explain very well and detailed.

  • @andreinicolae8305
    @andreinicolae8305 Pƙed 3 lety

    I liked, commented and subscribed! Thanks!!!

  • @danielradulescu6772
    @danielradulescu6772 Pƙed 3 lety

    Thank you so much... this was an amazing tutorial! Exactly what I needed, at the pace I needed. :)

  • @jeremyharvard6057
    @jeremyharvard6057 Pƙed rokem

    Thanks man, this video really helped me! Thank ya very much! I never knew how that css thing worked, I used to think that's something of a js thing! Now I know it is a css property!

  • @snowman_web_design_development

    Awesome, thank u!

  • @Shacontrol
    @Shacontrol Pƙed 3 lety

    I don't know what I'm doing here, but I can tell you that this is so f*cking entertaining

  • @jamesdb5596
    @jamesdb5596 Pƙed 3 lety +3

    Great tutorial, Andrew - really made things easier for me :-)

  • @nickkarsant9610
    @nickkarsant9610 Pƙed 3 lety +13

    Ok, but how do you make to so you ACTUALLY receive an email, cuz that bit doesnt seem to work when i try it, nor do you show that.

  • @michael_toms
    @michael_toms Pƙed rokem

    I am completely a novice at this, but your explanation is comprehensible. Thank you!

  • @livymarilyn509
    @livymarilyn509 Pƙed 2 lety

    Very functional bro to send campaign emails.

  • @Mongolian-Videos
    @Mongolian-Videos Pƙed 3 lety

    Thank you very much for your wysiwyg tutorial and waiting for more interesting staffs :)!

  • @JulioTex
    @JulioTex Pƙed 3 lety +1

    Great tutorial, really helped me to understand forms and e-mail validation :)

  • @Naveenkumar-te4id
    @Naveenkumar-te4id Pƙed 4 lety

    Great Work Andrew, it really helped me a lot... Thanks for this.

  • @davidumansky5775
    @davidumansky5775 Pƙed rokem

    Thank you very much this video help me a lot! interesting! and also you explain good and make it easy to understand.

  • @jfur5881
    @jfur5881 Pƙed 3 lety

    This works perfectly, thanks!

    • @rashaadmyrieckes1506
      @rashaadmyrieckes1506 Pƙed 3 lety

      why wont it send to my email Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Users\asus\Desktop\php program convert\htdocs\amitprograms\exhaustedwebsite.php on line 43

    • @sheikhziadahmed2283
      @sheikhziadahmed2283 Pƙed 2 lety +1

      @@rashaadmyrieckes1506 host it!

  • @bravehotsauce
    @bravehotsauce Pƙed 3 lety

    Thank you very much!

  • @netneedingsystems2318
    @netneedingsystems2318 Pƙed 3 lety

    I loved this tut! Thanks for sharing. Liked, Shared, and subscribed. :D

  • @silverbell6160
    @silverbell6160 Pƙed 2 lety

    Very clear, good information, great tutorial, thanks, I subscribed!

  • @kingmuffyojei7744
    @kingmuffyojei7744 Pƙed 4 lety

    thank you bro..! I'm subscribing for more..

  • @malachi5813
    @malachi5813 Pƙed rokem

    Well Done SIR!

  • @luandeivisonld694
    @luandeivisonld694 Pƙed 3 lety

    muito obrigado , aula muito boa , Brasilll

  • @bravehotsauce
    @bravehotsauce Pƙed 3 lety

    Thank you!

  • @MdNaimurRahmanHera
    @MdNaimurRahmanHera Pƙed 2 lety

    Thanks a lot Sir :)

  • @makawytech
    @makawytech Pƙed 3 lety

    The best videođŸŒč

  • @venus9598
    @venus9598 Pƙed 3 lety

    so in depth! XD

  • @josephaoga5170
    @josephaoga5170 Pƙed rokem

    Thanks so much for this, it was awesome. It helped me a great deal. I hope you'll touch on phpMailer soon.

  • @Keyboardwarrior6977
    @Keyboardwarrior6977 Pƙed 2 lety

    Thanks dude

  • @uprightnesseziukwu8283
    @uprightnesseziukwu8283 Pƙed 2 lety

    Thanks

  • @tareboda-3436
    @tareboda-3436 Pƙed 3 lety

    Hi.
    I would like to thank you for this video. Nicely explained.
    I would also ask if you have also working example of PHP form that would actually send an email to a customer who submitted the form, not only to the owner, but to both ...
    Thank you

  • @CarlWicker
    @CarlWicker Pƙed 2 lety

    thanks, help me loads

  • @wazaa2008
    @wazaa2008 Pƙed 3 lety +1

    Thanks for making this video! Is that email validation code in php also necessary when “required” is already used in the input HTML?

  • @abishek07
    @abishek07 Pƙed 4 lety +1

    It works! It works!

  • @muhammadrashidkhan4595
    @muhammadrashidkhan4595 Pƙed 2 lety

    Hi Andrew first of all thanks a lot for your excellent sharing. Video is excellent. I just want to highlight the diffulities I face to implement it.
    On your provided github repository there is no webform.php file present. One more thing to point, some description is required for the code in the main.js file. This main.js which is present on github repository.

  • @next_luke
    @next_luke Pƙed 4 lety +5

    How can I use this PHP with an external file?

  • @jakubfrei3757
    @jakubfrei3757 Pƙed 3 lety +1

    Hi. Nice video. I have a question though.Is your validation part " $_POST['email'] != ' ' " like this necessary ? Because array is true only if its not empty right ? So if we write just " if($_POST['email']), it should do the same ?

  • @eftiprwtopapadakis9310
    @eftiprwtopapadakis9310 Pƙed 3 lety +1

    Amazing content as always and very helpful! Though, one question. How would you suggest with javascript to print the "thank you your form submitted" somewhere discreet in the same page where the user hasnt to redirect to another page

  • @lewistaylor4620
    @lewistaylor4620 Pƙed 3 lety

    Hey there, I am trying to submit the form so that it sends the relevant data to my email address. I have tried to use the recursive array to see if when I click on my submit button it spits out the relevant data. But I keep receiving a 405 error when running the php/html on my local system and and 404 error when I am hosting my website on a dynamic hosting service. This happens every time I go to submit the form. Any ideas what I'm doing wrong?
    Lewis

  • @shjohnson2941
    @shjohnson2941 Pƙed 3 lety

    Hello, I love the tutorial! However, I have a problem. Everything works perfectly, but when I receive the email all of the inputs are blank. Example, name comes back as 'Name: " with no context. Is there something else I must do on the back end of my server, outside of the php? I noticed you had a link to AJAX in your head, is this necessary for the form to function? Thanks!

  • @NorlynCodes
    @NorlynCodes Pƙed 3 lety +3

    Hi Sir! I really like how you explain things, keeping in mind that a lot of newbies might be checking this tutorial out. Thank you.
    I have a question, I created a landing page with a contact form. It has a file name index.html. I want to make the contact form work, should I then change it to index.php for it to be a fully funtioning contact form?

    • @mohamadSalahia
      @mohamadSalahia Pƙed 3 lety +1

      Yes change it to index.php and then make form validations and send email :)

    • @NorlynCodes
      @NorlynCodes Pƙed 3 lety +1

      @@mohamadSalahia Hey! That’s very kind of you. Thanks

    • @mohamadSalahia
      @mohamadSalahia Pƙed 3 lety +1

      @@NorlynCodes Your welcome :)

  • @JonasBecker
    @JonasBecker Pƙed 4 lety +1

    Love the tutorial, thanks! As styling of select boxes sucks, I used divs with a little javascript. How could one use the selected list item as a variable? Thanks in advance!

    • @MasterofAardvarks
      @MasterofAardvarks Pƙed 3 lety

      you can set a class on virtually anything. for example -

  • @alcap6145
    @alcap6145 Pƙed 3 lety

    This is the best tutorial I have found so far to accomplish email form collection.. question how do you video yourself in the corner without anywithout any background? I know how to do it with picture in picture but the way you do it is really really cool can you share how you do that

    • @mostmojo
      @mostmojo Pƙed 3 lety

      Hey you - Google: Green screen video :)

  • @shantichawhan9376
    @shantichawhan9376 Pƙed 3 lety +2

    not working. Downloaded your form html, js, css etc. completed php but I keep receiving a 405 error when running the php/html on my local system and and 404 error when I am hosting my website . The mail cannot be sent or received. Could you tell what the problem is??

  • @A_ALI24
    @A_ALI24 Pƙed 2 lety

    Thank you for your time and effort. Could you pls explain how to setup the smtp, server name, username, password, port number of the sender?

  • @iwandevisser6684
    @iwandevisser6684 Pƙed rokem +1

    Hi Andrew, thanks for the tutorial! Everything worked for me up until the point where I start to add the last if, else and endif statements. I get a "localhost can't run this.. http 500 error" message when I reload. I'm running this via MAMP, is that the reason it doesn't work?

  • @twissr
    @twissr Pƙed 3 lety +1

    Hey man, thank you for your videos! I'm learning a lot. This tutorial was easy to follow along and you also break everything down. this worked up until I took the comment on mail($to,$messageSubject,$body)
    $message sent=true;
    the browser spits !*Parse error: syntax error, unexpected '$message_sent' (T_VARIABLE) in C:\php\htdocs\Developer Layouts\webform.php on line 21*! out.
    Can you please explain what I missed?
    Also for a future video you could go over MySQL and how to stick the input of forms go into the database.
    Thanks again.

  • @marksiely4747
    @marksiely4747 Pƙed 2 lety

    I am very glad to have come across your tutorials. Actually I was looking for a tutorial on how to add a subscribe and activate for newsletter . Can I use this tutorial for this purpose and what should i change to that ? Than you very much in advance

  • @tannermartz6761
    @tannermartz6761 Pƙed 3 lety +3

    is the code for this validation on the github because right now i can only find the html, (thanks for the help andrew!!)

  • @paulrak99
    @paulrak99 Pƙed 2 lety

    Thank you for this! Quick question, all of the emails from my domain/host are forwared to my gmail account but they are all going to my spam folder. How do I fix this? Thank you for the help!

  • @user-ri7qy1en7l
    @user-ri7qy1en7l Pƙed 4 lety +1

    Hey Andrew can you help me i just buy cv portfolio the send message is not working how to fix this i'll send you the picture

  • @edal61
    @edal61 Pƙed 2 lety

    Excellent tutorial, could not get the "php" code from the Github page you provided though, just the html version of the page. Is it available elsewhere? Thanks!

  • @toma1610
    @toma1610 Pƙed rokem

    11:42 So, if you don‘t set the
    if isset function on the top, the form could be sent just with empty fields? Is for that the isset function?

  • @missulu
    @missulu Pƙed rokem

    We do that. Happy to save you from the programming involved!lol! Email response and simple code generation.

  • @TriLiCiT
    @TriLiCiT Pƙed 2 lety

    Andrew. So I have Visual Studio Code along with my own host via Hostinger in which i made a temporary webform.php. However when I use your provided code in studio code than submit the data. I'm not getting an array. It literally is showing in the live preview in html format behind the form the PHP script...am i doing something wrong...how do i get the array showing like yours?

  • @kudjoeerik1622
    @kudjoeerik1622 Pƙed 2 lety

    Hi Andrew, I enjoyed your tutorial . I have a question.. how can you add attachment to the form to send email with attachments . Also can you connect this to MySQL to see the sent emails ? Thank you

  • @chome4
    @chome4 Pƙed rokem

    How would you incorporate checkboxes in the php portion? I can add the html for checkboxes but can't seem to work out how to get 'check' to work.

  • @photoinshot1355
    @photoinshot1355 Pƙed 2 lety

    Thanks for a great tutorial, works great after setting up sendmail in php and adding a from in the mail (using yahoo). However, after sending the email and getting the success message “Thanks we will be in touch” If I refresh the page the email is sent again, and I get the success message again but cannot see the form. How can this be fixed? Thanks

  • @kkroll7366
    @kkroll7366 Pƙed 3 lety +1

    i followed your text exactly, and the form errors out.

  • @ClarenceTavede
    @ClarenceTavede Pƙed 3 lety

    Hi andres I get this error message everytime: "method reflectionparameter::getclass is deprecated".
    How can i solve this?

  • @toma1610
    @toma1610 Pƙed rokem

    What I don‘t catch is how does the «$message_sent» variable is related to the mail function. Semantically, yes, but how do I know if $message_sent = TRUE, really means that the message was sent? All the rest was explained nicely.

  • @dannyreg8405
    @dannyreg8405 Pƙed 2 lety

    Andrew - Great Video, however, I couldn't find the video on the form itself. Can you direct me to it so the next time I can follow along?

  • @philipadams5386
    @philipadams5386 Pƙed 2 lety

    Congratulations on this tutorial. I'm a PHP newbie but can follow along for the most part if I watch repeatedly. One question, however: Is adding the variable $body necessary? I think it is simpler to use $message as the third parameter of the mail function. Am I right?

    • @toma1610
      @toma1610 Pƙed rokem +1

      Yes, also most of developers use $message as the third parameter and is REQUIRED. For semantic reasons, developers use: $to, $subject and $message as parameters names, for convention, but it doesn‘t have to be like this, necessarily. You saw how this video used $body instead of message, and $messageSubject instead of just $subject.
      You name them whatever you want, but three of them, in the strict order, have to be included. The first parameter is for the email destination of the form, that will go to the box of the TO in the mail application. The same for the SUBJECT. Whatever you put as the second parameter will go in the SUBJECT field of the email app.
      Additional headers are optional but recommended to get better organized. Obviously, when you called the mail functions, use the parameters names you are using: mail ($first_parameter_destination_email, $second_parameter_topic_name, $third_parameter_content_message);

  • @kenaida22
    @kenaida22 Pƙed 3 lety

    How do i use this form on my site, and not in a local ht docs folder?

  • @jjswin
    @jjswin Pƙed 2 lety

    Hi @FollowAndrew, I just wanted to ask how secure this method is. Is this super secure, or are there 'more' secure ways of doing it?
    I'm handling sensitive data under UK GDPR so I'm conscious of using the most secure methods possible. Thank you!

  • @makawytech
    @makawytech Pƙed 3 lety

    how can i add the same form but with atachment input file?

  • @lc6509
    @lc6509 Pƙed 2 lety

    I had follow everything you had said and in the beginning it was working but now my page is not loading properly.

  • @madsarmannaspelund6377
    @madsarmannaspelund6377 Pƙed 2 měsĂ­ci

    How Do I change the css that you wrote?

  • @Persoxa
    @Persoxa Pƙed 3 lety

    How would you do it with options

  • @paulsccna2964
    @paulsccna2964 Pƙed 4 lety +3

    Posted this on my IIS server and it does not work. IT does not throw an error but the email is never received. I tried my godaddy domain, google and, yahoo and the email never arrives. I have been tried this email form on dozens of different configurations and servers and it never works.

    • @eve4524
      @eve4524 Pƙed 3 lety +1

      Same here. Does anyone have idea why mail not received?

  • @marcoanjos6545
    @marcoanjos6545 Pƙed 11 měsĂ­ci

    in the example you succeeded sending the email with the commented line: mail($to, ......), but to works you have de not comment right?, i tried instead not commented that line, but didn't work for me, i had every line of code as you have have, but not works for me.

  • @dannyreg8405
    @dannyreg8405 Pƙed 2 lety

    Your error messages don't work in the form. What am I not seeing? if (preg_match("/^[a-zA-Z-']*$/",$name)) {
    $nameErr = "Only letters and white space allowed";, I have this in my code, but it doesn't stop it on the bottom on the form and doesn't show the message here: span class="error" *

  • @maryknauth7333
    @maryknauth7333 Pƙed 2 lety

    I have my html form written in my main html file, form action = "form-file.php"
    When I tested my form, I get an http error 500, with this in the console "console.warn('crbug/1173575, non-JS module files deprecated.');"
    What does this mean?

  • @BrooklynDesigne
    @BrooklynDesigne Pƙed 3 lety +2

    Why am I not receiving messages in my mail?

  • @Joseph-yd3sq
    @Joseph-yd3sq Pƙed 3 lety

    Mine worked in local but when i uploaded it in live host i get SMTP error: could not authenticate. I'm using HostGator for my hosting. Can you help me Andrew? or someone here in comment section? btw thanks for this tutorial i really appreciate it.

  • @bensonanyeteiarthur1825
    @bensonanyeteiarthur1825 Pƙed 2 lety

    Thank you soo much. Mine worked perfectly. But i have a question: When i received the message in my mail, the username is that of my Server's instead of either a name. Can you pls help me with that.

  • @jasons7114
    @jasons7114 Pƙed 3 lety

    Hey why i have my problem in my smtp