Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опять про чат.
 
 автор: Rembrant   (07.05.2007 в 01:12)   письмо автору
 
 

Файл 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 сообщения не записываются. Скажите почему? Сам я точно ошибки не найду!

   
 
 автор: Lstasss   (07.05.2007 в 03:00)   письмо автору
 
   для: Rembrant   (07.05.2007 в 01:12)
 

а права на файл какие стоят?

   
 
 автор: Kreg-Heg   (07.05.2007 в 10:08)   письмо автору
 
   для: Lstasss   (07.05.2007 в 03:00)
 

*

   
 
 автор: bronenos   (07.05.2007 в 10:22)   письмо автору
 
   для: Rembrant   (07.05.2007 в 01:12)
 

$who = $_POST['who'];
$who никуда не идет чтоли потом?

   
 
 автор: Rembrant   (07.05.2007 в 10:36)   письмо автору
 
   для: bronenos   (07.05.2007 в 10:22)
 

Покачто нет. Сейчас для меня важно наладить именно саму запись в файл.

   
 
 автор: Trianon   (07.05.2007 в 11:45)   письмо автору
 
   для: Rembrant   (07.05.2007 в 10:36)
 

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

И еще.


$fp=fopen("chat.txt","w");  //  Открыли файл на запись
fwrite($fp,$str);  //записали строку.

$file=file("chat.txt");  // И тут же пытаетесь незакрытый 
                // файл прочитать. Много ли Вы прочтете?


На Вашем месте я бы вообще не стал перезаписывать файл, вырезая старые строки, а просто читал бы последний фрагмент.

   
 
 автор: Rembrant   (07.05.2007 в 13:38)   письмо автору
 
   для: Trianon   (07.05.2007 в 11:45)
 

Закрываю файл после открытия и записи, всё равно ничего не записывает. Сейчас точно попробую отследить где обрывается.

   
 
 автор: bronenos   (07.05.2007 в 13:40)   письмо автору
 
   для: Rembrant   (07.05.2007 в 13:38)
 

файл, права существуют?

   
 
 автор: Rembrant   (07.05.2007 в 14:09)   письмо автору
 
   для: 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:17)   письмо автору
 
   для: Rembrant   (07.05.2007 в 14:09)
 

Всё. Всё работает! Всем спасибо!!! Я просто поменял name='message' на другое и всё заработало. Странно =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования