Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Гостевая книга из "PHP 5/6 u MySQL 6" 2 издание
На страницу 1, 2  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Пт Мар 15, 2013 7:49 pm    Заголовок сообщения: Гостевая книга из "PHP 5/6 u MySQL 6" 2 издание
Ответить с цитатой

Здравствуйте! Я сделал скрипты как в "PHP 5/6 u MySQL 6" 2 издание гостевой книги из г. 38. И у меня появились 2 ошибки:
1. В синем поле не выводится имя автора коментария.
2. Когда я ввожу данные в textarea и "Добавить" появляется ошибка "Вы забыли указать текст сообщения", но я написал там текст.
Прошу помочь!
P.S. Ссылка на скрипт http://ranid.ru/obs/gb_add.php
P.P.S. Комментарий который там находится я разместил через бд.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Мар 16, 2013 12:21 pm    Заголовок сообщения:
Ответить с цитатой

Толку от ссылки на скрипт не. Лучше выложите здесь его код.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Сб Мар 16, 2013 12:42 pm    Заголовок сообщения:
Ответить с цитатой

den писал(а):
Толку от ссылки на скрипт не. Лучше выложите здесь его код.
Файл config.php
Код:
<?php
$dbhost='mysql.hostinger.ru';
$dbuser='u626399099_nik1';
$dbpasswd='q1w2e3r4';
$dbname='u626399099_nik1';
?>

Файл gb_add.php
Код:
<?php
// подключаемся к серверу, выбираем базу данных и устанавливаем кодировку

require_once "config.php";

$admin = "nikolai2000@tut.by";
$site = "http://ranid.ru/";

@mysql_connect($dbhost, $dbuser, $dbpasswd) or
die("Не могу подключиться к БД");

@mysql_select_db($dbname) or die("Не могу выбрать БД");

mysql_query('SET NAMES cp1251;');

$uname = $_POST['uname'];
$t = $_POST['t'];

// избавляемся от вредоносного кода
$uname = strip_tags($uname);
$uname = HtmlSpecialChars($uname);

$t = strip_tags($t);
$t = HtmlSpecialChars($t);

// Имя пользователя можно не указывать, а вот текст сообщения - обязательно
if (strlen($uname)==0) $uname = "Гость";
if (strlen($t)==0) die('Вы забыли указать текст сообщения');

$q = "insert into gb values(0, \"$uname\", \"$t\", 0)";

mysql_query($q) or die('MySQL insert error');

$ID = mysql_insert_id();

// Сообщение пользователю
echo "<p>Ваше сообщение было успешно добавлено в базу данных. После одобрения администратором
вы сможете увидеть его в нашей гостевой книге";

// Сообщение администратору
$msg = "В гостевой книге появилось новое сообщение:

$t

Вы можете одобрить его: " . $site . "gb_service.php?a=approve&id=$ID" . " или удалить: " . $site . "gb_service.php?a=del&id=$ID";

// Отправляем сообщение администратору
mail($admin, "Новое сообщение в гостевой книге", $msg);

?>

Файл gb_service
Код:
<?php
// подключаемся к серверу, выбираем базу данных и устанавливаем кодировку

require_once "config.php";

@mysql_connect($dbhost, $dbuser, $dbpasswd) or
die("Не могу подключиться к БД");

@mysql_select_db($dbname) or die("Не могу выбрать БД");

mysql_query('SET NAMES cp1251;');

$action = $_GET['a'];
$ID = $_GET['id'];

if (!is_numeric($ID)) die("Номер записи указан неверно!");

if ($action === "approve") {

$q = "update gb set apr = 1 where id = $ID";
@mysql_query($q) or die ("MySQL error");
echo "Сообщение $ID было одобрено";

}

if ($action === "del") {

$q = "delete from gb where id = $ID";
@mysql_query($q) or die ("MySQL error");
echo "Сообщение $ID было удалено";

}
?>

Файл gb_show.php
Код:
<?php
// подключаемся к серверу, выбираем базу данных и устанавливаем кодировку

require_once "config.php";

@mysql_connect($dbhost, $dbuser, $dbpasswd) or
die("Не могу подключиться к БД");

@mysql_select_db($dbname) or die("Не могу выбрать БД");

mysql_query('SET NAMES cp1251;');

// количество объявлений на странице
$N = 5;

echo "<h1>Добро пожаловать в гостевую книгу!</h1>";

// использовать функцию mysql_num_rows() нельзя, потому как
// для того чтобы узнать общее количество записей, нужно выполнить
// запрос select * from ob, то есть получить все записи, а это
// нежелательно, поэтому используем функцию count

$r1=mysql_query("select count(*) as rec from gb where apr=1");
$f = mysql_fetch_row($r1);
$rec = $f[0];             // всего записей в таблице

// если страница не указана, выводим первую
if (!isset($_GET['page'])) $page=0;
else $page = $_GET['page'];

// записи, которые нужно вывести
$records = $page * $N;

// запрос
$q="select * from gb where apr=1 limit ".$records.", $N";

echo "Всего записей $rec<br>";

$r=mysql_query($q);               // выполняем запрос
$n = mysql_num_rows($r);            // к-во записей

// если страница не первая, выводим ссылку Назад
if ($page > 0) {
$p = $page - 1;
echo "<a href=gb_how.php?page=$p>Назад</a>&nbsp";
}

$page++;                                   // увеличиваем страницу

// выводим ссылку на следующие 5 записей (на след. страницу),
// если она есть, то есть количество записей, которые нужно вывести и
// смещение не превышает общее количество записей
if ($records+$N < $rec)
echo "<a href=gb_show.php?page=$page>Далее</a>";

// выводим объявления
for ($i=0; $i<$n; $i++)
{
    $f=mysql_fetch_array($r);

    // выводим дату (поле dt)
    echo "<p><table width=100%>
          <tr><td bgcolor=navy width=10%>
          <font name=tahoma size=2 color=white>$f[uname]</font></td>";

    // выводим текст объявления (поле t)
    echo "<td colspan=2 bgcolor=grey>
          <font name=tahoma size=2 color=white>$f[t]</td>
          </tr></table>";
}

// форма добавления сообщения
echo '<p>Новое сообщение:
<p><form action=gb_add.php method=post>
Ваше имя: <input tyle=text name=uname>
<p><textarea cols=50 rows=10 name=t></textarea>
<p><input type=submit value=Добавить>';


?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Мар 16, 2013 6:46 pm    Заголовок сообщения:
Ответить с цитатой

_nik1_, проверьте вашу базу данных только что добавил туда 2 тестовых сообщения:

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

Посмотрите, есть ли они в таблице?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Вс Мар 17, 2013 5:59 am    Заголовок сообщения:
Ответить с цитатой

den писал(а):
_nik1_, проверьте вашу базу данных только что добавил туда 2 тестовых сообщения:

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

Посмотрите, есть ли они в таблице?
Сообщение добавил, но имя пользователя так и не отображается. А мои сообщения не добавлялись так как содержали русские буквы, которые скрипт не хочет добавлять в бд.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:22 am    Заголовок сообщения:
Ответить с цитатой

У вас проблема заключается в настройках PHP. Создайте .htaccess в корневом каталоге документов веб-сервера со след содержимым

php_value mbstring.language "Russian"
php_value mbstring.http_input "auto"
php_value mbstring.http_output "cp1251"
php_value mbstring.encoding_translation "On"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Вс Мар 17, 2013 6:26 am    Заголовок сообщения:
Ответить с цитатой

Сделал, но не помогает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:34 am    Заголовок сообщения:
Ответить с цитатой

_nik1_, это 100% неправильные настройки сервера. Можно обратиться к хостеру, он должен пофиксить, этого его баг (((

Попробуйте также этот файл .htaccess поместить в каталог obs.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:36 am    Заголовок сообщения:
Ответить с цитатой

Пока попробуйте в форме изменить POST на GET, соответственно в коде _POST на _GET, но большие отзывы никто не сможет опубликовать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:37 am    Заголовок сообщения:
Ответить с цитатой

Вот еще ссылка, почитайте http://diesel.elcat.kg/index.php?showtopic=117995
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Вс Мар 17, 2013 6:38 am    Заголовок сообщения:
Ответить с цитатой

У меня стоит ещё на этом сайте joomla и в ней нормально обрабатывается русские буквы. Может с бд проблемы?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:39 am    Заголовок сообщения:
Ответить с цитатой

До БД информация как раз и не доходит. Она теряется при передаче методом POST. Попробуйте грохнуть .htaccess вообще (предварительно его сохранив). Может Джумла там что-то накосячила.

Какой софт на сервере? Версия апача, пхп, мускула
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Вс Мар 17, 2013 6:41 am    Заголовок сообщения:
Ответить с цитатой

den писал(а):
До БД информация как раз и не доходит. Она теряется при передаче методом POST. Попробуйте грохнуть .htaccess вообще (предварительно его сохранив). Может Джумла там что-то накосячила.

Какой софт на сервере? Версия апача, пхп, мускула
Домен: ranid.ru
IP Адрес: 31.170.165.62
Имя пользователя: u626399099
Пароль: ••••••••••
Место на диске: 0.02 / Unlimited MB
Трафик: 0.00 / Unlimited MB
Корневая папка: /home/u626399099
Имя Сервера: server20.hostinger.ru
IP Сервера: 31.170.164.29
Загруженность Сервера: 3.26
Загруженность MySQL Сервера: 0.1
Apache Версия: Apache/2.2.14
PHP Версия: 5.4
MySQL Версия: 5.1.61
Активирован: 2013-02-12 16:18:02
Истечение Срока: 2013-04-08
Периодичность выставления счетов: раз в месяц
Статус:
Активный
Хостинговый План: Премиум
Набор Услуг: Премиум
Информация Клиента
Имя: Николай Ратько
Почта: nikolai2000@tut.by
Регистрация: 2012-06-16
Статус:
Активный
Последний Визит: 48 минут назад
Последний визит с: 212.98.182.237
Страна: Белоруссия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Мар 17, 2013 6:43 am    Заголовок сообщения:
Ответить с цитатой

Самый новый софт. Напишите в саппорт, думаю, помогут. Это вопрос в настройках апача/пхп. Подобные баги видел на Апаче 1.3, но тут последняя версия (даже ПХП 5.4 поставили).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
_nik1_




Зарегистрирован: 15.03.2013
Сообщения: 7
Откуда: Минск

СообщениеДобавлено: Вс Мар 17, 2013 10:40 am    Заголовок сообщения:
Ответить с цитатой

Можете подсказать мне хороший хостинг с поддержкой php и mysql(желательно с внешним доступом)? Например на котором стоит ваш сайт.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис