Обработка формы запроса на базу данных mysql

546
.

Всем привет!
Хотел для себя написать маленький скрипт который добавить всю заполненную инфу на базы но так как я не знаю команды mysql мне трудно помогите пожалуйста!


вот сам код скрипта (+/-)
include('db.php');

if($_POST['name'])$name = $_POST['name'];
if($_POST['number'])$number = $_POST['number'];
if($_POST['email'])$email = $_POST['email'];
if($_POST['by'])$by = $_POST['by'];
if($_POST['name2'])$name2 = $_POST['name2'];
if($_POST['number2'])$number2 = $_POST['number2'];
if($_POST['old'])$old = $_POST['old'];
if($_POST['gorod'])$gorod = $_POST['gorod'];
if($_POST['raion'])$raion = $_POST['raion'];
if($_POST['adress'])$adress = $_POST['adress'];
if($_POST['postcode'])$postcode = $_POST['postcode'];

$result_add_cont = mysql_query ("INSERT INTO zapros (name,number,email,by,name2,number2,old,gorod,raion,adress,postcode) 
VALUES ('$name','$number','$email','$by','$name2','$number2','$old','$gorod','$raion','$adress','$postcode')");


сама форма (+/-)

<form method="post" action="script.php">
Ваши контактные данные:<br/><br/>
Имя: <input type="text" name="name" ></input>
Номер телефона <input type="text" name="number"></input>
E-mail <input type="text" name="email"></input>
Выберите цену сюрприза: 
<select name="by">
<option value="1790">1790 тг</option>
<option value="2850">2850 тг</option>
<option value="4800">4800 тг</option>
</select>


<br/><br/><br/><br/>Данные получателья сюрприза:<br/><br/>
Имя: <input type="text" name="name2"></input>
Номер телефона: <input type="text" name="number2"></input>
Возрасть: <input type="text" name="old"></input>
Пол: <select name="pol">
<option value="man">Муж</option>
<option value="woman">Жен</option>
</select>


<br/><br/><br/><br/>
Доставка сюрприза:<br/><br/>
Город: <input type="text" name="gorod"></input>
Район: <input type="text" name="raion"></input>
Адресс: <input type="text" name="adress"></input>
Индекс почты: <input type="text" name="postcode"></input>
<br/><br/><br/><br/>
<input type="submit" value="заказать"></input>



подключение дб (+/-)
//данные о хосте, пользователе и базе данных
$host = 'localhost';
$user = 'john'; 
$pass = 'john'; 
$dbname = 'john';
 
// подключаемся и выбираем бд, которую указали выше
if(!mysql_connect($host,$user,$pass))
  die('Не удалось подключиться к серверу MySql!');
elseif(!mysql_select_db($dbname))
  die('Не удалось выбрать БД!');
.
Ей 25

Для начала не помешало бы профильтровать инфу эту...

.
Кадило крутится, лавэха мутится

Первый кусок кода - дырка. Используй mysql_real_escape_string, а на выводе html special chars

.

Посоветуйте какой нибудь книжку или мануал. А то разбросали коды (спасибо конечно) а что где должны стоять чайнику не понять(((

.

а это нормально? можно использовать этот код?

if($_POST['name'])$name = $_POST['name'];
if($_POST['number'])$number = $_POST['number'];
if($_POST['email'])$email = $_POST['email'];
if($_POST['by'])$by = $_POST['by'];
if($_POST['name2'])$name2 = $_POST['name2'];
if($_POST['number2'])$number2 = $_POST['number2'];
if($_POST['old'])$old = $_POST['old'];
if($_POST['gorod'])$gorod = $_POST['gorod'];
if($_POST['raion'])$raion = $_POST['raion'];
if($_POST['adress'])$adress = $_POST['adress'];
if($_POST['postcode'])$postcode = $_POST['postcode'];
.

корявый код.
if($var) валидно только для true|false и аналогичных вариантов, невалидно как проверка существования переменной, используй isset или empty

.

или этот код правильный?

<?
include('db.php');

if ($_POST) { // Принимаем новые записи

    $name = $GLOBALS['MySQL']->escape(strip_tags($_POST['name']));
    $number = $GLOBALS['MySQL']->escape(strip_tags($_POST['number']));
    $email = $GLOBALS['MySQL']->escape(strip_tags($_POST['email']));
    $by = $GLOBALS['MySQL']->escape(strip_tags($_POST['by']));
    $name2 = $GLOBALS['MySQL']->escape(strip_tags($_POST['name2']));
    $number2 = $GLOBALS['MySQL']->escape(strip_tags($_POST['number2']));
    $old = $GLOBALS['MySQL']->escape(strip_tags($_POST['old']));
    $pol = $GLOBALS['MySQL']->escape(strip_tags($_POST['pol']));
    $gorod = $GLOBALS['MySQL']->escape(strip_tags($_POST['gorod']));
    $raion = $GLOBALS['MySQL']->escape(strip_tags($_POST['raion']));
    $adress = $GLOBALS['MySQL']->escape(strip_tags($_POST['adress']));
    $postcode = $GLOBALS['MySQL']->escape(strip_tags($_POST['postcode']));





            // Можно добавлять комментарий
            $GLOBALS['MySQL']->res("INSERT INTO `zapros` SET
`name` = '{$name}',
`number` = '{$number}',
`email` = '{$email}',
`by` = '{$by}',
`name2` = '{$name2}',
`number2` = '{$number2}',
`old` = '{$old}',
`pol` = '{$pol}',
`gorod` = '{$gorod}',
`raion` = '{$raion}',
`adress` = '{$adress}',
`postcode` = '{$postcode}'
");
}

mysql_query($query) or die(mysql_error()); 
mysql_close(); 

?>
.

Да используй ты isset()

.
Jane
Блиносвёрт ?

zver, в джоне делают так

if (isset($_POST['submit'])) {
$name = isset($_POST['name']) ? mysql_real_escape_string($_POST['name']) : '';
$number = isset($_POST['number']) ? mysql_real_escape_string($_POST['number']) : '';
$email = isset($_POST['email']) ? mysql_real_escape_string($_POST['email']) : '';
$by = isset($_POST['by']) ? mysql_real_escape_string($_POST['by']) : '';
$name2 = isset($_POST['name2']) ? mysql_real_escape_string($_POST['name2']) : '';
$number2 = isset($_POST['number2']) ? mysql_real_escape_string($_POST['number2']) : '';
$old = isset($_POST['old']) ? mysql_real_escape_string($_POST['old']) : '';
$gorod = isset($_POST['gorod']) ? mysql_real_escape_string($_POST['gorod']) : '';
$raion = isset($_POST['raion']) ? mysql_real_escape_string($_POST['raion']) : '';
$adress = isset($_POST['adress']) ? mysql_real_escape_string($_POST['adress']) : '';
$postcode = isset($_POST['postcode']) ? mysql_real_escape_string($_POST['postcode']) : '';
mysql_query("INSERT INTO `table` SET
            `name` = '" . $name . "',
`number` = '" . $number . "',
            `email` = '" . $email . "',
            `by` = '" . $by . "',
            //много полей
`postcode` = '" . $postcode . "'");
}
else {
// тут форма 
}

все поля предполагаются текстовыми
.
Блиносвёрт ?

блин, форму твою не увидела..там из нее можно понять, какой тип у поля

Всего: 15