0

I've been working on a website for my father for a while now and i have been getting frustrated with the contact form and order form. I'm only starting to learn HTML and i don't know a whole lot about it.

Here is what's happening: When i press the submit button, the whole PHP code will print onto the browser screen in plain text.

This is happening for both the contact form and order form, i will paste the contact form bellow.

                            <form id="contact-form" action="php/mail.php" method="POST">
                                <div class="control-group">
                                    <div class="controls">
                                        <input class="span12" type="text" id="name" name="name" placeholder="* Your name..." />
                                        <div class="error left-align" id="err-name">Please enter name.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <input class="span12" type="email" name="email" id="email" placeholder="* Your email..." />
                                        <div class="error left-align" id="err-email">Please enter valid email adress.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <textarea class="span12" name="comment" id="comment" placeholder="* Your query..."></textarea>
                                        <div class="error left-align" id="err-comment">Please enter your query.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <button id="send-mail" class="message-btn">Send message</button>
                                    </div>
                                </div>
                            </form>

Here is the PHP:

<?php
include 'functions.php';

if (!empty($_POST)){

$data['success'] = true;
$_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
$_POST  = multiDimensionalArrayMap('cleanData', $_POST);

$emailTo ="myemail@domain.com"; 

$emailSubject = "Test";

$name = $_POST["name"];
$email = $_POST["email"];
$comment = $_POST["comment"];
if($name == "")
$data['success'] = false;

if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) 
$data['success'] = false;


if($comment == "")
$data['success'] = false;

if($data['success'] == true){

$message = "NAME: $name<br>
EMAIL: $email<br>
COMMENT: $comment";


$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
$headers .= "From: <$emailFrom>" . "\r\n";
mail($emailTo, $emailSubject, $message, $headers);

$data['success'] = true;
echo json_encode($data);
}
}

The email part is filled in with my email.

Just to recap, the whole php code in echoing to my browser in plain-text when i press the submit button.

I don't see anything wrong with this, please help...

  • 1
    Do you have php installed? Any webserver installed? – u_mulder Dec 26 '15 at 16:38
  • 3
    It sounds like you're not actually running PHP on the web server. Check your web server configuration and PHP configuration. Maybe re-install PHP entirely. – David Dec 26 '15 at 16:41

1 Answers1

1

PHP code is printed when you post the form.

It does mean you don't have php installed on your machine or your web server doesn't have php module enabled.

Try to install apache or IIS or any other webserver + php and then run your contact form on localhost url.

e.g. http://localhost/contactform.php

Alpesh Panchal
  • 1,723
  • 12
  • 9