2015-11-16 2 views
-2

Я не могу получить данные из форм веб-сайта, чтобы mysql выполнял его локально с помощью XAMPP.Не удается получить данные POST из форм в mysql

Я получаю сообщение «Can not POST /ph/contactFormHandler.php».

Вот HTML для форм:

  <div class="contact-grid mdl-grid"> 

       <div class="contact-title mdl-typography--headline"> 
        Contact the team 
       </div> 
       <form action="../ph/contactFormHandler.php" method="post"> 
        <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
         <input class="mdl-textfield__input" size="" type="text" name="name"> 
         <label class="mdl-textfield__label" for="name">Name</label> 
        </div> 
       </form> 
       <form action="../ph/contactFormHandler.php" method="post"> 
        <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
         <input class="mdl-textfield__input" size="" type="email" name="email"> 
         <label class="mdl-textfield__label" for="email">Email</label> 
        </div> 
       </form> 
       <form action="../ph/contactFormHandler.php" method="post"> 
        <div class="mdl-textfield mdl-js-textfield"> 
         <textarea class="mdl-textfield__input" type="text" rows="6" name="message"></textarea> 
         <label class="mdl-textfield__label" for="message">Message</label> 
        </div> 
       </form> 
       <form action="../ph/contactFormHandler.php" method="post"> 
        <input class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="submit" name="send"> 
       </form> 
      </div> 

Я попытался с помощью MySQLi также и я получаю ту же ошибку.

РНР:

<?php 

$sql_connection = mysql_connect("localhost","root","root"); 

$db = mysql_select_db("mdlDemoDB", $sql_connection); 

$name = $_POST["name"]; 
$email = $_POST["email"]; 
$message = $_POST["message"]; 

if(isset($_POST["send"])){ 

$query = mysql_query("insert into messages(ContactID, ContactName, ContactEmail, ContactMessage) values ('$name', '$email', '$message') "); 
} 

mysql_close($sql_connection); 

?> 
+0

Вы пытаетесь вставить 3 значения ('$ name',' $ email', '$ message') в 4 поля (' ContactID', 'ContactName', 'ContactEmail',' ContactMessage'). каждый набор значений, которые вы вставляете, должен совпадать с количеством указанных вами полей. в настоящее время вы устанавливаете 'ContactID' как' $ name' и ничего для 'ContactMessage' –

+0

Почему у вас есть куча' form'-s? – FirstOne

+1

[Ваш скрипт находится под угрозой для SQL-инъекций.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

ответ

0

В первую очередь, даже когда/если вы получите этот рабочий код имеет уязвимости SQL-инъекции, которые могут привести к вредоносной деятельности, включая, но не ограничиваясь красть всю вашу базу данных и/или удаляя все, что у вас есть. Я бы порекомендовал сделать некоторые чтения о том, как предотвратить эти вещи.

Во-вторых, каждый отдельный вход в форме имеет элемент формы, обернутый вокруг него. Это неправильно, должно выглядеть следующим образом:

 <div class="contact-grid mdl-grid"> 

      <div class="contact-title mdl-typography--headline"> 
       Contact the team 
      </div> 
      <form action="../ph/contactFormHandler.php" method="post"> 
       <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
        <input class="mdl-textfield__input" size="" type="text" name="name"> 
        <label class="mdl-textfield__label" for="name">Name</label> 
       </div> 
       <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> 
        <input class="mdl-textfield__input" size="" type="email" name="email"> 
        <label class="mdl-textfield__label" for="email">Email</label> 
       </div> 
       <div class="mdl-textfield mdl-js-textfield"> 
        <textarea class="mdl-textfield__input" rows="6" name="message"></textarea> 
        <label class="mdl-textfield__label" for="message">Message</label> 
       </div> 
       <input class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="submit" name="send"> 
      </form> 
     </div> 
+0

'