Skip to main content
paulp66153799
Participant
December 31, 2017
Answered

{"code":"MethodNotAllowedError","message":"POST is not allowed"}

  • December 31, 2017
  • 2 replies
  • 765 views

{"code":"MethodNotAllowedError","message":"POST is not allowed"}

This is the error I am getting. please, someone, help.

File:1 Form.php

<?php include('form_process.php'); ?>

<link rel="stylesheet" href="form.css" type="text/css">

<div class="container"> 

  <form id="contact" action="<?= $_SERVER['PHP_SELF']; ?>" method="post">

    <h3>Request a Free Business Analysis</h3>

    <h4>Request a free 45 minute consultation

with a bookkeeping expert</h4>

    <fieldset>

      <input placeholder="Name" type="text" tabindex="1" name="Full Name" autofocus>

<span class="error"><?= $name_error ?></span>

    </fieldset>

    <fieldset>

      <input placeholder="Email Address" type="text" name="Email"  tabindex="2" >

<span class="error"><?= $name_error ?></span>

    </fieldset>

    <fieldset>

      <input placeholder="Your Company" type="text" name="Your Company" tabindex="3" >

<span class="error"> <?= $name_error ?></span>

    </fieldset>

    <fieldset>

      <input placeholder="Phone" type="text" name="Phone" tabindex="4" >

    </fieldset>

    <fieldset>

    

    </fieldset>

    <fieldset>

      <button name="Request Consultation" type="submit" id="contact-submit" data-submit="...Sending">Request Consultation</button>

    </fieldset>

  <div class="Success"><?= $success; ?></div>

  </form> 

</div>

File 2: Form_process.php

<?php

// define variables and set to empty values

$name_error = $email_error = $name_error = $phone_error = "";

$name = $email = $name = $phone = $success = "";

//form is submitted with POST method

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  if (empty($_POST["name"])) {

    $name_error = "Name is required";

  } else {

    $name = test_input($_POST["name"]);

    // check if name only contains letters and whitespace

    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {

      $name_error = "Only letters and white space allowed";

    }

  }

  if (empty($_POST["email"])) {

    $email_error = "Email is required";

  } else {

    $email = test_input($_POST["email"]);

    // check if e-mail address is well-formed

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

      $email_error = "Invalid email format";

    }

  }

  if (empty($_POST["name"])) {

    $name_error = "Company name is required";

  } else {

    $name = test_input($_POST["Company name"]);

    // check if name only contains letters and whitespace

    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {

      $name_error = "Only letters and white space allowed";

    }

  }

if (empty($_POST["phone"])) {

    $phone_error = "Phone is required";

  } else {

    $phone = test_input($_POST["phone"]);

    // check if e-mail address is well-formed

    if (!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i",$phone)) {

      $phone_error = "Invalid phone number";

    }

  }

 

  if ($name_error == '' and $email_error == '' and $name_error == '' and $phone_error == '' ){

      $message_body = '';

      unset($_POST['submit']);

      foreach ($_POST as $key => $value){

          $message_body .=  "$key: $value\n";

      }

     

      $to = 'paulinpraveen@gmail.com';

      $subject = 'Contact Form Submit';

      if (mail($to, $subject, $message_body)){

          $success = "Message sent, thank you for contacting us!";

          $name = $email = $name = $phone = '';

      }

  }

 

}

function test_input($data) {

  $data = trim($data);

  $data = stripslashes($data);

  $data = htmlspecialchars($data);

  return $data;

}

File:3 Form.css

* {

margin:0;

padding:0;

box-sizing:border-box;

-webkit-box-sizing:border-box;

-moz-box-sizing:border-box;

-webkit-font-smoothing:antialiased;

-moz-font-smoothing:antialiased;

-o-font-smoothing:antialiased;

font-smoothing:antialiased;

text-rendering:optimizeLegibility;

}

.error {color: red;}

.success {color: #ff9966;

text-align: center;

font-weight: bold;

font-size: 14px;

}

body {

font-family: "Open Sans", Helvetica, Arial, sans-serif;

font-weight: 300;

font-size: 12px;

line-height: 30px;

color: #777;

background-color: transparent;

width: 430px;

height: 700px;

background-image: url(../images/Contact-form-background2.png);

background-repeat: no-repeat;

}

.container {

max-width:400px;

width:100%;

margin:0 auto;

position:relative;

}

#contact input[type="text"], #contact input[type="email"], #contact input[type="name"], #contact input[type="phone"], #contact textarea, #contact button[type="Request Consultation"] { font:400 12px/16px "Open Sans", Helvetica, Arial, sans-serif; }

#contact {

background-color: transparent;

padding:25px;

margin:50px 0;

}

#contact h3 {

color: #F96;

display: block;

font-size: 30px;

font-weight: 400;

}

#contact h4 {

margin:5px 0 15px;

display:block;

font-size:13px;

}

fieldset {

border: medium none !important;

margin: 0 0 10px;

min-width: 100%;

padding: 0;

width: 100%;

}

#contact input[type="text"], #contact input[type="email"], #contact input[type="name"], #contact input[type="phone"], #contact textarea {

width:100%;

border:1px solid #CCC;

background:#FFF;

margin:0 0 5px;

padding:10px;

}

#contact input[type="text"]:hover, #contact input[type="email"]:hover, #contact input[type="name"]:hover, #contact input[type="phone"]:hover, #contact textarea:hover {

-webkit-transition:border-color 0.3s ease-in-out;

-moz-transition:border-color 0.3s ease-in-out;

transition:border-color 0.3s ease-in-out;

border:1px solid #AAA;

}

#contact textarea {

height:100px;

max-width:100%;

  resize:none;

}

#contact button[type="submit"] {

cursor:pointer;

width:100%;

border:none;

background:#0CF;

color:#FFF;

margin:0 0 5px;

padding:10px;

font-size:25px;

}

#contact button[type="submit"]:hover {

background:#09C;

-webkit-transition:background 0.3s ease-in-out;

-moz-transition:background 0.3s ease-in-out;

transition:background-color 0.3s ease-in-out;

}

#contact button[type="submit"]:active { box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.5); }

#contact input:focus, #contact textarea:focus {

outline:0;

border:1px solid #999;

}

::-webkit-input-placeholder {

color:#888;

}

:-moz-placeholder {

color:#888;

}

::-moz-placeholder {

color:#888;

}

:-ms-input-placeholder {

color:#888;

}

This topic has been closed for replies.
Correct answer B i r n o u

first to be sure... does the filename of the file form_process.php is wrote all in lower case? because, the include and the filename seams different in your code demonstration (server are case sensitive)... one is form_process.php and the other is Form_process.php

then, try replacing the equal sign (in the action attribute), by an echo instruction

<?= $_SERVER['PHP_SELF']; ?>

<? echo $_SERVER['PHP_SELF']; ?>

and also prefer the full opening PHP tag instead of the shortcut .. plus... let a white space in between the opening tag and the first instuction caracter

<?php echo  $_SERVER['PHP_SELF']; ?>

2 replies

Legend
December 31, 2017

Something else to consider:

Are you testing locally or remotely?

If locally do you have a local testing environment set up which parses php files?

If neither of the replies solves your issue then post again and someone will look into the issues you may be having in more depth.

B i r n o u
B i r n o uCorrect answer
Legend
December 31, 2017

first to be sure... does the filename of the file form_process.php is wrote all in lower case? because, the include and the filename seams different in your code demonstration (server are case sensitive)... one is form_process.php and the other is Form_process.php

then, try replacing the equal sign (in the action attribute), by an echo instruction

<?= $_SERVER['PHP_SELF']; ?>

<? echo $_SERVER['PHP_SELF']; ?>

and also prefer the full opening PHP tag instead of the shortcut .. plus... let a white space in between the opening tag and the first instuction caracter

<?php echo  $_SERVER['PHP_SELF']; ?>