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

Форум PHP

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

 

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

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

тема: Отправка данных в форму...
 
 автор: dek   (04.03.2008 в 17:02)   письмо автору
 
 

Не получается отправка данных в форму для сохранения этих данных в базу данных.

1. Форма Creatdb.php

<HTML>
<HEAD>
<TITLE>Прайс</TITLE>
</HEAD>
<BODY>
<?php
$Array["Ware"]=trim ($Array["Ware"]);
$Array["Price"]=trim ($Array["Price"]);
$Host = "Localhost";
$User = "dek";
$Password = "";
$DBName = "PriceList";
$TableName = "Price";
$Link = @mysql_pconnect ($Host, $User, $Password) or die (mysql_error());
$db = mysql_select_db($DBName) or die (mysql_error());
$Query = mysql_query ("INSERT into $TableName values ($Array["Ware"], $Array["Price"])");
print ("The query is:<BR>$Query<P>\n");
if (mysql_db_query ($DBName, $Query, $Link)) {
print ("Запрос был создан успешно!<BR>\n");
} else {
print ("Запрос не был создан!<BR>\n");
}
mysql_close ($Link);
?>
</BODY>
</HTML>


2. HTML-форма Send.html

<HTML>
<HEAD>
<Title>Отправка</Title>
</Head>
<Body>
<Form action="CreateDB.php" method=post>
Имя <Input Type=Text Name="Ware" Size=20><BR>
Тел <Input Type=Text Name="Array["Price"]" Size=20><BR>
<Input Type=Submit Name="Submit" Value="Submit!">
</FORM>
</Body>
</Html>


3. Результат записи данных :
The query is:
Запрос не был создан!

Ничего не происходит. Не передаются данные в форму поэтому и нет записи в базу данных. Подскажите пожалуйста где я ошибся.
Заранее благодарю!!!

   
 
 автор: olejek   (04.03.2008 в 17:10)   письмо автору
 
   для: dek   (04.03.2008 в 17:02)
 

Функция mysql_db_query устарела с выходом PHP 4.0.6. Не используйте её. Используйте комбинацию из mysql_select_db() и mysql_query().
А вообще-то Вы там наворотили ого-го.

<?$Host "Localhost";
$User "dek";
$Password "";
$DBName "PriceList";
$TableName "Price";
@
$connection=mysql_connect($Host$User$Password) or die (mysql_error());
mysql_select_db($DBName$connection) or die (mysql_error());
$Query "INSERT into $TableName values ($Array['Ware'], $Array['Price'])";
print (
"The query is:<BR>$Query<P>\n");
if (
mysql_query ($Query)) 
    {
    print (
"Запрос был создан успешно!<BR>\n");
    } 
    else 
    {
    print (
"Запрос не был создан!<BR>\n");
    }
?>

   
 
 автор: sim5   (04.03.2008 в 17:11)   письмо автору
 
   для: dek   (04.03.2008 в 17:02)
 

А вы ничего и не передаете в форму. То что у вас написано полный абсурд. При отправке формы, вы получите массив $_POST: $_POST['Ware'], но ни как не $Array["Ware"] которое вы пытаетесь запихнуть в базу.

   
 
 автор: neokortex   (04.03.2008 в 17:13)   письмо автору
 
   для: dek   (04.03.2008 в 17:02)
 

пусть выведет ошибку sql

else { 
print ("Запрос не был создан!<BR>\n"); echo mysql_error();


узнайте какую ошибку выдает mysql, так будет проще и вам и нам

   
 
 автор: mihdan   (05.03.2008 в 09:52)   письмо автору
 
   для: dek   (04.03.2008 в 17:02)
 


<?
$Array
["Ware"]=trim ($Array["Ware"]);
$Array["Price"]=trim ($Array["Price"]); 
?>


Замените на


<?
$Array
["Ware"]=trim ($_POST["Ware"]);
$Array["Price"]=trim ($_POST["Price"]); 
?>

   
 
 автор: dek   (05.03.2008 в 12:38)   письмо автору
 
   для: mihdan   (05.03.2008 в 09:52)
 

Заменил на
<?
$Array["Ware"]=trim ($_POST["Ware"]);
$Array["Price"]=trim ($_POST["Price"]);
?>

Ничего не происходит. И ошибки не выдаёт. Если не трудно кто-нибудь выставьте пожалуйста пример "передачи данных в форму". Не передаются данные файлу (CreateDB.php) для обработки. Заранее благодарю!!!

   
 
 автор: neokortex   (05.03.2008 в 13:26)   письмо автору
 
   для: dek   (05.03.2008 в 12:38)
 

форма отправки

<form action="send.php" method="post">
  <p>
    <input name="name" type="text" id="name">
  </p>
  <p>
    <input name="phone" type="text" id="phone">
</p>
  <p>
    <input type="submit" name="Submit2" value="отправить данные в форму">
  </p>
</form>

принимаем (send.php)

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Принимаем данные</title>
<?php 
$dblocation 
"localhost";
 
$dbname "test";
  
$dbuser "root";
  
$dbpasswd "";
  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  
$select_db = @mysql_select_db($dbname,$dbcnx);
  
  
$query=mysql_query("insert into `table1` values ('1', '$name', '$phone')");
  if (
$query) echo "добавлено";
  else echo 
"недобавлено <br>".mysql_error();
?>

   
 
 автор: _гость_   (05.03.2008 в 13:40)
 
   для: neokortex   (05.03.2008 в 13:26)
 

только ещё не хватает
строк типа $name = $_POST['name'];
и если подставлять переменные в запрос то как-то надо проверять например защититься от sql_инъекции.
возможно Вас заинтересует такая задача [url]/info/task.php?id_article=110[/url]
или такой ответ на неё [url]/forum/read.php?id_forum=7&id_theme=38424[/url]

   
 
 автор: _гость_   (05.03.2008 в 13:46)
 
   для: _гость_   (05.03.2008 в 13:40)
 

извиняюсь за некачественные ссылки ;)
подбираю способ вписать ссылку не будучи авторизованным

а вообще наверное лучше изучить в справочнике
[url=/group/id_group=2]функции работы с mysql[/url]

   
 
 автор: dek   (06.03.2008 в 07:55)   письмо автору
 
   для: _гость_   (05.03.2008 в 13:46)
 

Я извиняюсь уважаемые гуру, что сразу не проверил что "отправка данных в форму на обработку" не получается не из-за PHP кода написанного выше. Я попробовал такой пример, скачал с сайта http://audit.iatp.by/aduc/komputer/php/forma.htm и этот код у меня не работает. Наверное дело в настройках PHP. Если не трудно помогите с настройками. Хотя у меня установлен XAMPP-win32-1.5.5 (PHP Version 5.2.0, Apache/2.2.3 (Win32) , SQL Ver 5.0.27).

1) Файл request.html:

<HTML>
<HEAD>
<TITLE>Запрос информации</TITLE>
<BODY>
<CENTER>
Хотите больше знать о наших товарах?
<P>
<TABLE WIDTH = 400><TR><TD align = right>
<FORM ACTION="email.php3" METHOD="POST">
Ваше имя:<BR>
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
<P>
Ваш email:<BR>
<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">
<P>
Меня интересуют:
<SELECT NAME="preference">
<OPTION value = "Яблоки">Яблоки
<OPTION value = "Апельсины">Апельсины
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="Отправить запрос!">
</FORM>
</TD></TR></TABLE></CENTER>
</BODY>
</HTML>

2) Файл email.php:

<?
/* Этот скрипт получает переменные из request.html */
PRINT "<CENTER>";
PRINT "Привет, $name.";
PRINT "<BR><BR>";
PRINT "Спасибо за ваш интерес.<BR><BR>";
PRINT "Вас интересуют $preference. Информацию о них мы пошлем вам на email: $email.";
PRINT "</CENTER>";
?>

После заполнения полей и нажатия кнопки (Отправить запрос!) происходит вот что

(Привет, .

Спасибо за ваш интерес.

Вас интересуют . Информацию о них мы пошлем вам на email: .)

Переменные не передаются в форму.
Заранее благодарю!!!

   
 
 автор: dek   (06.03.2008 в 12:16)   письмо автору
 
   для: dek   (06.03.2008 в 07:55)
 

Спасибо всем! Я разобрался. Теперь отправка данных в форму и обработка их получается.

   
Rambler's Top100
вверх

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