PHP не работает метод INSERT INTO - PullRequest
0 голосов
/ 15 февраля 2012

Я пытаюсь вставить в таблицу клиентов в eshop_db. Когда я ее запускаю, ошибки не возникает, но она не сохраняется в mysql.В чем проблема в моем коде?Я действительно не понимаю.Пожалуйста, дайте ответ.Спасибо.

- registerForm.php -

<form action="register.php" method="post">
    <p>User ID: <input type="text" name="userId" size="30"/>*</p>
    <p>Password: <input type="password" name="password" size="30"/>*  </p>
    <p>Retype Password: <input type="password" name="repassword" size="30"/>*</p>
    <p>First Name: <input type="text" name="firstName" size="30"/>*</p>
    <p>Last Name: <input type="text" name="lastName" size="30"/>*</p>
    <p>Your Address (*):</p>
    <p><textarea name="address" rows="5" cols="30"></textarea></p>
    <p>Phone: <input type="text" name="phone" size="20"/>*</p>
    <p>E-mail: <input type="text" name="email" size="21"/>*</p>
    <p><input type="submit" value="Create Account"/></p>
</form>

- register.php -

<?php
require "sql_connection.php";
if(isset($_POST['submit']))
{
    if($_POST["password"]==$_POST["repassword"])
    {
        mysql_query("insert into customer (userId, password, firstName, lastName, address, phone, email) 
        values ('$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[addres]]','$_POST[phone]','$_POST[email]')")
        or die(mysql_error());
    }
}
?>

- sql_connection.php -

<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "mypass";
$db_name = "eshop_db";

@mysql_connect("$db_host", "$db_username", "$db_pass", "$db_name") or die("connection is fail.");
@mysql_select_db("$db_name") or die("database does not exsist.");
echo "Successfully connected!!";
?>

Ответы [ 3 ]

2 голосов
/ 15 февраля 2012

Опечатка, исправьте эту часть здесь:

 '$_POST[addres]]' // wrong
 '$_POST[address]' // right
2 голосов
/ 15 февраля 2012

Попробуйте это:

<?php

require "sql_connection.php";

if(isset($_POST['submit']) && $_POST["password"] == $_POST["repassword"]) {

  mysql_query(
'INSERT INTO `customer` (`userId`, `password`, `firstName`, `lastName`, `address`, `phone`, `email`) 
  VALUES ('.$_POST['userId'].', '.$_POST['password'].', '.$_POST['firstName'].', '.$_POST['lastName'].', '.$_POST['address'].', '.$_POST['phone'].', '.$_POST['email'].')'
  ) or die(mysql_error());

}

Наконец, отфильтруйте и проверьте ваши входящие данные.

0 голосов
/ 15 февраля 2012

Что ж, кроме явно плохой идеи прямого использования значений в массиве POST, ваши индексы должны быть заключены в кавычки.Итак, $ _POST ['address'] и т. Д. Кроме того, значения массива необходимо экранировать фигурными скобками, если вы пытаетесь выполнить инжекцию строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...