Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поместить данные из HTML-формы в базу данных
 
 автор: Robert   (06.09.2007 в 04:20)   письмо автору
 
 

Всем привет!
У меня такая проблема: написал элементарный скрипт по передачи данных из формы в переменные. Но значения этих переменных на экране не выводятся (т.е. как-будто равны нулю). В чем может быть причина? Может не правильная настройка php.ini?
Фрагмент:
...............
<form action="base.php" method="post">
<td> Имя</td>
<input type="text" name="temp1" maxlength=13 size13><br></td>
<td colspan=2><input type="submit" value="Занести в базу данных
...............................
Как только жме "Занести в базу" на следующей странице ничего не появляется...

   
 
 автор: Job   (06.09.2007 в 06:03)   письмо автору
 
   для: Robert   (06.09.2007 в 04:20)
 

файл test.php

<form action="test.php" method="post">
Имя <input type="text" name="name" size="20" maxlength="36"><br>
<input type="submit" name="submit" value="Отправить"><br>
</form>

<?
if(!empty($_POST['submit']))
{
print(
"Имя: ".$_POST['name']);
}                         
?>

   
 
 автор: Trianon   (06.09.2007 в 11:21)   письмо автору
 
   для: Robert   (06.09.2007 в 04:20)
 

и где скрипт base.php?

   
 
 автор: Robert   (06.09.2007 в 14:03)   письмо автору
 
   для: Trianon   (06.09.2007 в 11:21)
 

Скрипт base.php (хочу внести данные с формы в базу данных, но не получается. Где может быть ошибка?) Переменная исправлена!

<?php
$_POST['name']=addslashes($_POST['name']);
$db=mysql_pconnect("localhost","root","qazwsxqw");
if (!$db)
{
echo "Ошибка соединения с базой данных...";
exit;
}

mysql_select_db("test");
$query="insert into books values ($_POST['name')";
$result=mysql_query($query);


?>

   
 
 автор: kasmanaft   (06.09.2007 в 14:39)   письмо автору
 
   для: Robert   (06.09.2007 в 14:03)
 

Вот тут, например)
$query="insert into books values ($_POST['name')";
Нужно исправить $_POST['name'] и окружить апострофами/кавычками.

Перед addslashes(...) следует проверить магические кавычки на предмет включенности)

UPD вокруг name апострофы нужно убрать...

   
 
 автор: Trianon   (06.09.2007 в 15:04)   письмо автору
 
   для: kasmanaft   (06.09.2007 в 14:39)
 

дополню.

Про вызов mysql_pconnect забудьте.
Применяйте mysql_connect
addslashes лучше заменить на mysql_escape_string() , хотя это уже больше эстетика.
И наконец, сам по себе этот скрипт ничего не выведет. Только внесет изменения в базу данных. Если Вы ожидаете что-то увидеть, это что-то надо написать.

   
 
 автор: Hamilion   (06.09.2007 в 17:29)   письмо автору
 
   для: Robert   (06.09.2007 в 14:03)
 

У тебя текстовое поле называется "temp1", а в скрипте base.php используется $_POST['name'] Должно быть $_POST['temp1']

   
 
 автор: Robert   (06.09.2007 в 18:31)   письмо автору
 
   для: Hamilion   (06.09.2007 в 17:29)
 

Пытаюсь внести данные в базу, но внести изменения не получается....

<form action="test.php" method="post">
Имя <input type="text" name="name" size="20" maxlength="36"><br>
<input type="submit" name="submit" value="Отправить"><br>
</form>

<?php

$db=mysql_connect("localhost","root","qazwsxqw");
mysql_select_db("books");
//$query="insert into books values ("$name")";
$result=mysql_query($query);
?>

Запрос не обрабатывается...

   
 
 автор: sim5   (06.09.2007 в 18:43)   письмо автору
 
   для: Robert   (06.09.2007 в 18:31)
 

Вам уже сколько раз повторяли, а вы все свое гнете :)

$name = $_POST['name'] //прочтите про register_globals, и не мешало бы проверять принимаемые данные перед занесением их в базу.

   
 
 автор: bronenos   (06.09.2007 в 19:03)   письмо автору
 
   для: sim5   (06.09.2007 в 18:43)
 

хм, я полагал, что глобальными становятся данные из ГЕТ... из ПОСТ тоже?

   
 
 автор: Trianon   (06.09.2007 в 19:06)   письмо автору
 
   для: bronenos   (06.09.2007 в 19:03)
 

EGPCS

Environment
Get
Post
Cookie
Session

источники создания глобальных переменных старым движком.

   
 
 автор: bronenos   (06.09.2007 в 19:48)   письмо автору
 
   для: Trianon   (06.09.2007 в 19:06)
 

я знаю про сессию, про куки и гет.. хотя это я лоханулся - можно было догадаться, что и пост из той же компании...

   
 
 автор: Robert   (06.09.2007 в 22:32)   письмо автору
 
   для: bronenos   (06.09.2007 в 19:48)
 

Все равно не получается... Если просто вывести значение переменной на экран, то значение выводится. Стоит только написать запрос на внесение значение в базу данных :
<?php
$name = $_POST['name'] ;
echo "$name";
$db=mysql_pconnect("localhost","root","qazwsxqw");
mysql_select_db("test");
$query="insert into books values ("$name")";
$result=mysql_query($query);
?>

то на экран ничего не выводится и базу данных тоже...

   
 
 автор: champion   (06.09.2007 в 23:08)   письмо автору
 
   для: Robert   (06.09.2007 в 22:32)
 

Попробуйте заменить строку
$query="insert into books values ("$name")"; на
$query="insert into books values ('$name')";

   
 
 автор: bronenos   (06.09.2007 в 23:22)   письмо автору
 
   для: champion   (06.09.2007 в 23:08)
 

и это весьма странно... при указанном запросе и использовании двойных кавычек должна была возникнуть ошибка парса по идее

   
 
 автор: Robert   (06.09.2007 в 23:38)   письмо автору
 
   для: champion   (06.09.2007 в 23:08)
 

Все получилось! Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования