2012-02-15 3 views
-1

Я пытаюсь вставить в таблицу клиентов в eshop_db Когда я запустил его, он не имеет никаких ошибок, но он не хранился в mysql. Что это за проблема в моем коде? Я действительно не понимаю. Пожалуйста, дайте некоторый ответ. Благодарю.PHP не работает Метод INSERT INTO

--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

[SQL Injection] (http://il.php.net/manual/en/security.database.sql-injection.php) –

+0

Никогда не вставляйте в свои db значения, получаемые переменной $ _POST! Никогда ! –

+0

вы можете проверить, если вы собираетесь в первое условие 'if', напечатав что-то, когда оно вступит в это? –

ответ

2

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

<?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()); 

} 

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

2

опечатка, правильно эта часть здесь:

'$_POST[addres]]' // wrong 
'$_POST[address]' // right 
+0

'...'. $ _ POST ['address'] .'... '- указать индексы –

+0

Почему downvote? У него был «addres» вместо «address», а также дополнительный кронштейн? – djot

+0

Проблемы с стилем и уязвимости в стороне, это, по-видимому, является причиной отказа запроса. – Feysal

0

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

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