[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Гостевая книга
Гость_Роман
Здравствуйте.
Видел урок посвященный созданию гостевой книги от ИРБИС-КОМАНДЫ. Захотел испробовать у себя ее. Вообщем на локалхосте она замечательно работает, а на Хостинге отказывается создавать файл и записывать туда комментарии. Сначала я подумал, может он не поддерживает ПХП5, но потом посмотрел версию и она оказалась 5.3
Может быть кто знает почему она не работает ? Или возможно что у меня ограниченны права на сервере?
Код

<?php

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


$author = !empty($_POST['author']) ? $_POST['author'] : null;
$text = !empty($_POST['text']) ? $_POST['text'] : null;
$info = array();


/////////////////////////////////////////////////////////////////
// СКРИПТ
/////////////////////////////////////////////////////////////////

if(!empty($_POST['submit']))
{
if(!$author)
$info[] = 'Текстовое поле не заполнено.';

if(!$text)
$info[] = 'Текстовая область не заполнена.';

if(count($info) == 0)
{ // Если файл существует
if(file_exists('com/history.txt'))
{
$posts = unserialize(file_get_contents('com/history.txt'));
$keys = array_keys($posts);
$id = max($keys) + 1;
}
else
$id = 1;
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $author;
$posts[$id]['mess'] = $text;

file_put_contents('com/history.txt', serialize($posts));

$author='';
$text='';
}
}

else


/////////////////////////////////////////////////////////////////
// ОТОБРАЖЕНИЕ
/////////////////////////////////////////////////////////////////

echo implode('<br>', $info) .'<br>';

if(file_exists('com/history.txt'))
{
$array = unserialize(file_get_contents('com/history.txt'));

foreach($array as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(htmlspecialchars($post['mess']));
?>

<div
class="comment_block">
<div
class="comment_avatar">
<img
src="images/com.png" alt="аватар" width="128px" height="128px" align="left" title="аватар"/>
</div>
<div
class="comment_arrow">
<img
src="images/come.jpg" width="20px" height="20px" style="left:1px; top:14px; position:absolute;" alt=""/>
</div>
<div
class="comment_text"><p><span class="comname">Автор: <strong><? echo $name ?></strong></span> <span class="comdate">Дата добавления: <? echo $date;?></span></p><p class="com"><? echo $mess ?></p>
</div>
</div>
<?php

}
}

?>
<form
class="com_form" action="" method="post">
<p
class="name">
<input
type="text" name="author" value="<?php echo htmlspecialchars($author); ?>"/>
<label
for="author"> <a name="com_add">Ваше имя</a> </label>
</p>
<p>
<textarea
name="text" cols="50" rows="60"><?php echo htmlspecialchars($text); ?></textarea>
</p>
<p
class="submit_com">
<input
type="submit" name="submit" value="Добавить комментарий" />
</p>
</form>





Спустя 3 минуты, 30 секунд (28.06.2010 - 14:33) twin написал(а):
На директорию com нужно выставить права 777

Спустя 22 минуты, 24 секунды (28.06.2010 - 14:55) Гость_Roman написал(а):
Спасибо большое! на папке стояло 775 smile.gif

Спустя 2 дня, 22 часа, 15 минут, 24 секунды (1.07.2010 - 13:11) Диана написал(а):
// пишем файл
file_put_contents('text.txt', $text2, FILE_APPEND);
// и перенаправляем браузер на новую страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
// Останавливаем скрипт (все равно браузер уже ушел)
exit();
Цитата
// пишем файл
            file_put_contents('text.txt', $text2, FILE_APPEND);
        // и перенаправляем браузер на новую страницу
            header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
        // Останавливаем скрипт (все равно браузер уже ушел)     
            exit();



Я тоже хочу попробовать сделать гостевую книгу, но не могу перейти на др. страницу на этапе сброс POST параметров. Объясните, пож., можно ли $_SERVER['HTTP_HOST'] - 'HTTP_HOST' заменить localhost или создавать хост обязательно? И 'PHP_SELF' - это что, файл называется php_self.php?

Спустя 12 минут, 13 секунд (1.07.2010 - 13:23) Lenarfate написал(а):
Диана
помоему вчера в одном из ваших постов вам доходчиво объяснили,что есть данные переменные!

Спустя 46 минут, 36 секунд (1.07.2010 - 14:10) twin написал(а):
Чтобы раз и на всегда запомнить, нужно просто сделать

echo $_SERVER['HTTP_HOST'];
и посмотреть, что там. Так же и с остальными.

Спустя 10 дней, 19 часов, 46 минут, 32 секунды (12.07.2010 - 09:56) X L написал(а):
Здравствуйте уважаемые программисты.
В уроке с гостевой книгой на 9-м шаге при удалении одного из сообщений, а именно после нажатия кнопки в окне с надписью ПОДУМАЙ страница обновляется и пишет вот ЭТО! :

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\...\www\admin.php:38) in Z:\home\...\www\admin.php on line 216

вот эта 216 строка

header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);

При чем обновляя страницу - ЭТО! остаётся а щёлкнув мышью в адресной строке и нажав enter всё приходит в порядок т.е как и должно быть - админка с удалёнными сообщениями - ЧТО же ЭТО такое ????
Если честно то ЭТО уже задолбало на каждом втором скрипте ЭТО ест мне моззг mad.gif и кодировку я уже сменил на utf-8

Спустя 7 минут, 27 секунд (12.07.2010 - 10:04) twin написал(а):
Потому что ты сунул этот скрипт внутрь другого. А в том выше заколовка есть вывод. На 38-й строчке.

Если есть такая необходимость, то нужно использовать буферизацию.

Спустя 14 минут, 18 секунд (12.07.2010 - 10:18) X L написал(а):
YYYYYYPPPPAAAAAAAAAAAAAAAAAAAA!!!
Заработоло - спасибо за науку wink.gif

Спустя 2 месяца, 5 дней, 13 часов, 22 минуты, 21 секунда (17.09.2010 - 23:40) Слава написал(а):
Здрасте Ирбис!

По гостевой все придельно ясно. Только вот с функциями запутался (мануал уже читал):
function dirScan($dir)  
{
static $files;

if(empty($files))
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}

$files = count($files)?$files:array('1');

return $files;
}

- Это просто обявление, что такая функция есть или там уже происходят какие то процессы? То есть после этой записи $files уже существует или еще нет.

Вот дальше
 function pageMenu($page)    
{
$files = dirScan('data');
natsort($files);

$menu = ' | ';

foreach($files as $num)
if($page == $num)
$menu .= '<strong>'. $num .'</strong> | ';
else
$menu .= '<a href="?page='. $num .'">'. $num .'</a> | ';

return $menu;
}

- Что же находится в 'data' не разберусь и откуда оно там появляется. И я так понимаю, $menu это локальная переменная этой функции, за пределами функции ее нет. Ее содержание переходит в $page.

Спасибо

Спустя 10 минут, 35 секунд (17.09.2010 - 23:51) twin написал(а):
Если возникают такие вопросы, нужно начать пораньше, не с этого раздела. Как минимум с этого.

Спустя 8 часов, 32 минуты, 14 секунд (18.09.2010 - 08:23) Слава написал(а):
Ох и Твин ph34r.gif , не мог подсказать что 'data' это должна быть такая дирректория rolleyes.gif , тогда все вопросы отпадают сами собой!!!

Спустя 27 минут, 14 секунд (18.09.2010 - 08:50) twin написал(а):
Эти пропадут, появятся другие. Нужно как минимум представлять, что делаешь. А так за каждую закорючку ненаспрашиваешься.
По этому лучше почитать основы сначала.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.