Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30

Гостевая книга

15.01.2016, 22:12. Показов 1985. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP+Мysql=Denver.
Такой вопрос.Может ли кто помочь. Гостевая книга ,забиваю в форму ,отправляю,но база данных не получает.
В чём причина.?



SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
INSERT INTO `kat` (`id_kat`, `name_kat`) VALUES 
(NULL, 'Музыка'),
(NULL, 'Литература'),
(NULL, 'Политика'),
(NULL, 'Религия'),
(NULL, 'История'),
(NULL, 'Игры'),
(NULL, 'Культура'),
(NULL, 'Интернет'),
(NULL, 'Искусство');
 
CREATE TABLE `gosttab` ( 
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_kat` INT(10) NOT NULL,
`name_kat` VARCHAR(55) NOT NULL,
 
`name` VARCHAR( 255 ) NOT NULL , 
`email` VARCHAR( 255 ) NOT NULL , 
`otz` TEXT NOT NULL , 
`page` VARCHAR( 255 ) NOT NULL , 
`date` VARCHAR( 255 ) NOT NULL,
 KEY `id_kat`(`id_kat`)
) 
 
CREATE TABLE `kat` (
  `id_kat` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name_kat` VARCHAR(55) NOT NULL,
)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<form name="f_add_otz" action="" method="post"> 
ФИО: <input name="name" type="text" value=""><br> 
Рубрика<input name="name_kat" type="text" value=""><br>
E-mail: <input name="email" type="text" value=""><br> 
Сообщение: <textarea name="otz" rows=5 cols=20 wrap="off"></textarea><br> 
<input type="submit" name="add_otz" value="Отправить"> 
</form>  
 <? 
include("config.inc.php"); 
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS) 
or die("Не могу подключиться" ); 
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД'); 
 
if($_POST['add_otz']) { 
 
$name = htmlspecialchars($_POST['name']); 
$email = htmlspecialchars($_POST['email']); 
$otz = htmlspecialchars($_POST['otz']); 
$name_kat = htmlspecialchars($_POST['name_kat']); 
 
$page = $_SERVER['REQUEST_URI']; 
$date = date("d.m.Y - H:i"); 
 
if($name != '' AND $email != '' AND $otz != '' AND $name_kat !='' ){ 
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)) 
{$err = 'Неверно введен е-mail.';} 
if(!$err){ 
//формируем html сообщение 
$massege = "<html><head></head><body> 
Новый отзыв на сайте! <br><br> 
К странице http://www.ИМЯ_САЙТА.ru".$page.", написали отзыв:<br><br> 
<table width=100% border=0> 
<tr><td width=10></td> 
<td><b>".$name."</b> (".$email.")<br>".$date." 
<br>".$otz." 
</td> 
</tr></table><br> 
</body></html>"; 
 
$headers = "Content-type: text/html; charset=utf-8 \r\n"; 
$headers .= "From: Мой сайт <admin@ИМЯ_САЙТА.ru>\r\n"; 
 
if(mail("admin@ИМЯ_САЙТА.ru", "Новый отзыв с Вашего сайта", $massege, $headers)) 
{$err="Спасибо за отзыв".$name;}else{$err='Ошибка в отправлении';} 
 
mysql_query (" INSERT INTO gosttab(name, email, otz, page, otz_date,name_kat) 
VALUES ('$name', '$email', '$otz', '$page', '$date','name_kat')"); 
 
} 
}else{ 
$err = 'Вы заполнили не все поля!';
echo 'Вы заполнили не все поля'; 
} 
}else{ 
$err='Вы не человек :( '; 
} 
 
?>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2016, 22:12
Ответы с готовыми решениями:

Гостевая книга
Сделала форму как на рисунке..как сделать,чтоб выдавало ошибку ,когда нет данных в поле со звездочками? &lt;html&gt; &lt;head&gt; ...

гостевая книга
не работает гостевая книга.... проблему объясню в скриншотах. вот код самой книги: &lt;?php ...

Гостевая Книга
Написал гостевую книгу, но не знаю как реализовать удаление и редактирование прямямо на этой странице. Гостевая книга работает без бд,...

9
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
15.01.2016, 23:37
Цитата Сообщение от Линдси Посмотреть сообщение
mysql_query (" INSERT INTO gosttab(name, email, otz, page, otz_date,name_kat)
VALUES ('$name', '$email', '$otz', '$page', '$date','name_kat')");
Мне кажется (сам только начинаю, но похожая проблема только что была), что имена полей надо взять в апострофы (там где буква Ё)
PHP
1
mysql_query (" INSERT INTO gosttab(`name`, `email`, `otz`, `page`, `otz` ...
1
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
16.01.2016, 00:03
1. Добавьте вывод ошибок MySQL:
PHP
1
mysql_query(...) or die(mysql_error());
2. Подробней опишите, что показывается на экране до и после отправки формы.
3. Нигде не вижу вывода $err. Ошибки вы сохраняете, но не выводите.
4. На 47 строке видимо забыли $ у последнего поля.

И приучитесь нормально расставлять табы, а то в ваших ифах и элсах легко запутаться..
1
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30
16.01.2016, 22:25  [ТС]
Мда.Проблемма была примитивная.Sql запросы были без точек запятых в конце.Вот что значит долго не программировал вообще)
Но другая проблема. Не добавляются из формы в бд русские символы.Как это исправляется.?)
И вывод $ERR делается так echo $err?... Помню что когда то было так,но может ошибаюсь)
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
16.01.2016, 22:28
Лучший ответ Сообщение было отмечено Линдси как решение

Решение

Цитата Сообщение от Линдси Посмотреть сообщение
Sql запросы были без точек запятых в конце.
Вряд ли в этом была проблема, поскольку я никогда не ставлю ; в конце запросов.

Цитата Сообщение от Линдси Посмотреть сообщение
Не добавляются из формы в бд русские символы.
Поставьте кодировку UTF8 для файла, для таблицы и всех её столбцов, для соединения с БД (SET NAMES).
2
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30
16.01.2016, 23:06  [ТС]
PHP
1
2
3
4
5
include("config.inc.php"); 
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS) 
or die("Не могу подключиться" ); 
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД');
mysql_query("SET NAMES 'utf8'");
Так?...Не помогает. А БД и таблицы заданы в UTF-8.

Добавлено через 7 минут
А вот...Вышло Кодировать в UTF8 теперь работает...Спасибо ещё раз)
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30
18.01.2016, 21:45  [ТС]
Прошу прощения что донимаю.Но я тут пытаюсь выпадающий список категорий сделать. Вот это по идее должно работать,но данные из таблицы упрямо не подгружаются.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<form name="f_add_otz" action="" method="post"> 
Имя: <input name="name" type="text" value=""><br> 
E-mail: <input name="email" type="text" value=""><br> 
Категория:<br> <select  name="kateg">
<option value=0>Категория</option>
<?php
include("config.inc.php"); 
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS) 
or die("Не могу подключиться" ); 
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД');
mysql_query("SET NAMES 'utf8'");
$res = mysql_query('select `id_kate`, `name_kat` from `kat`');
while($row = mysql_fetch_assoc($res)){
    ?>
    <option value="<?=$row['id_kate']?>"><?=$row['name_kat']?></option>
    <?
}
?>
</select>
Сообщение: <textarea name="otz" rows=5 cols=20 wrap="off"></textarea><br> 
<input type="submit" name="add_otz" value="Отправить"> 
</form>  
 
 <? 
 
if($_POST['add_otz']) { 
 
$name = htmlspecialchars($_POST['name']); 
$email = htmlspecialchars($_POST['email']); 
$otz = htmlspecialchars($_POST['otz']); 
$name_kat =htmlspecialchars($_POST['name_kat']);
 
$page = $_SERVER['REQUEST_URI']; 
$date = date("d.m.Y - H:i"); 
 
if($name != '' AND $email != '' AND $otz != '' AND $name_kat !=''){ 
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)) 
{echo $err = 'Неверно введен е-mail.';} 
if(!$err){ 
//формируем html сообщение 
$massege = "<html><head></head><body> 
Новый отзыв на сайте! <br><br> 
К странице http://www.ИМЯ_САЙТА.ru".$page.", написали отзыв:<br><br> 
<table width=100% border=0> 
<tr><td width=10></td> 
<td><b>".$name."</b> (".$email.")<br>".$date." 
<br>".$otz." 
</td> 
</tr></table><br> 
</body></html>"; 
 
$headers = "Content-type: text/html; charset=utf-8 \r\n"; 
$headers .= "From: Мой сайт <admin@ИМЯ_САЙТА.ru>\r\n"; 
 
if(mail("admin@ИМЯ_САЙТА.ru", "Новый отзыв с Вашего сайта", $massege, $headers)) 
{$err="Спасибо за отзыв".$name;}else{$err='Ошибка в отправлении';} 
 
mysql_query (" INSERT INTO gosttab (name, email, otz, page, date,name_kat) 
VALUES ('$name', '$email', '$otz', '$page', '$date','$name_kat')"); 
 
} 
}else{ 
echo $err = 'Вы заполнили не все поля!'; 
} 
 
} 
 
?>
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
18.01.2016, 21:51
Ну а вы уверены что запрос корректен, проверьте что у вас верно формируется массив $row например так:
PHP
1
2
3
4
5
6
while($row = mysql_fetch_assoc($res)){
  print_r($row);
    ?>
    <option value="<?=$row['id_kate']?>"><?=$row['name_kat']?></option>
    <?
}
Если ничего не выводит, тогда проверьте запрос, корректен ли.
И я вот точно не помню, но помоему в mysql_select_db не нужно 2м параметром указывать коннект.
PHP
1
mysql_select_db($DB) or die ('Не могу выбрать БД');
И проверьте вобще задана ли переменная $DB
1
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30
19.01.2016, 01:18  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 <? 
include("config.inc.php"); 
$link_1 = mysql_connect($DBSERVER, $DBUSER, $DBPASS) 
or die("Не могу подключиться" ); 
mysql_select_db($DB, $link_1) or die ('Не могу выбрать БД');
mysql_query("SET NAMES 'utf8'"); 
$res = mysql_query('select `id_kat`, `name_kat` from `kat`');
while($row = mysql_fetch_assoc($res)){
 
    ?>
    <option value="<?=$row['id_kat']?>"><?=$row['name_kat']?></option>
    <?
}
?>
</select><br>
Решил так...Даже данные выгружаются в таблицу . Но вместо name_kat передаёт id из таблицы.)
Вводил print_r($row); Но никакого результата.)
Насчёт 2х или одного параметров в селекте неизвестно.
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 30
20.01.2016, 19:48  [ТС]
Решил проблемму.
PHP
1
<option value="<?=$row['name_kat']?>"><?=$row['name_kat']?></option>
Другая проблема выгрузить в таблицу более одного значения name_kat.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2016, 19:48
Помогаю со студенческими работами здесь

Гостевая книга
Все сообщения должны храниться в одном текстовом файле. Каждое из сообщений должно состоять из 5 строк: Первая срока содержит...

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

Гостевая книга
Здравствуйте знатоки php у меня к вам вопрос!Я создал свою гостевую книгу и столкнулся с токой проблемой,можно ли с помощью каких-либо...

Гостевая книга
День добрый! Учу рнр. По учебнику делаю простой пример гостевой книги. Есть файл с формой и выводом комментариев guestbook.php, есть...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru