2014-12-08 6 views
2

Хорошо, поэтому у меня есть форма, и я пытаюсь заставить ее отправлять данные в мою базу данных, но она не работает ... Я не уверен, что это моя форма, которая вызывает эту проблему, или если это проблема с подключением в базу данных?Почему моя форма не отправляет данные в мою базу данных?

Мои имена таблиц верны, поля значений, информация для входа ... но всякий раз, когда я нажимаю кнопку отправки, она не вставляет никаких данных.

Это может быть моя форма, которая имеет проблему ?? Не могли бы вы, ребята, взглянуть?

<form action="form.php" method="POST"> 

<div class="row"> 
<div class="large-4 columns"> 


<span id="spryfirstname"> 
<input name="firstname" type="text" class="text" placeholder="First Name"/> 
<span class="textfieldRequiredMsg">A value is required.</span></span></div> 

<div class="large-4 columns"> 

<span id="sprylastname"> 
<input name="lastname" type="text" class="text" placeholder="Last Name"/> 
<span class="textfieldRequiredMsg">A value is required.</span></span></div> 

<div class="large-4 columns"> 
    <div class="row collapse"> 

    <div class="small-9 columns"><span id="spryemail"> 
    <input name="email" type="text" placeholder="[email protected]"/> 
    <span class="textfieldRequiredMsg">A value is required.</span></span></div> 
    </div> 
    </div> 
    </div> 

<div class="row"> 
      <div class="large-12 columns"> 
      <label>Check all Products that you're interested in</label> 
       <div> 
       <input name="products[]" type="checkbox" value="all"> 
       ALL PRODUCTS/SERVICES 

       <input name="products[]" type="checkbox" vallue="trade">Trade-in 
       <input name="products[]" type="checkbox" value="layaway">Layaway products 
       <input name="products[]" type="checkbox" value="theatre">Home Theatre Systems 
       <input name="products[]" type="checkbox" value="TV">HD TVs 
       <input name="products[]" type="checkbox" value="Games">Video Game Consoles</label> <br> 
       <input name="products[]" type="checkbox" value="laptops"> Laptops</label> 
       <input name="products[]" type="checkbox" value="monitors"> Monitors</label> 
       <input name="products[]" type="checkbox" value="phones"> Phones</label> 
       <input name="products[]" type="checkbox" value="cameras"> Cameras</label> 
       <input name="products[]" type="checkbox" value="acoustic"> Acoustic Guitars</label> 
       <input name="products[]" type="checkbox" value="electric"> Electric Guitars</label> 
       <input name="products[]" type="checkbox" value="drums"> Drums</label> 
       <input name="products[]" type="checkbox" value="wind"> Wind Instruments</label> <br> 
      <input name="products[]" type="checkbox" value="pianos"> Pianos</label> 
      <input name="products[]" type="checkbox" value="violins"> Violins</label> 
      <input name="products[]" type="checkbox" value="diamonds"> Diamonds 
      <input name="products[]" type="checkbox" value="neck"> Necklaces 
      <input name="products[]" type="checkbox" value="rings"> Rings 
      <input name="products[]" type="checkbox" value="ear"> Ear Rings</label> 
      <input name="products[]" type="checkbox" value="gold"> Gold Jewelry 
      <input name="products[]" type="checkbox" value="silver"> Silver Jewelry 
      <hr> 

       </div> 
       </div> 
     <div class="row"> 
     <div class="large-12 columns"> 
     <label>How often would you like to have product updates? <select> 
      <option value="daily" name"Updates">Daily</option> 
      <option value="weekly" name"Updates">Weekly</option> 
      <option value="monthly" name"Updates">Monthly</option> 
      </select> 
      </label> 
       </div> 
       </div> 
        <div class="row"> 
        <div class="large-12 columns"> 
        <label>Tell us a little about yourself <textarea placeholder="Type here"> 
        </textarea> 
         </label> 
        </div> 
        </div> 
      <div class="row"> 

      <input class="button small large-3" type="submit" name"submit" /> 
          </div> 
          </form> 

Вот мое подключение к части базы данных:

 <?php 
    if (isset($_POST['submit'])){ 

$con = mysql_connect("localhost","dxh6110","******"); 
if(!$con){ 
die("Can not connect: " . mysql_error()); 
} 

mysql_select_db("dxh6110",$con); 

$sql = "INSERT INTO Signup (Firstname,Lastname,Email) VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[email]')"; 

mysql_query($sql,$con); 
mysql_close($con); 

} 
?> 

Кроме того, если я хочу, чтобы ввести данные из флажков и раскрывающимися как бы я идти о выполнении этого? Будет ли оно таким же, как текстовые поля?

+1

Добавьте сообщение об ошибках в начало вашего файла (ов) сразу после открытия тега '

+1

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – tyteen4a03

+0

хорошо, так что в основном, где у меня есть mysql_ Мне нужно изменить их на mysqli_? – DLH

ответ

5

Этот ответ для вашего originally posted code перед редактированием и без его маркировки как редактирования.

Это причина:

У вас нет знака равенства в name"submit" для вашей кнопки отправки.

Изменить его name="submit", исполнение вашего кода основывается на вашем условном операторе:

if (isset($_POST['submit'])) 

Это мне потребовалось некоторое время, чтобы обнаружить, что один за глядя на свой код, интересно «почему» он не работает ,

Остальная часть вашего кода проверяет, однако я также должен указать, что ваш настоящий код открыт для SQL injection. Используйте prepared statements, или PDO with prepared statements, они намного безопаснее.


Как для флажков, вы можете основывать себя на следующее:

$checkbox = $_POST['products']; 

    for($i=0;$i <sizeof($checkbox);$i++) { 
    $query="INSERT INTO your_table (col) VALUES('".$checkbox[$i]."')"; 
    mysql_query($query,$con) or die(mysql_error()); 
} 

Для некоторых дополнительной защиты:

$firstname= stripslashes($_POST['firstname']); 
$lastname= stripslashes($_POST['lastname']); 
$email = stripslashes($_POST['email']); 

$firstname= mysql_real_escape_string($_POST['firstname']); 
$lastname= mysql_real_escape_string($_POST['lastname']); 
$email = mysql_real_escape_string($_POST['email']); 

$sql = "INSERT INTO Signup (Firstname,Lastname,Email) 
     VALUES('".$firstname."','".$lastname."','".$email."')"; 

или mysqli_ метод:

<?php 
$con = mysqli_connect("myhost","myuser","mypassw","mybd") 
     or die("Error " . mysqli_error($con)); 

$firstname = stripslashes($_POST['firstname']); 
$lastname = stripslashes($_POST['lastname']); 
$email = stripslashes($_POST['email']); 

$firstname = mysqli_real_escape_string($con,$_POST['firstname']); 
$lastname = mysqli_real_escape_string($con,$_POST['lastname']); 
$email = mysqli_real_escape_string($con,$_POST['email']); 

$sql = "INSERT INTO Signup (Firstname,Lastname,Email) 
     VALUES('".$firstname."','".$lastname."','".$email."')"; 

mysqli_query($con,$sql); 
mysqli_close($con); 
+0

Ой, я вижу это сейчас. Я пропустил знак = на другом. Спасибо. Итак, он отправляет форму, но не добавляет выбранные данные в базу данных? Может быть, из-за того, что там сказали ребята? старые заявления sql? – DLH

+1

@DLH Добро пожаловать. Если 'mysql_' не работает, используйте' mysqli_' и желательно с подготовленными операторами. –

+1

@DLH Перезагрузите мой ответ, я добавил метод mysqli_ для использования (см. Внизу). Это основной метод. Однако прочитайте подготовленные заявления. Я должен бежать. Держи меня в курсе, я вернусь завтра, * приветствия * –

Смежные вопросы