Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает гостевая.... 
:(
    Опции темы
mr.Anderson
Дата 6.5.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Я написал код:
Код

<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить">
</center>
</form>
<?php
if(@$ok)
{
    $file=fopen("gbsms.txt","a") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    $textsms="Имя: $nick ; Сообщение: $sms";
    fwrite($file,$textsms) or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_UN);
    fclose($file);
    echo"<script>alert('Спасибо! Я прочитаю Ваше сообщение в ближайшее время.')</script>";
}
?>

Когда я проверял этот код на компьютере с помощью локального хоста, все работало (сообщения записывались в файл gbsms.txt, все шло нормально). Загрузил файлы на свой сайт - не работает... Пишет:
Цитата

Warning: fopen(gbsms.txt): failed to open stream: Permission denied in /home/guitaris/public_html/myguestbook.php on line 15
Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!

Ну, последняя надпись (про админа) - моя, как видно из скрипта. А вот почему возникла другая? На локальном сервере все работало безо всяких ошибок и проблем.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 6.5.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



А файл gbsms.txt создан?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 6.5.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Да, создан. Ну, в принципе, я пробовал и так:
Код

$file=fopen("gbsms.txt","a+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");


Это сообщение отредактировал(а) sim7 - 6.5.2005, 17:48


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 6.5.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Вот рабочая книга, попробуй сверить.
Код

<?php


if($send)
{
if(!(eregi("^(([a-z0-9]+)@([a-z0-9]+\.)+[a-z]{2,4})$",$mail)))
{
$error="E-mail адрес введен неверно!";
}
if($log=="")
{
$error.="не ввели имя!";
}
if($info=="")
{
$error.="забыли ввести сообщение!";
}
echo "<font size=+3>$error</font>";

$log=strip_tags($log);
$mail=strip_tags($mail);
$info=strip_tags($info,("<b>,<i>"));


$log=ereg_replace("\t|\r","",$log);
$mail=ereg_replace("\t|\r","",$mail);
$info=ereg_replace("\t|\r","",$info);

$info=ereg_replace("\n","<br>",$info);

if(!$error)
{



$new=file("forgos.txt");
list($logn,$mailn,$infon)=split("\t",chop($new[count($new)-1]));
if(!($info==$infon))
{

$a="$log\t$mail\t$info\n";
$text=fopen("forgos.txt","a");
fwrite($text,$a);
fclose($text);
}

}
}

$mass=file("forgos.txt");
$num=count($mass);
$numstr=ceil($num/10);
for($i;$i<$numstr;$i++)
{
$start=$i*10+1;
$stop=($i+1)*10;
if($stop>$num)$stop=$num;
if($stop!=$start)
{
echo "[<a href='gostevayamy.php?s=$start'>$start-$stop</a>]";
}
else{
echo "[<a href='gostevayamy.php?s=$start'>$start</a>]";
}
}


if(empty($s))$s=1;
$mass=array_reverse($mass);
echo "<table width=100% border=1 bgcolor=lightblue>";

for($i=$s-1;$i<$s+9;$i++)
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

list($log,$mail,$info)=split("\t", $mass[$i]);
if(empty($mass[$i]))
{
break;
}
echo "<tr><td>$log<br><a href=mailto:$mail>$mail</a><br>$info</td></tr>";
}
echo "</table>";

?>



<html>
<head>
 <title>отправка e-mail</title>
<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1251">
</head>
<body bgcolor="#c2c3f2"><center>
<table width="200" height="200"><tr><td>
<form name="forma" method=get>
<fieldset>
<legend align="center"><font color="black">оставить сообщение</font></legend>
<table width="200" border="0" height="200">
<tr>
<td align="right"><font size="3">Имя</font></td>
<td align="left"><input type="text" name="log"></td></tr>
<tr>
<td align="right"><font size="3">E-mail</font></td>
<td align="left"><input type="text" name="mail"></td></tr>
<tr>
<td align="right"><font size="3">Текст</font></td>
<td align="left"><textarea name="info" cols="15" rows="5"></textarea></td></tr>
<tr>
<td align="center" colspan="2"><input type="submit" name="send" value="Отправить"></td></tr>
</table></fieldset></form></td></tr></table></center>
</body>
</html>




Только не забудь заранее создать файл, а то впервый раз будут ошибки, второй раз ругаться уже не будет, потому как файл будет создан.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 6.5.2005, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Елки... Не могу разобраться в указанном вами коде. Не позволяют знания PHP...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 6.5.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



$textsms="Имя: $nick \tСообщение: $sms\n";
Добавлено @ 17:52
Цитата(sim7 @ 6.5.2005, 17:50)
Елки... Не могу разобраться в указанном вами коде. Не позволяют знания PHP...

Ты не разбирайся сначала, вставь код, проверь работоспособность, а потом сверь просто со своим!

А еще возможно права на запись файла поставь все 777 у хостера, у меня так голосование не работало. А именно чтение, запись, изменение. Чтобы 3 галки стояли!

Это сообщение отредактировал(а) PARROT - 6.5.2005, 17:54


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Illuminaty
Дата 6.5.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



посмотри права доступа, может с этим проблема

Цитата(PARROT @ 6.5.2005, 17:47)
Только не забудь заранее создать файл, а то впервый раз будут ошибки, второй раз ругаться уже не будет, потому как файл будет создан.

Хорошим стилем считается перед записью в файл проверить на его (файла) наличие smile
PM MAIL ICQ   Вверх
PARROT
Дата 6.5.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Illuminatyпосмотри права доступа, может с этим проблема

Да, на моем старом хостинге если не выставишь права на файл 777, то работать ничего не будет, а вот у нового, такие права просто запрещены! У них их нет!

Это сообщение отредактировал(а) PARROT - 6.5.2005, 18:05


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Illuminaty
Дата 6.5.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



Цитата(PARROT @ 6.5.2005, 17:56)
В начале пути мы много чего не делаем, не проверяем, не используем

И очень зря. Лучше сразу начинать с правильного программирования
Теперь по теме. Похожая проблема сейчас в этой теме.
Там как раз про права доступа. sim7 посмотри обязательно
PM MAIL ICQ   Вверх
PARROT
Дата 6.5.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(Illuminaty @ 6.5.2005, 18:05)
Лучше сразу начинать с правильного программирования

Как учат, в учебных заведениях, так и начинаем писать.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sscr
Дата 7.5.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.5.2005

Репутация: нет
Всего: нет



Цитата(sim7 @ 6.5.2005, 17:38)
Я написал код:
Код

<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить">
</center>
</form>
<?php
if(@$ok)
{
    $file=fopen("gbsms.txt","a") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    $textsms="Имя: $nick ; Сообщение: $sms";
    fwrite($file,$textsms) or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_UN);
    fclose($file);
    echo"<script>alert('Спасибо! Я прочитаю Ваше сообщение в ближайшее время.')</script>";
}
?>

Когда я проверял этот код на компьютере с помощью локального хоста, все работало (сообщения записывались в файл gbsms.txt, все шло нормально). Загрузил файлы на свой сайт - не работает... Пишет:
Цитата

Warning: fopen(gbsms.txt): failed to open stream: Permission denied in /home/guitaris/public_html/myguestbook.php on line 15
Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!

Ну, последняя надпись (про админа) - моя, как видно из скрипта. А вот почему возникла другая? На локальном сервере все работало безо всяких ошибок и проблем.

Попробуй так!
Код

<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить">
</center>
</form>
<?php
if(@$ok)
{
    $file=fopen("gbsms.txt","w+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    $textsms="Имя: $nick ; Сообщение: $sms";
    fwrite($file,$textsms) or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_UN);
    fclose($file);
    echo"<script>alert('Спасибо! Я прочитаю Ваше сообщение в ближайшее время.')</script>";
}
?>
[b][/b][b][i]
PM MAIL WWW   Вверх
PARROT
Дата 7.5.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(Sscr @ 7.5.2005, 09:04)
Код
if(@$ok)
{
    $file=fopen("gbsms.txt","w+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");


При выводе из файла сообщений, нужно считать данные "a", при добавлении скрипт должен записывать в файл "w"
Код написан, но не доконца.
Что же это за книга, в которой сообщения не будут выводиться для чтения другим пользователям?
Добавлено @ 11:16
потом запись данных в файл не может идти через ;
Код

$textsms="Имя: $nick ; Сообщение: $sms";

Точка с запятой не пройдет. Это делается \t, а в конце \n

Это сообщение отредактировал(а) PARROT - 7.5.2005, 11:39


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 7.5.2005, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Ладно, попробую подредактировать.
За совет по хостингу спасибо! Все заработало.
А как вывести на экран сообщения, я не знаю... Можете привести пример простенького кода, содержащего мой код + ваше дополнение?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 7.5.2005, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



вывод сообщений на экран.
Код

<?
$a=file("gbsms.txt");
$a=array_reverse($a);
foreach($a as $str)
{
list($nick,$sms)=split("\t",$str);
echo"Имя:$nick<br> Email:$sms<br>";
}
?>


Вывод по количеству сообщений, например по 10, смотри выше в моем коде. smile

Это сообщение отредактировал(а) PARROT - 7.5.2005, 20:36


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Aliance
Дата 7.5.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



sim7
1) chmode поставь writtable
2) используй не a, а a+
PM MAIL WWW ICQ Skype   Вверх
mr.Anderson
Дата 8.5.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Можно вопрос? Что делает функция split в вашем коде, PARROT?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Aliance
Дата 8.5.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



http://ru.php.net/split

PS: разбивает строку на массив по заданному регу
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 8.5.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(sim7 @ 8.5.2005, 13:25)
Можно вопрос? Что делает функция split в вашем коде, PARROT?

Разбивает по табуляциям строку


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 8.5.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



PARROT, я вас прям сейчас расцелую! smile
Я в восторге! Все работает! Я ее затолкал на свой сайт. Кстати, можете посмотреть оформление! Для этого зайдите на мой сайт по ссылке: http://guitarist.phost.name Да простят мне
ту рекламу уважаемые админы и модераторы! Я просто разваливаюсь на кусочки от счастья. smile smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 8.5.2005, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Теперь сделай вывод сообщений по 10 штук на страницу:
Код

if(empty($s))$s=1;//если переменная s пуста, то она всегда будет равна 1, стартовать будем с 1.
$num=count($mass);//переменная num, переменная количества сообщений в тесктовом файле
$numstr=ceil($num/10);//делим количество сообщений на 10, т.к. на странице будут выводиться 
//по 10 сообщений
for($i;$i<$numstr;$i++)//цикл по колич. сообщений
{
$start=$i*10+1;// определяем $start
$stop=($i+1)*10;// определяем $stop
if($stop>$num)$stop=$num;
if($stop!=$start)// рисуем ссылки где $s будет показывать, на какой странице мы сейчас находимся
{
echo "[<a href='myguestbook.php?s=$start'>$start-$stop</a>]";
}
else{
echo "[<a href='myguestbook.php?s=$start'>$start</a>]";
}
}



Это сообщение отредактировал(а) PARROT - 8.5.2005, 15:26


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 8.5.2005, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



А вас не затруднит объяснить мне построчно, как ваш код работает? Вставить-то я его вставлю, только хочется понять, что вы сделали...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 8.5.2005, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



см. выше код. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 8.5.2005, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Спасибо, но:
1) Что делает функция "ceil"?
2) Зачем вывод ссылок в квадратных скобках.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Illuminaty
Дата 8.5.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



Цитата(sim7 @ 8.5.2005, 15:36)
1) Что делает функция "ceil"?

По видимому, это smile
Цитата(sim7 @ 8.5.2005, 15:36)
2) Зачем вывод ссылок в квадратных скобках.

По моему, для визуального разделения

ЗЫ Надеюсь, PARROT, не против, что ответил за тебя?
PM MAIL ICQ   Вверх
PARROT
Дата 8.5.2005, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Не против конечно, Птице иногда есть нужно, а то умрет и ничего написать не сможет.
Получилось? smile
Еще, там где split, исправь его на explode, а то меня ругали уже, по этому поводу.
Обещали наказать! smile
Почему?
Работает explode быстрее. smile

Это сообщение отредактировал(а) PARROT - 8.5.2005, 17:14


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 8.5.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Однако, если скорость загрузки страницы около 2 секунд, то какая разница, работает ли функция 0.02 или 0.2 секунды? smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 8.5.2005, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Чтобы добавлялась дата создания сообщения, можно ли переписать код так:
Код
<title>Гитарист :: Гостевая книга</title>
<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if(@$ok)
{
    $file=fopen("gbsms.txt","a+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    $textsms="Имя: $nick \t Сообщение: $sms\n";
    fwrite($file,$textsms) or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_UN);
    fclose($file);
    echo"<script>alert('Спасибо! Я прочитаю Ваше сообщение в ближайшее время.')</script>";
}
    $a=file("gbsms.txt");
    $a=array_reverse($a);
    foreach($a as $str)
    {
        list($nick,$sms)=split("\t",$str);
        ?><font color=white><b><?echo"Дата: ".filemtime("gbsms.txt")."<br>$nick<br> $sms<br>";?></font></b><?
    }
?>

Если что не так, поправьте, пожалуйста.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Aliance
Дата 8.5.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(sim7 @ 8.5.2005, 20:31)
Невозможно запись в файл!

это, интересно, на каком языке?! :-)))


PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 8.5.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Ну вот! На десятый раз получилось! Все заработало без багов. Усе! УРА!!!! Победила саму себя.
Код

<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if(@$ok)
{
    if (empty($nick) || empty($sms)){
        echo "<center><font color=red>Не заполнены обязательные поля!</font></center>";
}
else
{
    $sms=strip_tags($sms);
    $mail=strip_tags($mail);
    $nick=strip_tags($nick);
    $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    $textsms="Имя: $nick \t Сообщение: $sms\n";
    fwrite($file,"$textsms\t$time\n") or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");//[color=red]немного изменила запись в файл[/color]
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
        if($stop>$num)
        {$stop=$num;}
        if($start!==$stop){
    echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=quest.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
    if($i<$num)
    {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>


Можно пользоваться. smile Все работает! Если долго мучаться, что-нибудь получится!
Зато вспомнила месяцы приятной учебы на курсах! И мучение с текстовыми файлами... бр......

Это сообщение отредактировал(а) PARROT - 8.5.2005, 23:15


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 9.5.2005, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Вот это скрипт! С удовольствием угостил бы вас чашечкой чая, мисс PARROT, если бы только был рядом с вами. Огромное вам спасибо!
М-м-м... Только один вопрос: что за ссылка?
Цитата
echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";

И что за "quest.php"?

Это сообщение отредактировал(а) sim7 - 9.5.2005, 07:55


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 9.5.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(sim7 @ 9.5.2005, 07:53)
Только один вопрос: что за ссылка?
Цитата
echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";

И что за "quest.php"?

Ну смотри:
Эта ссылка, она печатает ссылки от [1] [2] [3] ....
по содержанию переменных которые мы определили выше

Код

[$start - $stop]



В которых содержатся наши сообщения, тоесть в [1] содержатся сообщения от 1 до 10, так как мы выводим на страницу по 10 сообщений.

Код

<a href=quest.php.....


Это адрес твоей страницы, в твоем случае это будет

Код

<a href=myguestbook.php......


Тоесть нужно изменить эту ссылку, вот так:
Код

{echo "<a href=myguestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=myguestbook.php?s=$start\">[$start]</a>&nbsp;";}



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 9.5.2005, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Спасибо! Пойду пробовать.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 12.5.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Простите, PARROT, но ваш код:
Код

<title>Ãèòàðèñò :: Ãîñòåâàÿ êíèãà</title>
<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Ãîñòåâàÿ êíèãà</h3>
<table width="50%">
<tr><td><font color=white><b>Âàøå èìÿ:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Ñîîáùåíèå:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Îòïðàâèòü"><hr>
</center>
</form>
<?php
if(@$ok)
{
    if (empty($nick) || empty($sms)){
        echo "<center><font color=red>Íå çàïîëíåíû îáÿçàòåëüíûå ïîëÿ!</font></center>";
}
else
{
    $sms=strip_tags($sms);
    $nick=strip_tags($nick);
    $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
    $time=date("d/M/Y H:i:s");
    $file=fopen("gbsms.txt","a+") or die("Íåâîçìîæíî îòêðûòü ôàéë äëÿ çàïèñè! Áîëüøàÿ ïðîñüáà ñîîáùèòü îá ýòîé îøèáêå àäìèíèñòðàòîðó ñàéòà!");
    flock($file,LOCK_EX);
    $textsms="Èìÿ: $nick \t Ñîîáùåíèå: $sms\n";
    fwrite($file,"$textsms\t$time\n") or die("Íåâîçìîæíî çàïèñü â ôàéë! Áîëüøàÿ ïðîñüáà ñîîáùèòü îá ýòîé îøèáêå àäìèíèñòðàòîðó ñàéòà!");
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}
    $a=file("gbsms.txt");
    $num=count($a);
    $numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
    if($stop>$num)   {$stop=$num;}
    if($start!==$stop){
    echo "<a href=myquestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=myquestbook.php?s=$start\">[$start]</a>&nbsp;";}
}
    for ($i=$s-1; $i<$s+9; $i++)
        {
            if($i<$num)
                {$mess=$a[$i];
                list($time,$nick,$sms)=split("\t",$mess);
                echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
                }
        }
?>

Не работает. Уж не знаю, почему. Пишет вот что:
Цитата

Notice: Undefined variable: s in z:\home\localhost\www\mysite\myguestbook.php on line 49
Notice: Undefined offset: -1 in z:\home\localhost\www\mysite\myguestbook.php on line 52
Notice: Undefined offset: 2 in z:\home\localhost\www\mysite\myguestbook.php on line 53

ну, и так далее много-много раз, как я понял, по количеству написанных сообщений. Можете помочь?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Aliance
Дата 12.5.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Нужно это:
Цитата
    for ($i=$s-1; $i<$s+9; $i++)

заменить на это:
Код

$s2 = $_GET['s'];
for ($i = $s2-1; $i < $s2+9; $i++)


Это сообщение отредактировал(а) Aliance - 12.5.2005, 21:03
PM MAIL WWW ICQ Skype   Вверх
Illuminaty
Дата 12.5.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



И почитать вот это
PM MAIL ICQ   Вверх
PARROT
Дата 13.5.2005, 06:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



А у меня этот код работает.
Ошибок не выдает никаких.

И на хостинг выложила, тоже работает, вот ссылка http://www.admin.traktora.spb.ru/lenta/pt.php

Проблема скорее всего в вашей версии апач или денвера, что у вас стоит на машине.

Замените версию апач, денвера на новую.
Добавлено @ 06:30
Цитата(Aliance @ 12.5.2005, 21:02)
Код

$s2 = $_GET['s'];
for ($i = $s2-1; $i < $s2+9; $i++)

Код

//переменная $s  отвечает за постраничный вывод, она никак не может быть тут $s2
   echo "<a href=myquestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=myquestbook.php?s=$start\">[$start]</a>&nbsp;";}
}



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Illuminaty
Дата 13.5.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



PARROT, если ты передаешь данные через GET, POST и т.д. лучше в коде считывать их через массивы $_GET[], $_POST[] и т.д.
А на том хостинге, гды ты выложила скрипт, скорее всего, register_globals=on, а у sim7 наоборот.
Цитата(Illuminaty @ 12.5.2005, 21:07)
И почитать вот это

Посмотри тоже, PARROT smile
Aliance все верно написал
PM MAIL ICQ   Вверх
PARROT
Дата 13.5.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(sim7 @ 12.5.2005, 20:21)
Не работает. Уж не знаю, почему. Пишет вот что:
Цитата

Notice: Undefined variable: s in z:\home\localhost\www\mysite\myguestbook.php on line 49
Notice: Undefined offset: -1 in z:\home\localhost\www\mysite\myguestbook.php on line 52
Notice: Undefined offset: 2 in z:\home\localhost\www\mysite\myguestbook.php on line 53

ну, и так далее много-много раз, как я понял, по количеству написанных сообщений. Можете помочь?

Первая проблема, это необъявленная переменная s, а остальные все что связанное с этой переменной.
Код

//в коде, так как он видоизменялся влладельцем не хватает таких строк
if(empty($s))$s=1;//объявляем переменную!


Потом те пути, то что дает sim7, никак не пути хостера, а путь локального компа, где установлен Денвер.

А можно узнать, какая версия Денвера у Вас sim7?

Повторяюсь, что проблема в вашем сервере, который стоит на компе!


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 14.5.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Illuminaty Cсылки в гостевой, которая выложена на хостинге не работали потому, как там небыли исправлены адреса, использовались те адреса страниц, которые были у sim7

Это так просто, глянуть на перенаправление!

Сейчас все исправила на свои.

Кроме того, вчера код книги, тут, смотрел мой препод и сказал, что я полностью права, по поводу забытой переменной $s, которая отвечает за постраничный вывод и дело тут не в глобалке.

Причем тут глобалка, если скрипт sim7 тестировал на своем компе? smile smile

Это сообщение отредактировал(а) PARROT - 14.5.2005, 08:28


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.5.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Ага! Значит, дело в переменной! А теперь еще вопрос: куда воткнуть эту строчку, которую вы указали (с объявлением переменной)?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 15.5.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Воткнул эту строчку. Но все равно пришлось наставить @ везде, где были ошибки. Версию Денвера только что обновил, теперь она = 2. Это самая новая версия. Но ошибки все равно вылазят.
Код

<title>Ãèòàðèñò :: Ãîñòåâàÿ êíèãà</title>
<form action="<?=$SCRIPT_NAME?>" method=post>
<center>
<h3><font color=white>Ãîñòåâàÿ êíèãà</h3>
<table width="50%">
<tr><td><font color=white><b>Âàøå èìÿ:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Ñîîáùåíèå:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Îòïðàâèòü"><hr>
</center>
</form>
<?php
if(@$ok)
{
    if (empty($nick) || empty($sms)){
        echo "<center><font color=red>Çïîëíèòå ïîëÿ 'Èìÿ' è 'Ñîîáùåíèå'!</font></center>";
}
else
{
    $sms=strip_tags($sms);
    $nick=strip_tags($nick);
    $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
    $time=date("d/M/Y H:i:s");
    $file=fopen("gbsms.txt","a+") or die("Íåâîçìîæíî îòêðûòü ôàéë äëÿ çàïèñè! Áîëüøàÿ ïðîñüáà ñîîáùèòü îá ýòîì àäìèíèñòðàòîðó ñàéòà!");
    flock($file,LOCK_EX);
    $textsms="Èìÿ: $nick \t Ñîîáùåíèå: $sms\n";
    fwrite($file,"$textsms\t$time\n") or die("Íåâîçìîæíà çàïèñü â ôàéë! Áîëüøàÿ ïðîñüáà ñîîáùèòü îá ýòîì àäìèíèñòðàòîðó ñàéòà!");
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}
    $a=file("gbsms.txt");
    $num=count($a);
    $numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
    if($stop>$num)   {$stop=$num;}
    if($start!==$stop){
    echo "<a href=myquestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=myquestbook.php?s=$start\">[$start]</a>&nbsp;";}
}
    if(empty($s)) $s=1;
    for ($i=$s-1; $i<$s+9; $i++)
        {
            if($i<$num)
                {@$mess=$a[$i];
                @list($nick,$time,$sms)=split("\t",$mess);
                echo"$nick<br>$time<br>$sms";
                }
        }
?>

Плюс ко всему еще такая вещь: при создании каждого нового сообщения количество страниц в квадратных скобках увеличивается на 2. То есть, если создано только одно сообщение, то в квадратных скобках пишется [1-2]. Если два сообщения создано, то [1-4]. Если три, то [1-6] и так далее, хотя на самом деле этих страниц не существует. Что скажете?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 16.5.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Что я скажу:
Ну первое, строку вставил слишком поздно, ей место перед чтением из файла на вывод, попробуй найти сам ей место, в коде этой строки нет!!!
Код

if(empty($s)) $s=1;


Потом, почему считалось одно сообщение за 2 я не стала разбираться.
Убрала вот эти строки:
Код

$textsms="Èìÿ: $nick \t Ñîîáùåíèå: $sms\n";
    fwrite($file,"$textsms\t$time\n") or die("Íåâîçìîæíà çàïèñü â ôàéë! Áîëüøàÿ ïðîñüáà ñîîáùèòü îá ýòîì àäìèíèñòðàòîðó ñàéòà!");

заменив их на одну строку (не поняла зачем так наворачивать, такой простой код?)
Код

fwrite($file,"$nick\t$sms\t$time\n");


Код


<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><?=$error;?><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if(@$ok)
{
    if (empty($nick) || empty($sms)){
        echo "<center><font color=red>Не заполнены обязательные поля!</font></center>";
}
else
{
    $sms=strip_tags($sms);
    $mail=strip_tags($mail);
    $nick=strip_tags($nick);
    $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    fwrite($file,"$nick\t$sms\t$time\n");
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
        if($stop>$num)
        {$stop=$num;}
        if($start!==$stop){
    echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=quest.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
    if($i<$num)
    {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>

И пожалуйста, прежде чем вставить сюда код, открой его в блокноте, да в банальном блокноте, выдели все и только после этого вставляй сюда! Не совпадение кодировок твоего редактора и форума, скажется на читаемости твоего кода юзерами, а ведь многие тоже учаться. Пускай им будет легче, чем нам!


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 5.6.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Код

<html>
<body background="ris.bmp">
<form action="<?=$SCRIPT_NAME?>" method=post>
<center><font style="font-size: 25px; font-family: Times new roman; font-weight: bold">Гостевая книга</font><br><br>
<table width="50%">
<tr><td><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok"><hr>
</center>
</form>

Код

<?php
if(isset($_POST['ok']))
{
    if(empty($_POST['nick']) || empty($_POST['sms']))
    { echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
      exit;
    }
    $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
    if(preg_match("/[<.+\/>]/i",$sms)) {echo "$html_tags_error";}
    if(!$html_tags_error)
    {
    $file=fopen("gbsms.txt","a+") or die("Невозможно открыть файл для записи!");
    flock($file,LOCK_EX);
      $time=date("Ñîçäàíî d.m.Y H:i:s");
      $textsms="Имя: ".htmlspecialchars($nick)."\t$time\tСообщение: ".htmlspecialchars($sms)."\n";
    fwrite($file,$textsms) or die("Невозможно записать в файл информацию!");
    flock($file,LOCK_UN);
    fclose($file);
    echo"<script>alert('Спасибо! Сообщение записано.')</script>";
    }
}
$a=file("gbsms.txt");
$a=array_reverse($a);
foreach($a as $str)
{
    @list($nick,$time,$sms)=split("\t",$str);
    ?><b><?echo"$nick<br>$time<br>$sms<hr>";?></b><?
}
?>

При нажатии на кнопку все проверки происходят, но в файл почему-то ничего не пишется, безо всяких предупреждений и ошибок!


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 5.6.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Теперь работает.
Код


<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><?=$error;?><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if(isset($_POST['ok'])) {
    if(empty($_POST['nick']) || empty($_POST['sms'])) {
     echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
         exit;
     }
    if(preg_match("/[<.+\/>]/i",$sms)) {
     $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
     echo "$html_tags_error";
     }
    if(!$html_tags_error) {
     $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    fwrite($file,"$nick\t$sms\t$time\n") or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");//[color=red]немного изменила запись в файл[/color]
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
        if($stop>$num)
        {$stop=$num;}
        if($start!==$stop){
    echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=quest.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
    if($i<$num)
    {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
o.s.a.
Дата 5.6.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



sim7, правильно, что не пишет, ошибка в алгоритме
Код

........
$html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
    if(preg_match("/[<.+\/>]/i",$sms)) {echo "$html_tags_error";}
    if(!$html_tags_error)
    {
.......

в 1 строчке переменной $html_tags_error было присвоено значение,
поэтому if(!$html_tags_error) всегда выдает false

P.S. Ну вот PARROT уже все исправила smile

Это сообщение отредактировал(а) o.s.a. - 5.6.2005, 17:33


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Гость_sim7
Дата 12.6.2005, 18:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо! smile Большое.
  Вверх
mr.Anderson
Дата 13.6.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



А вот фигушки. smile Не работает! Постраничный вывод как глючил, так и глючит, PARROT. Может, так только у меня, но при закачке вашего файла на сервер те ж глюки. Ошибок нет, но выводятся страницы с 1 по 50-ю включительно. Хотя на них ничего нет.
Прошу вас переписать код без постранички, а только с теми включениями, которые сделал я. А то у меня никак не получается все убрать. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 13.6.2005, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



А знаешь почему постраничка не работает?
Ты переменную $s забыл обозначить, а без нее, увы...
Говорили, говорили об $s, и благополучно про нее забыли... smile
Добавлено @ 14:04
Попробуй так. Спешу сказать, что у меня данный код работает и без $s. Будь внимателен при втавке кода, не меняй ничего, тогда есть вероятность что работать будет. Просто скопируй и вставь, Пожалуйста!
Код

<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><?=$error;?><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if (!isset($s)) $s=1;
if(isset($_POST['ok'])) {
    if(empty($_POST['nick']) || empty($_POST['sms'])) {
     echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
         exit;
     }
    if(preg_match("/[<.+\/>]/i",$sms)) {
     $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
     echo "$html_tags_error";
     }
    if(!$html_tags_error) {
     $sms=ereg_replace("\r|\t", "", $sms);
    $nick=ereg_replace("\r|\t", "", $nick);
    $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
    flock($file,LOCK_EX);
    fwrite($file,"$nick\t$sms\t$time\n") or die("Невозможно запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");//[color=red]немного изменила запись в файл[/color]
    flock($file,LOCK_UN);
    fclose($file);
    
    
}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
    $start=$i*10+1;
    $stop=($i+1)*10;
        if($stop>$num)
        {$stop=$num;}
        if($start!==$stop){
    echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";}
    else{echo"<a href=quest.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
    if($i<$num)
    {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 13.6.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Нет, к сожалению, не работает. smile При каждом новом сообщении количество страниц в скобках увеличивается. Когда сообщений вообще нет, то в скобках [1-2]. При увеличении количества сообщений на одно становится [1-3]. И так далее.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 13.6.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Так: Вот когда я полностью удалила все сообщения из текстового, у меня ничего не печататется. Просто форма, без записей. Когда добавляю 11 сообщение, 1 уходит.

http://guitarist.phost.name/myguestbook.php
Ты тут меняешь ссылки на свой адрес?
Код

 echo "<a href=quest.php?s=$start\">[$start - $stop]</a>&nbsp;";}//
        else{echo"<a href=quest.php?s=$start\">[$start]</a>&nbsp;";}//

у меня <a href=quest.php?
а у тебя должно быть <a href=myguestbook.php?
Я убрала все твои блокировки файла, они собственно тебе ни к чему, потому как вероятность одновременной записи в файл, при посещении домашней страницы равно нулю. Не нужно это!
Попробуй так: Если не заработает, я сдаюсь. А еще лучше, когда вставишь этот код и он у тебя не заработает, кинь его сюда, только пожалуйста, не исправляй ничего!
Код

<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if (!isset($s)) $s=1;
if(isset($_POST['ok'])) {
         if(empty($_POST['nick']) || empty($_POST['sms'])) {
          echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
                      exit;
            }
    if(preg_match("/[<.+\/>]/i",$sms)) {
            $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
            echo "$html_tags_error";
            }
    if(!$html_tags_error) {
            $sms=ereg_replace("\r|\t", "", $sms);
        $nick=ereg_replace("\r|\t", "", $nick);
        $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a");
    fwrite($file,"$nick\t$sms\t$time\n");
    fclose($file);


}
}
   $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
        $start=$i*10+1;
        $stop=($i+1)*10;
                if($stop>$num)
                {$stop=$num;}
                if($start!==$stop){
        echo "<a href=myguestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
        else{echo"<a href=myguestbook.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
        if($i<$num)
        {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>

Еще попробуй к себе на хостинг занести, а я зайду, гляну. Только не меняй ничего, сейчас это уже не нужно!
Все что нужно поменять для тебя, я уже изменила. Просто закачай и все. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Нет, не работает. Можете зайти сюда:
http://guitarist.phost.name/myguestbook.php
Более того - даже не добавляются сообщения! Постоянно пишет, что "HTML-теги запрещены", хотя я их вообще не набирал. Кстати, код я немного изменил (только html-код) чтобы там фон был и все такое. Вот что получилось:
Код

<body background="ris.bmp">
<form action="<?=$SCRIPT_NAME?>" method=post>
<center><font style="font-size: 25px; font-family: Times new roman; font-weight: bold">Гостевая книга</font><br><br>
<table width="50%">
<tr><td><b>Ваше имя:</b><td><input type=text maxlength=30 name="nick">
<tr><td><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
<br><center><img src="http://phost.name/banner.php"></img></center>
</center>
</form>

А PHP-код такой же, какой вы мне только что дали.
Что скажете?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 14.6.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Сообщения добавляются. Только что оттуда. Код php выложи сюда, только тот который сейчас на сервере! Мне html ничего не дает!


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Код

<?php
if (!isset($s)) $s=1;
if(isset($_POST['ok'])) {
         if(empty($_POST['nick']) || empty($_POST['sms'])) {
          echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
                      exit;
            }
    if(preg_match("/[<.+\/>]/i",$sms)) {
            $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
            echo "$html_tags_error";
            }
    if(!$html_tags_error) {
            $sms=ereg_replace("\r|\t", "", $sms);
        $nick=ereg_replace("\r|\t", "", $nick);
        $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a");
    fwrite($file,"$nick\t$sms\t$time\n");
    fclose($file);
}
}
   $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
        $start=$i*10+1;
        $stop=($i+1)*10;
                if($stop>$num)
                {$stop=$num;}
                if($start!==$stop){
        echo "<a href=myguestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
        else{echo"<a href=myguestbook.php?s=$start\">[$start]</a>&nbsp;";}
}
   for ($i=$s-1; $i<$s+9; $i++){
        if($i<$num)
        {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>

Странно... Действительно, сообщения стали добавляться, хотя двадцать минут назад не добавлялись... Вот, пожалуйста, такой код у меня сейчас стоит на сервере. Но с увеличением количества сообщений на 1 количество страниц в квадратных скобках все равно увеличивается. Я пришел, было [1-7]. Добавил одно сообщение, стало [1-8].


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 14.6.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Мистика??? smile

sim7, обрати внимание, у тебя нарушена последовательность записи и чтения!
А они должны быть одинаковыми.
Тоесть если ты пишешь в файл:
Код

fwrite($file,"$nick\t$sms\t$time\n");

То и читать ты должен из него в той же последовательности. Это тоже может вызывать ошибку и переназначать переменные.
А чтение у тебя:
Код

list($time,$nick,$sms)=split("\t",$mess);

Чуешь разницу? Я один раз так попала!
А должно быть так:
Код

list($nick,$sms,$time)=split("\t",$mess);

Исправь или верх или низ, только... осторожно.

Это сообщение отредактировал(а) PARROT - 14.6.2005, 19:05


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 14.6.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Больше багов нет. Была проблема с регуляркой: при использовании в сообщении точки, регулярка воспринимала точку как html тег, потому что стояла в наборе. Возможно если бы она стояла вне, то проблем бы не было. Когда точка стоит в наборе она может быть как любым символом, так и точкой.
Баг в разнобое с записью и чтением в файл тоже исправлен.
Код

<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><?=$error;?><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if (!isset($s)) $s=1;
if(isset($_POST['ok'])) {
         if(empty($_POST['nick']) || empty($_POST['sms'])) {
          echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
                      exit;
            }
    if(preg_match("/[<+\/>]/i",$sms)) {
            $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
            echo "$html_tags_error";
            }
    if(!$html_tags_error) {
            $sms=ereg_replace("\r|\t", "", $sms);
        $nick=ereg_replace("\r|\t", "", $nick);
        $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a");
    fwrite($file,"$time\t$nick\t$sms\n");
    fclose($file);


}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
    for($i=0; $i<$numstr; $i++){
        $start=$i*10+1;
        $stop=($i+1)*10;
                if($stop>$num)
                {$stop=$num;}
                if($start!==$stop){
        echo "<a href=myguestbook.php?s=$start\">[$start - $stop]</a>&nbsp;";}
        else{echo"<a href=myguestbook.php?s=$start\">[$start]</a>&nbsp;";}

}
   for ($i=$s-1; $i<$s+9; $i++){
        if($i<$num)
        {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>

Надеюсь все, будет работать как часы?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



И хотелось бы сказать, что да, но нет. Все равно количество страниц в скобках увеличивается с количеством сообщений. Можете проверить. Много же времени уходит на эту гостевуху, а она все равно не работает...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 14.6.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Так количество сообщений и должно увеличиваться. Тем более что это не показывает количество страниц, а показывает количество сообщений на странице, на каждой странице должно быть по 10 сообщений.
Тоесть будет так: [1-10] 10 сообщений на 1 странице [11-20] тоже 10 сообщений на одной странице!!!
Не нравится сделай так:
Код


<title>Гитарист :: Гостевая книга</title>
<form  method=post>
<center>
<h3><font color=white>Гостевая книга</h3>
<table width="50%">
<tr><td><font color=white><b>Ваше имя:</b><td><?=$error;?><input type=text maxlength=30 name="nick">
<tr><td><font color=white><b>Сообщение:</b><td><textarea name="sms"></textarea>
</font></table>
<input type=submit name="ok" value="Отправить"><hr>
</center>
</form>
<?php
if (!isset($s)) $s=1;
if(isset($_POST['ok'])) {
         if(empty($_POST['nick']) || empty($_POST['sms'])) {
          echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
                      exit;
            }
    if(preg_match("/[<+\/>]/i",$sms)) {
            $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
            echo "$html_tags_error";
            }
    if(!$html_tags_error) {
            $sms=ereg_replace("\r|\t", "", $sms);
        $nick=ereg_replace("\r|\t", "", $nick);
        $sms=ereg_replace("\n", "<br>", $sms);
$time=date(dMY);//генерируем дату
    $file=fopen("gbsms.txt","a");
    fwrite($file,"$time\t$nick\t$sms\n");
    fclose($file);


}
}


    $a=file("gbsms.txt");
    $num=count($a);
$numstr=ceil($num/10);
    $a=array_reverse($a);
echo "<table><tr><td>Страницы: ($numstr)</td>";
for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*10;
        if ($start==$s OR ($s==0 AND $i==1));
        print "<td><a href=myguestbook.php?s=$start>[$i]</a></td> ";
        if ($start==$s OR ($s==0 AND $i==1));
}
echo "</tr></table>";
   for ($i=$s-1; $i<$s+9; $i++){
        if($i<$num)
        {$mess=$a[$i];
        list($time,$nick,$sms)=split("\t",$mess);
echo "<table><tr><td>$time</td><td>$nick</td><td>$sms</td></tr></table>";
}
    }
?>

Так будут печататься твои страницы, а не количество сообщений на странице.
Делов то! ТОлько не меняй ничего!



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Спасибо! Ваш код я буду пока на локалке тестить, а пока вставил свой. Он почти такой же, только без постранички. Ну, и небольшие изменения я внес в регулярку. Посмотрите:
Код

<body background="ris.bmp">
<form action="<?=$SCRIPT_NAME?>" method=post>
<table align="center" width="30%">
<tr><td align="center" colspan=2><font style="font-size: 25px; font-family: Monotype Corsiva, Times new roman; font-weight: bold">Гостевая книга</font></td></tr><td><tr></td></tr>
<tr><td><b>Ваше имя:</b><td><input type=text size=27 maxlength=30 name="nick"></td></tr>
<tr><td valign=top><b>Сообщение:</b><td><textarea name="sms"></textarea><br></td></tr>
<tr><td colspan=2 style="text-indent: 97px">
<input type=submit style="background-color: #8080FF; font-family: fixedsys, impact, courier, arial;" name="ok" value="Отправить"></td></tr>
</font></table><hr><br><center><img src="http://phost.name/banner.php"></img></center>
</form>
<?php
if(isset($_POST['ok']))
{
    if(empty($_POST['nick']) || empty($_POST['sms']))
    {
      echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
      exit;
    }
    if(ereg("[&<>/\]",$sms) || ereg("[&<>/\]",$nick))
    {
      $html_tags_error="<center><h3><font color=red>HTML-теги запрещены!</font></h3></center>";
      echo "$html_tags_error";
      exit;
    }
    if(!@$html_tags_error)
    {
      $sms=str_replace("\r|\t", "", $sms);
      $nick=str_replace("\r|\t", "", $nick);
      $sms=str_replace("\n", "<br>", $sms);
      $time=date("d/M/Y, H:i:s");
      $file=fopen("gbsms.txt","a+") or die("Невозможно открыть файл для записи! Большая просьба сообщить об этой ошибке администратору сайта!");
      fwrite($file,"Ник: $nick\tСоздано $time\tСообщение: $sms\n") or die("Невозможна запись в файл! Большая просьба сообщить об этой ошибке администратору сайта!");
      fclose($file);
    }
}
$a=file("gbsms.txt");
$a=array_reverse($a);
foreach($a as $str)
{
    @list($nick,$time,$sms)=split("\t",$str);
    ?><b><?echo"$nick<br>$time<br>$sms<hr>";?></b><?
}
?>

Вот так. Заодно можете зайти на мой сайт, там проверить, как работает.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2931 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.