вот код :
<?php
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
/////////////////////////////////////////////////////////////
// ADJUSTMENT
// НАСТРОЙКИ
/////////////////////////////////////////////////////////////
/**
* Quantity of posts on page
* Количество постов на странице
*/
define('NUM_POSTS', 5);
/////////////////////////////////////////////////////////////
// FUNCTIONS
// ФУНКЦИИ
/////////////////////////////////////////////////////////////
/**
* Function of reading of a directory
* Функция чтения директории
* @param string
* @return array
*/
function dirScan($dir)
{
static $files;
if(empty($files))
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
$files = count($files)?$files:array('1');
return $files;
}
/**
* Function of generation of the menu of paginal navigation
* Функция генерации меню постраничной навигации
* @param string
* @return string
*/
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;
}
/**
* Replacement function bb-tags and smilies
* Функция замены bb-тегов и смайликов
* @param string
* @return string
*/
function bbTags($text)
{
$bb = array(
'',
'',
'',
'',
'
'
'',
'',
'[

'[

'[

'[

);
$tag = array(
'<b>',
'</b>',
'<i>',
'</i>',
'<s>',
'</s>',
'<u>',
'</u>',
'<img src="smailes/1.gif" />',
'<img src="smailes/2.gif" />',
'<img src="smailes/3.gif" />',
'<img src="smailes/4.gif" />'
);
return str_ireplace($bb, $tag, $text);
}
/////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////
// Переменная для постранички
$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
$posts = array();
/////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
/////////////////////////////////////////////////////////////////
if(!empty($_POST['ok']))
{
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';
if(!$text2)
$info[] = 'Текстовая область не заполнена.';
if(count($info) == 0)
{
$file = max(dirScan('data'));
if(file_exists('data/'. $file))
{
$posts = unserialize(file_get_contents('data/'. $file));
$keys = array_keys($posts);
$id = max($keys) + 1;
$num = count($posts);
}
else
$num = $id = 1;
// Здесь меняем номер на константу
if($num >= NUM_POSTS)
{
++$file;
unset($posts);
}
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('data/'. $file, serialize($posts));
// Перенаправляем браузер на последнюю страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] .'?page='. $file);
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
/////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
/////////////////////////////////////////////////////////////////
?>
<form action="" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<input name="ok" type="submit" />
</form>
<div style="padding-left:50px">
<?php
// отрисовываем меню навигации. Еще одно - ниже
echo pageMenu($page);
?>
</div>
<?php
echo implode('<br>', $info) .'<br>';
if(file_exists('data/'. $page))
{
$posts = unserialize(file_get_contents('data/'. $page));
foreach($posts as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(bbTags(htmlspecialchars($post['mess'])));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date; ?> / <strong><?php echo $name; ?></strong>
<hr width="30%" align="left" />
<?php echo $mess; ?>
</div>
<?php
}
}
?>
<div style="padding-left:50px">
<?php echo pageMenu($page); ?>
</div>
если вас не затруднит объясните суть ошибки , заранее спасибо
Спустя 12 минут (28.06.2012 - 17:06) Денис777 написал(а):
как мне пишет денвер что ошибка где то тут :
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
Спустя 5 минут, 17 секунд (28.06.2012 - 17:12) twin написал(а):
Текст ошибки в студию
Спустя 8 минут, 12 секунд (28.06.2012 - 17:20) Денис777 написал(а):
twin
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
Спустя 9 минут, 27 секунд (28.06.2012 - 17:29) johniek_comp написал(а):
Денис777

прямо так и пишет?

прямо так и пишет?
Спустя 6 минут, 19 секунд (28.06.2012 - 17:36) Денис777 написал(а):
johniek_comp так и пишет , что ошибка на 17 и 18 линии
Спустя 1 минута, 48 секунд (28.06.2012 - 17:37) Денис777 написал(а):
вот код без коментов а то что то слишком большой ><
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
define('NUM_POSTS', 5);
function dirScan($dir)
{
static $files;
if(empty($files))
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
$files = count($files)?$files:array('1');
return $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;
}
function bbTags($text)
{
$bb = array(
'',
'',
'',
'',
'',
'',
'',
'',
'[
]',
'[
]',
'[
]',
'[
]'
);
$tag = array(
'<b>',
'</b>',
'<i>',
'</i>',
'<s>',
'</s>',
'<u>',
'</u>',
'<img src="smailes/1.gif" />',
'<img src="smailes/2.gif" />',
'<img src="smailes/3.gif" />',
'<img src="smailes/4.gif" />'
);
return str_ireplace($bb, $tag, $text);
}
$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
$posts = array();
if(!empty($_POST['ok']))
{
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';
if(!$text2)
$info[] = 'Текстовая область не заполнена.';
if(count($info) == 0)
{
$file = max(dirScan('data'));
if(file_exists('data/'. $file))
{
$posts = unserialize(file_get_contents('data/'. $file));
$keys = array_keys($posts);
$id = max($keys) + 1;
$num = count($posts);
}
else
$num = $id = 1;
if($num >= NUM_POSTS)
{
++$file;
unset($posts);
}
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('data/'. $file, serialize($posts));
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] .'?page='. $file);
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
?>
<form action="" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<input name="ok" type="submit" />
</form>
<div style="padding-left:50px">
<?php
echo pageMenu($page);
?>
</div>
<?php
echo implode('<br>', $info) .'<br>';
if(file_exists('data/'. $page))
{
$posts = unserialize(file_get_contents('data/'. $page));
foreach($posts as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(bbTags(htmlspecialchars($post['mess'])));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date; ?> <strong><?php echo $name; ?></strong>
<hr width="30%" align="left" />
<?php echo $mess; ?>
</div>
<?php
}
}
?>
<div style="padding-left:50px">
<?php echo pageMenu($page); ?>
</div>
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
define('NUM_POSTS', 5);
function dirScan($dir)
{
static $files;
if(empty($files))
{
$files = scandir($dir);
$files = array_diff($files, array('.', '..'));
}
$files = count($files)?$files:array('1');
return $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;
}
function bbTags($text)
{
$bb = array(
'',
'',
'',
'',
'
'
'',
'',
'[

'[

'[

'[

);
$tag = array(
'<b>',
'</b>',
'<i>',
'</i>',
'<s>',
'</s>',
'<u>',
'</u>',
'<img src="smailes/1.gif" />',
'<img src="smailes/2.gif" />',
'<img src="smailes/3.gif" />',
'<img src="smailes/4.gif" />'
);
return str_ireplace($bb, $tag, $text);
}
$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
$posts = array();
if(!empty($_POST['ok']))
{
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';
if(!$text2)
$info[] = 'Текстовая область не заполнена.';
if(count($info) == 0)
{
$file = max(dirScan('data'));
if(file_exists('data/'. $file))
{
$posts = unserialize(file_get_contents('data/'. $file));
$keys = array_keys($posts);
$id = max($keys) + 1;
$num = count($posts);
}
else
$num = $id = 1;
if($num >= NUM_POSTS)
{
++$file;
unset($posts);
}
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('data/'. $file, serialize($posts));
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] .'?page='. $file);
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
?>
<form action="" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<input name="ok" type="submit" />
</form>
<div style="padding-left:50px">
<?php
echo pageMenu($page);
?>
</div>
<?php
echo implode('<br>', $info) .'<br>';
if(file_exists('data/'. $page))
{
$posts = unserialize(file_get_contents('data/'. $page));
foreach($posts as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(bbTags(htmlspecialchars($post['mess'])));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date; ?> <strong><?php echo $name; ?></strong>
<hr width="30%" align="left" />
<?php echo $mess; ?>
</div>
<?php
}
}
?>
<div style="padding-left:50px">
<?php echo pageMenu($page); ?>
</div>
Спустя 4 минуты, 48 секунд (28.06.2012 - 17:42) fdr написал(а):
Денис777
А тегами оформить нельзя)))
А тегами оформить нельзя)))
Спустя 5 минут, 24 секунды (28.06.2012 - 17:48) fdr написал(а):
в каталоге нужно создать папку data)))
Спустя 35 секунд (28.06.2012 - 17:48) Денис777 написал(а):
fdr ?????? вы не сравнивайте себя с другими , говорю же учюсь только , как было в уроке сказано так и написал
Спустя 1 минута, 56 секунд (28.06.2012 - 17:50) twin написал(а):
\Что говорит интерпретатор? Что написано в браузере, когда запускаешь этот код?
Спустя 28 секунд (28.06.2012 - 17:51) Денис777 написал(а):
fdr точно , я забыл про нее совсем , 7 раз перечитал урок и не мог понять где ошибка , спасибо

Спустя 58 секунд (28.06.2012 - 17:52) Денис777 написал(а):
twin спасибо , мне уже помогли

Спустя 57 секунд (28.06.2012 - 17:52) fdr написал(а):
Денис777
Цитата |
fdr ?????? вы не сравнивайте себя с другими |
я имел в виду при добавление на форум, можно для красоты и наглядности оформить код тегами PHP, они находятся в редакторе, ниже списков)))
Спустя 3 минуты, 19 секунд (28.06.2012 - 17:56) Денис777 написал(а):
fdr я тут 7 дней еще не совсем освоил форум
Спустя 1 минута, 49 секунд (28.06.2012 - 17:58) fdr написал(а):

Спустя 3 минуты, 49 секунд (28.06.2012 - 18:01) Денис777 написал(а):
а как сделать чтоб страниц навигаций было всего 15 допустим , а то у меня их выводиться я так понял безконечность , там написанно как сделать максимум сообщений на одной странице , а вот как осущетвить чтоб их самих было максимум 15 , а после бы остольные удалялись
Спустя 26 минут, 40 секунд (28.06.2012 - 18:28) twin написал(а):
А зачем? Там же написано - это учебный скрипт. Применять его на боевом сайте не след. Дальше есть полноценная гостевая на бд, там нет таких проблем.
Спустя 11 минут, 5 секунд (28.06.2012 - 18:39) Денис777 написал(а):
twin спс , сразу не увидел , не стал забигать вперед
с админкой что то немогу разобраться


Спустя 1 час, 53 минуты, 47 секунд (28.06.2012 - 20:33) YVSIK написал(а):
Денис777 специально для тебя сделаю
вот )) а делается это вот так :angry:
<?php
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
/////////////////////////////////////////////////////////////
// ADJUSTMENT
// НАСТРОЙКИ
/////////////////////////////////////////////////////////////
/**
* Quantity of posts on page
* Количество постов на странице
*/
define('NUM_POSTS', 5);
/////////////////////////////////////////////////////////////
// FUNCTIONS
// ФУНКЦИИ
/////////////////////////////////////////////////////////////
/**
* Function of reading of a directory
* Функция чтения директории
* @param string
* @return array
*/
function dirScan($dir)
{
static $files;
if(empty($files))
{
$files = scandir($dir);
$files = array_diff($files, array(
'.',
'..'
));
}
$files = count($files) ? $files : array(
'1'
);
return $files;
}
/**
* Function of generation of the menu of paginal navigation
* Функция генерации меню постраничной навигации
* @param string
* @return string
*/
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;
}
/**
* Replacement function bb-tags and smilies
* Функция замены bb-тегов и смайликов
* @param string
* @return string
*/
function bbTags($text)
{
$bb = array(
'',
'',
'',
'',
'',
'',
'',
'',
'[]',
'[]',
'[]',
'[]'
);
$tag = array(
'<b>',
'</b>',
'<i>',
'</i>',
'<s>',
'</s>',
'<u>',
'</u>',
'<img src="smailes/1.gif" />',
'<img src="smailes/2.gif" />',
'<img src="smailes/3.gif" />',
'<img src="smailes/4.gif" />'
);
return str_ireplace($bb, $tag, $text);
}
/////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////
// Переменная для постранички
$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array(
);
$posts = array(
);
/////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
/////////////////////////////////////////////////////////////////
if(!empty($_POST['ok']))
{
if(!$text1)
{
$info[] = 'Текстовое поле не заполнено.';
}
if(!$text2)
{
$info[] = 'Текстовая область не заполнена.';
}
if(count($info) == 0)
{
$file = max(dirScan('data'));
if(file_exists('data/'. $file))
{
$posts = unserialize(file_get_contents('data/'. $file));
$keys = array_keys($posts);
$id = max($keys) + 1;
$num = count($posts);
}
else
{
$num = $id = 1;
}
// Здесь меняем номер на константу
if($num > = NUM_POSTS)
{
++$file;
unset($posts);
}
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('data/'. $file, serialize($posts));
// Перенаправляем браузер на последнюю страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] .'?page='. $file);
exit();
}
}
else
{
$info[] = 'Напишите что-нибудь';
}
/////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
/////////////////////////////////////////////////////////////////
?>
<form action="" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1)?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);
?></textarea><br />
<input name="ok" type="submit" />
</form>
<div style="padding-left:50px">
<?php
// отрисовываем меню навигации. Еще одно - ниже
echo pageMenu($page);
?>
</div>
<?php echo implode('<br>', $info) .'<br>';
if(file_exists('data/'. $page))
{
$posts = unserialize(file_get_contents('data/'. $page));
foreach($posts as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(bbTags(htmlspecialchars($post['mess'])));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date;
?> / <strong><?php echo $name;
?></strong>
<hr width="30%" align="left" />
<?php echo $mess;
?>
</div>
<?php
}
}
?>
<div style="padding-left:50px">
<?php echo pageMenu($page);
?> < / div
?>
вот )) а делается это вот так :angry:
Спустя 37 минут, 10 секунд (28.06.2012 - 21:10) Игорь_Vasinsky написал(а):
Свернутый текст
Денис777 специально для тебя сделаю



Цитата |
* The guest book * Гостевая книга * @author IT studio IRBIS-team * @copyright © 2009 IRBIS-team |
Спустя 14 часов, 30 минут, 58 секунд (29.06.2012 - 11:41) Денис777 написал(а):
Игорь_Vasinsky не че не понял ><