0

so I am making a website teaching young children the concepts of programming. And I'm make an email contact form because I would like my users to contact me incase they have any improvment ideas or problems with my website. However, a lot of my syntax is appearing on the webpage and I don't know why. I first read through the code and spotted a few missing semi-colons and '$' signs and one curly bracket.

Despite me checking my code and fixing my errors it still appears on my webpage. I may think this may be to do with my syntax structure, I'm not 100% sure though.

Here is my code:

<html>
 <head>
 <title>CoderClub4Kids</title>
<style>
body {
    background-image: url("Background default.jpg");
    background-repeat: no-repeat;
    background-size: 100% 100vh;
    background-color: #00802b;
}
p {
font-family: Comic Sans MS;
}
h1, h2, h3, h4, h5, h6 {
font-family: Comic Sans MS;
}
.container {
    overflow: hidden;
    background-color: yellow;
    font-family: Arial;
}

.container a {
    float: left;
    font-size: 16px;
    color: black;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    font-family:Comic Sans MS;
}

.dropdown {
    float: left;
    overflow: hidden;
}

.dropdown .dropbtn {
    font-size: 16px;    
    border: none;
    outline: none;
    color: black;
    padding: 14px 16px;
    background-color: inherit;
    font-family: Comic Sans MS;
}

.container a:hover, .dropdown:hover .dropbtn {
    background-color:#cccc00;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #ffffcc;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

.dropdown-content a {
    float: none;
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    text-align: left;
}

.dropdown-content a:hover {
    background-color: #ffff66;
}

.dropdown:hover .dropdown-content {
    display: block;
}

</style>

 </head>
 <body>

 <table width="800" border="0" align="center" cellpadding="0" cellspacing="10" bgcolor="#FFFFFF">
    <td width="21%" align="left"><img src="logo2.png" width="300" height="200">
    </td>
  <tr> 
    <td valign="top"> 
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr> 


        </tr>
      </table>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="10" bgcolor="#FFFFFF">
    <td width="21%" align="left">
    <div class="container">
    <a href="file:///C:/Users/sony/Desktop/CoderClub4kids/home.html">home</a>
    <div class="dropdown">
    <button class="dropbtn">About</button>
    <div class="dropdown-content">
    <a href="#">About The Website</a>
      <a href="#">About The Creator</a>
      <a href="#">About Coding</a>
    </div>
  </div> 
  <a href="#">Contact</a>
</div>
 </body>
 </html>
 <?php
if (isset($_POST['email'])) {}

    $email_to = "Test1@localhost";
    $email_subject = "CoderClub4Kids!";


    function died($error) {
        //error code
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error "<br /><br />";
        echo "Please go back and fix these errors <br /><br />";
        die();
    }


        // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }



    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_from = $_POST['email'];
    $telephone = $_POST['telephone'];
    $comments = $_POST['comments'];

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

    if(!preg_match($email_$exp_$from)) {
    $error_message .='The Email Address you entered does not appear to be valid.<br />';
    }

    $string_exp = "/^[A-Za-z .'-]+$/";

    if(!preg_match($string_exp, $first_name)) {
       $error_message .= 'The First Name you entered does not appear to be valid.<br />';
       }

    if(!preg_match($string_exp, $last_name)) {
       $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
       }

    if(strlen($comments) < 2) {
       $error_message .='The Message you entered did not appear to be valid.<br />';

    }
    if(strlen($error_message) > 0) {
      died($error_message);
      }

      $email_message = "Form details below.\n\n";

      function clean_string($string) {
        $bad = array('content-type","bcc:","to:","cc:","href');
        return str_replace($bad, "" ,$string);
        }



    $email_message .= "First Name:  " .clean_string)($first_name). "\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";

 // create email headers
 $headers = 'From: '. $email_from. "User".
 'Reply-To: ' .$email_from."User".
 'X-Mailer: PHP/' .phpversion();
 @mail($email_to, $email_subject, $email_message, $headers);
 ?>
 <p> Thank you for contacting us. We will be in touch as soon as possible!</p>

I'd be grateful to anyone who can help me. :-)

Coderess
  • 21
  • 1
  • 7
  • Close your file with end PHP tag and remember to save the file with .php extension not .html – Artur Poniedziałek Aug 24 '17 at 20:08
  • Your email regex will pass some invalid data and reject some valid data. The script is vulnerable to header injection. Maybe you should start with something simpler. (you don't need a closing tag at the end of a PHP script if the script ends in PHP code - indeed it creates complicaitons when you start working with include files). – symcbean Aug 24 '17 at 20:08
  • @ArturPoniedziałek It already has a closing PHP tag (the line after `@mail`) – Chris Forrence Aug 24 '17 at 20:09
  • Check also if your open PHP tag is correctly recognized on your server. – Artur Poniedziałek Aug 24 '17 at 20:13
  • @Coderess I'd advise you to use an IDE; it'll squawk at a few of the errors (such as the missing string concatenator between `$error` and `"

    "`, the use of underscores instead of commas in preg_match, and the `)` in front of clean_string towards the end)
    – Chris Forrence Aug 24 '17 at 20:13
  • What does it mean your first line with testing post email parameter? It has empty body so you can remove this. – Artur Poniedziałek Aug 24 '17 at 20:15
  • @ArturPoniedziałek BTW closing PHP tag (at the end of the file) is not only unnecessary, it is actually discouraged. – Mike Aug 24 '17 at 20:23
  • @Mike I know about It, but It is easer to analize the code if we add such close tags. It's a question of good manner in coding. – Artur Poniedziałek Aug 25 '17 at 05:57
  • Thanks for the help everyone. I've fixed the errors @ChrisForrence pointed out, thank you. I notice a lot of you are criticizing the way I've opened and closed my PHP code. Do you have a better method I can use? If so I would love to hear it. :-) – Coderess Aug 25 '17 at 22:39
  • I've took your advice, and I've fixed my syntax errors, but still, my code appears on my webpage. I've been to several online IDEs and they've all said that I have no syntax errors. I don't understand what is the problem? – Coderess Aug 25 '17 at 22:56
  • @ArturPoniedziałek Here's a few people that disagree with you: http://php.net/manual/en/language.basic-syntax.phptags.php, http://zf2-docs.readthedocs.io/en/latest/ref/coding.standard.html#general, https://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag. – Mike Aug 28 '17 at 21:36
  • @Mike I know using the – Coderess Aug 30 '17 at 22:16
  • @Coderess We're talking about file ending closing tags, not opening tags – Mike Aug 30 '17 at 22:28
  • Again, there I have enabled both PHP short opening and closing tags. I enabled them both on my PHP.ini – Coderess Aug 31 '17 at 00:41

0 Answers0