Всем привет!
Хотел для себя написать маленький скрипт который добавить всю заполненную инфу на базы но так как я не знаю команды 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('Не удалось выбрать БД!');
Для начала не помешало бы профильтровать инфу эту...
Первый кусок кода - дырка. Используй 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();
?>
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 {
// тут форма
}
все поля предполагаются текстовыми
блин, форму твою не увидела..там из нее можно понять, какой тип у поля