Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: работа с файлами или простенькая гостевая

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: а
ijonhson
Отправлено: 15 Мая, 2013 - 21:01:19
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Доброго времени суток проблемка с выводом сообщений из файла в гостевой книге
код
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $login=$_REQUEST['login'];
  4. $pass=$_REQUEST['pass'];
  5. $text=$_REQUEST['message'];   //здесь приходит текст нового сообщения
  6.   function file_to_mas($filepath)  //функция, возвращает массив сообщений из файла
  7.   {
  8.     $files=fopen($filepath,"r");
  9.     $stringfile=fread($files,filesize($filepath));
  10.     $mas=explode(":::",$stringfile);
  11.     fclose($files);
  12.     return $mas;
  13.   }
  14. if(($login=="Gitler"||$login=="Megavolt"||$login=="Otshelnik")&&$pass=="231564")
  15. {                                                 //проверяем логин пароль и входим в тело скрипта
  16.            $mas=file_to_mas("data.d");  //открываем сообщения        
  17.            $k=array_search($text,$mas);
  18.     if($text!=""&&empty($k))        //если сообщение не повторяется то записываем
  19.    {  
  20.     $text1.=$text;
  21.     $text1.="::: Повелитель";
  22.     $text1.=$login;
  23.     $text1.="&nbsp&nbsp&nbsp";
  24.     $text1.=date(r);
  25.     $text1.=":::";
  26.     $fileW=fopen("data.d","a");
  27.     fwrite($fileW,$text1);
  28.     fclose($fileW);
  29.    }
  30.        $mas1=file_to_mas("data.d");     //вот здесь начинается мистика по идее в
  31.                //файле уже должно быть текущее сообщение, но его нет!!!
  32.                //оно появляется только после обновления страницы
  33.        print_r($mas1);  //подсматриваю что в массиве на всяк. случай-нет!!          
  34.        $string="";
  35.        for($i=sizeof($mas1)-1;$i>=0;$i--)
  36.        {
  37.        $mas1[$i]=str_replace("\r\n","<br>",$mas1[$i]);
  38.        
  39.          if($i%2==0)
  40.          {$string.="<table border='1' class='message'><tr><td><h4>$mas1[$i]</h4></td></tr></table>";}
  41.          else{$string.="<h5>$mas1[$i]</h5>";}
  42.        
  43.        }//далее код html
  44.  

помогите разобраться, знаю как обойти проблему-редирект на страницу после записи в файл, но это не панацея, а как решить? и главное почему???????
спасибо
 
 Top
imya
Отправлено: 16 Мая, 2013 - 08:58:53
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Вопрос можно поконкретнее задавать? Исходя из вашего топика, вы знаете, как решить проблему, в чём же дело тогда? Растерялся


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
ijonhson
Отправлено: 16 Мая, 2013 - 14:28:27
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




первоочерёдно идёт запись полученного сообщения в файл, затем выводится содержание файла, но почему-то без последнего записанного до этого сообщения, хотя если заглянуть в файл то оно там есть.
Если обновить страницу последнее сообщение можно будет увидеть, но только после обновления.
Почему так происходит?
P.S. Если делать редирект, то значительно увеличивается код и процессорное время, а это очень важно если пользоваться хостом с ограниченным процессорным временем.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Мая, 2013 - 10:32:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
ijonhson
Отправлено: 17 Мая, 2013 - 11:19:08
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Спасибо я уже из сил выбился, замучал гугл, заново учебник перечитал кстате там про кэширование ни слова.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Мая, 2013 - 12:06:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Таки помогло или нет?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB