Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2012, 17:29   #1
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию Баг! Не придвиденная ситуация снифера

О ужас, Я пишу чат только начал.Сегодня обнаружил такой баг:
Пишу сообщение нажимаю отправить сообщение,после нажатия включается скрипт записывающий сообщение в текстовый файл. После записи, с помощью incude запускается скрипт вывода сообщения в окно чата,сообщение выводится, Но если я обновлю страницу, тоже сообщение снова записывается в файл и запускается скрипт вывода сообщения и так всегда когда обновляю страницу! Помагите Запутался вот коды
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="test.ru"> 
<head> 
<body>




<form action="zapis v fail.php" method="POST" name="jas">
<textarea name='vivod' cols='45' rows='10' readonly> </textarea></div>
<div>  <textarea name="message" cols="45" rows="5"></textarea></div>
<div> <input type="submit" name="knopka" value="Otpravit sms jas" />  </div> 
</form>





</body>
</html>

Код:
<?php
// zapis v fail.

$file = fopen("file.txt","a+");
$vstavka  = $_POST["message"] ;


  
  
 
   if (isset($_POST["knopka"])){
    
	fputs  ($file, "$vstavka\r\n");
	
     fclose ($file);
   
  
  
  
  }
  
  include("vivod.php");

  
?>
Код:
<?php

// vidod soobwENIA V FORMU TEXTAREA.
  $name = ("file.txt");
  $func = fopen ($name,"r");
  $text = fread ($func,filesize($name));
  
  
  
  
  
  
  
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> 
<html xmlns='test.ru'> 
<head> 
<body>




<form action='zapis v fail.php' method='POST' name='jas'>
<div>  <textarea name='vivod' cols='45' rows='10'readonly> 
$text
</textarea></div>
<div>  <textarea name='message' cols='45' rows='5'></textarea></div>
<div> <input type='submit' name='knopka' value='Otpravit sms jas' />  </div> 
</form>




</body>
</html>";
  
  

  
  
  
  
  
  
  
  ?>
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 11.03.2012, 17:56   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

не обновляй. ))
а вообще обычно в чатах делают проверку - последнего отправленного сообщения, типа если между сообщениями слишком мало времени прошло и они одинаковые - не записывать их....
... и вообще при вашем подходе- отправкой POST - обновление формы всегда будет отправлять данные еще раз
ADSoft вне форума Ответить с цитированием
Старый 12.03.2012, 06:34   #3
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

И что использовать гет?)))
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 12.03.2012, 06:46   #4
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Использовал гет, нечего не изменилось)))
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 12.03.2012, 08:01   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

блин... вы вникли в суть сообщения? При обычной модели отправил/получил POST больше всего подходит.... тогда используйте те правила что написал - контроль по времени и доблированию текста

а имел ввиду асинхронные запросы... AJAX ...
тут и с отправкой по другому... и обновление чата делается без перезагрузки сайта... а у вас сейчас новое сообщение от другого пользователя можно увидеть только или при обновлении страницы ручном - или при написании собственного поста
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна модернизация кода для снифера masterbloger Помощь студентам 3 09.01.2011 14:29
Исключительная ситуация Mozgunov Общие вопросы Delphi 2 14.11.2010 11:42
Ситуация: Ekspert Операционные системы общие вопросы 4 28.03.2010 11:47
исключительная ситуация Psicheja Помощь студентам 1 18.03.2010 23:40