Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > форма сохраняющая данные на сервере


Автор: rezak47 30.5.2009, 22:35
Собсно есть паспорт(с ФИО,ТЕЛ, Адрес и тд) нужно чтобы пользователь вводил эти данные и они сохранялись на сервере, ну или отправлялись на худой конец на мыло. Просто щас стоит форма на основе хтмл, но там должен быть настроен оутлук(
Не подскажите код?

Автор: Shark 30.5.2009, 22:51
1. создаешь БД
2. создаешь таблицу
3. пишешь 10 строчный код обработки формы и все

Автор: NetJunky 30.5.2009, 22:59
Shark, видимо (не факт) человеку нужен пример. Хотя алгоритм неплохое начало, чтобы было с чем работать.

Автор: Shark 31.5.2009, 12:46
1. создаем БД
Код

CREATE DATABASE passport

2. создаем таблицу
Код

CREATE TABLE passport (
fio text,
address text
);

3. пишем код


index.php (страница с формой)
Код

<form action=add.php method=POST>
Введите ФИО: <input type=text name=fio><br />
Введите адрес: <input type=text name=address><br />
Введите e-mail: <input type=text name=email> - если нужно отправить данные на почту<br />
<input type=submit name=go value='Отправить данные'>


add.php (код обработчик)
Код

if(isset($_POSTgo']))
      {
                mysql_query("INSERT INTO passport VALUE('".mysql_real_escape_string($_POST['fio'])."', '".mysql_real_escape_string($_POST['address'])."')")
       }
//если указан e-mail, отправляем и почту
if(!empty($_POST['email']))
      {
               $to=$_POST['email'];
    $subject="Паспортные данные";
    $message="Паспортные данные: "
                \n ФИО: ".$_POST['fio']."
                \n Адрес: ".$_POST['address']."
    mail($to, $subject, $message) or print "Невозможно отослать письмо";
      }


вот те примерчик

Автор: NetJunky 31.5.2009, 12:49
Shark, разве называть DB и таблицу одним и темже именем есть хороший тон?

Автор: Shark 31.5.2009, 13:30
NetJunky, конечно же - нетsmile....
 я свои БД называю 2-мя буквами, а потом как префикс к таблицам эти буквы втыкаюsmile

Автор: NetJunky 31.5.2009, 14:56
Цитата(Shark @  31.5.2009,  13:30 Найти цитируемый пост)
NetJunky, конечно же - нетsmile....

Так люблю это конечно же, а потом нет... smile  smile 

Просто в примере были указаны одинаковые имена, вот и решил это отметить, чтобы автору было понятнее)))

Автор: rezak47 31.5.2009, 15:52
спс будем разбираться, просто в пхп не алле) и бд на сайте нет тк, она там просто не нужна) ну если без нее никак будем думать(
а еще если не трудно пример кода для того чтобы отправлялось на мыло, но без настройки оутлука

Автор: Photon 31.5.2009, 17:22
Код

$to = 'адрес_получателя';
$subject = 'тема_письма';
$message = 'текст_письма';
$headers = "From: адрес_отправителя\r\n";
mail($to, $subject, $message, $headers);


Shark, внимательно читаем описание функции mail
Цитата

When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini. 


Перевожу: при отправке сообщения, письмо обязательно должно иметь заголовок From. Он устанавливается через параметр additional_headers или может быть установлен в php.ini.  Если нет желания, чтоб письмо уходило с совершенно непонятного адреса, который, возможно, будет считаться спамом и отфутболиваться, надо устанавливать ручками нормальный адрес.

Автор: n3ville 1.6.2009, 21:29
народ, я обновляю сайт один. у меня есть к нему фтп доступ.
файлы add и index я создал, а как мне шаги 1 и 2 сделать? 

Автор: Shark 1.6.2009, 22:21
Цитата(n3ville @  1.6.2009,  21:29 Найти цитируемый пост)
народ, я обновляю сайт один. у меня есть к нему фтп доступ.
файлы add и index я создал, а как мне шаги 1 и 2 сделать?  

а хостинг, где у тя сайт лежит, вообще поддерживает  mysql?если нет, то 1 и 2 шаг надо будет заменять на файлы

Автор: n3ville 1.6.2009, 22:28
вообще вроде поддерживает) а второй вариант можно как то рассмотреть здесь? ) на всякий случай

Автор: n3ville 2.6.2009, 15:03
при отправке пишет вот такую хрень:
if(isset($_POSTgo'])) { mysql_query("INSERT INTO passportanketa VALUE('".mysql_real_escape_string($_POST['fio'])."', '".mysql_real_escape_string($_POST['address'])."')") } $to = '[email protected]'; $subject = 'тема_письма'; $message = 'текст_письма'; $headers = "From: [email protected]\r\n"; mail($to, $subject, $message, $headers); //если указан e-mail, отправляем и почту //if(!empty($_POST['email'])) { // $to=$_POST['email']; // $subject="Паспортные данные"; // $message="Паспортные данные: " // \n ФИО: ".$_POST['fio']." // \n Адрес: ".$_POST['address']." // mail($to, $subject, $message) or print "Невозможно отослать письмо"; // } 

Автор: bars80080 2.6.2009, 15:43
а сервер вообще установлен?

Автор: n3ville 2.6.2009, 16:05
тупанул там. не вписал в add.php <?php и ?>
терь вылетает такая ошибка  
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ')' in /var/www/html/h2club.mirea.ru/htdocs/projects/passportanketa/add.php on line 4

Автор: Shark 2.6.2009, 16:10
Цитата(n3ville @  2.6.2009,  15:03 Найти цитируемый пост)
при отправке пишет вот такую хрень:
if(isset($_POSTgo'])) { mysql_query("INSERT INTO passportanketa VALUE('".mysql_real_escape_string($_POST['fio'])."', '".mysql_real_escape_string($_POST['address'])."')") } $to = '[email protected]'; $subject = 'тема_письма'; $message = 'текст_письма'; $headers = "From: [email protected]\r\n"; mail($to, $subject, $message, $headers); //если указан e-mail, отправляем и почту //if(!empty($_POST['email'])) { // $to=$_POST['email']; // $subject="Паспортные данные"; // $message="Паспортные данные: " // \n ФИО: ".$_POST['fio']." // \n Адрес: ".$_POST['address']." // mail($to, $subject, $message) or print "Невозможно отослать письмо"; // }  


ну я, конечно, все понимаю... но в коде ошибка есть:
Вот тебе с исправлением
Код

if(isset($_POST['go']))
      {
                mysql_query("INSERT INTO passport VALUE('".mysql_real_escape_string($_POST['fio'])."', '".mysql_real_escape_string($_POST['address'])."')")
       }
//если указан e-mail, отправляем и почту
if(!empty($_POST['email']))
      {
               $to=$_POST['email'];
    $subject="Паспортные данные";
    $message="Паспортные данные: "
                \n ФИО: ".$_POST['fio']."
                \n Адрес: ".$_POST['address']."
    mail($to, $subject, $message) or print "Невозможно отослать письмо";
      }

вместо if(isset($_POST['go'])) я написал это if(isset($_POSTgo']))

Почему замечают незначительные ошибки, а значительные не замечают:(

Автор: n3ville 2.6.2009, 16:21
спасибо, поправил, теперь пишет вот это:
Parse error: syntax error, unexpected '}' in /var/www/html/h2club.mirea.ru/htdocs/projects/passportanketa/add.php on line 5

Автор: bazzjr 2.6.2009, 16:58
Цитата(bars80080 @  2.6.2009,  15:43 Найти цитируемый пост)
а сервер вообще установлен?


Как всегда реально в тему  smile

Добавлено через 1 минуту и 21 секунду
Цитата(n3ville @  2.6.2009,  16:21 Найти цитируемый пост)
спасибо, поправил, теперь пишет вот это:Parse error: syntax error, unexpected '}' in /var/www/html/h2club.mirea.ru/htdocs/projects/passportanketa/add.php on line 5


ну дык в чем проблема, смотри в том файле на 5-й линии "}" ну  вообщем сколько открывающих "{" столько и закрывающих  должно быть "}"

Автор: n3ville 2.6.2009, 17:30
ну так всё правильно) с этим там всё ок. а ошибку всё равно выдает

Автор: bars80080 2.6.2009, 17:42
Цитата(n3ville @  2.6.2009,  17:30 Найти цитируемый пост)
а ошибку всё равно выдает 

потому что в конце 3-ей строчки не стоит ;

плюс ещё ошибка здесь:
Код

    $message="Паспортные данные: "
                \n ФИО: ".$_POST['fio']."
                \n Адрес: ".$_POST['address']."

две лишние кавычки и одна лишняя точка, опять же не ;
смотрите, подсветка всё показывает
Код

    $message="Паспортные данные: 
                \n ФИО: ".$_POST['fio']."
                \n Адрес: ".$_POST['address'];

Автор: Shark 2.6.2009, 17:54
bars80080, огромное тебе спасибо.... за выявление моего невнимательства...

n3ville, я, конечно, все понимаю, но ты хотя бы книги читай.. smile. если я тебе начну переписывать книгу... то там столько ошибок!!!!... я в своей книге ошибки ручкой исправлял...и исправлял не тогда, когда смотрел на код... а только после того, когда видел ошибку!

Автор: n3ville 2.6.2009, 22:11
спасибо всем за помощь) всё равно не работает. будем разбираться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)