|
|
|
| Файл send.php - в нем строка которую нужно передать в файл add.php
<FORM NAME="sendform" ACTION="add.php" METHOD="post">
<?php
$login=$_GET['login'];
?>
<INPUT TYPE="hidden" VALUE="<? echo $login;?>" NAME="login">
<INPUT TYPE="text" NAME="who" >
<INPUT TYPE="text" NAME="message">
<INPUT TYPE="submit" VALUE="Сказать" >
</FORM>
|
Файл обработчик add.php - строку $_POST['message'] нужно занести в chat.txt
<?PHP
$file=fopen("chat.txt","a");
$who=$_POST['who'];
$login=$_POST['login'];
$message=$_POST['message'];
if ($file){
fwrite($file, $message);
fclose($file);
}
header("Location:send.php?login=".$login);
?>
|
Файл text.php выводит 20 последних сообщений и в течении каждых пяти секунд обновляет фрейм
<HTML>
<HEAD>
<META CONTENT="5; URL=text.php" HTTP-EQUIV=Refresh>
</HEAD>
<BODY ONLOAD="scroll(0,100)">
<?PHP
# Если в чате больше 20 строк, то убираем самые ранние, чтобы в окне оставалось не более 20 строк
$file=file("chat.txt");
$count=count($file);
$num=20;
if ($count>$num)
{
for ($i=($count-$num); $i<$count; $i++)
{
$str = $str.$file[$i];
$str=ereg_replace("\r\n","\n",$str);
}
$fp=fopen("chat.txt","w");
fwrite($fp,$str);
}
$file=file("chat.txt");
$count=count($file);
for ($i=0; $i<$count; $i++)
{
echo $file[$i]."<BR>";
}
?>
</FONT>
</BODY>
</HTML>
|
Фреймовая система:
<FRAMESET COLS="*,50,200" border=1 frameborder=1 framespacing=0 ONUNLOAD="window.location.href='del.php?login=<?=$login;?>'">
<FRAMESET ROWS="*,65">
<FRAME NAME='text' SRC='text.php?login=<? echo $login;?>'>
<FRAME NAME='send' SRC='send.php?login=<? echo $login;?>'>
</FRAMESET>
<FRAME NAME='smiles' SRC='smiles.html'>
<FRAME NAME='users' SRC='users.php?login=<? echo $login;?>'>
</FRAMESET>
|
В файл chat.txt сообщения не записываются. Скажите почему? Сам я точно ошибки не найду! | |
|
|
|
|
|
|
|
для: Rembrant
(07.05.2007 в 01:12)
| | а права на файл какие стоят? | |
|
|
|
|
|
|
|
для: Lstasss
(07.05.2007 в 03:00)
| | * | |
|
|
|
|
|
|
|
для: Rembrant
(07.05.2007 в 01:12)
| | $who = $_POST['who'];
$who никуда не идет чтоли потом? | |
|
|
|
|
|
|
|
для: bronenos
(07.05.2007 в 10:22)
| | Покачто нет. Сейчас для меня важно наладить именно саму запись в файл. | |
|
|
|
|
|
|
|
для: Rembrant
(07.05.2007 в 10:36)
| | в файле вообще никаких символов не появляется?
По идее они должны клеиться в одну строку.
И еще.
$fp=fopen("chat.txt","w"); // Открыли файл на запись
fwrite($fp,$str); //записали строку.
}
$file=file("chat.txt"); // И тут же пытаетесь незакрытый
// файл прочитать. Много ли Вы прочтете?
|
На Вашем месте я бы вообще не стал перезаписывать файл, вырезая старые строки, а просто читал бы последний фрагмент. | |
|
|
|
|
|
|
|
для: Trianon
(07.05.2007 в 11:45)
| | Закрываю файл после открытия и записи, всё равно ничего не записывает. Сейчас точно попробую отследить где обрывается. | |
|
|
|
|
|
|
|
для: Rembrant
(07.05.2007 в 13:38)
| | файл, права существуют? | |
|
|
|
|
|
|
|
для: bronenos
(07.05.2007 в 13:40)
| | Ошибка тут
<?PHP
$file=fopen("chat.txt","a");
$who=$_POST['who'];
$login=$_POST['login'];
$message=$_POST['message'];
if ($file){
fwrite($file, $message);
fclose($file);
}
header("Location:send.php?login=".$login);
?>
|
Вот с проверкой сделал: файл не открылся.
bronenos! Я не знаю где права выставлять и как это делается. | |
|
|
|
|
|
|
|
для: Rembrant
(07.05.2007 в 14:09)
| | Всё. Всё работает! Всем спасибо!!! Я просто поменял name='message' на другое и всё заработало. Странно =) | |
|
|
|