За последние 24 часа нас посетили 17538 программистов и 1719 роботов. Сейчас ищут 1653 программиста ...

Не показывает сообщение в чате.

Тема в разделе "PHP для новичков", создана пользователем Verico, 9 июн 2017.

  1. Verico

    Verico Новичок

    С нами с:
    13 апр 2017
    Сообщения:
    39
    Симпатии:
    0
    Добрый день, такая проблема: не высвечивает сообщения в чате, вот исходники которые отвечают за отправку сообщений. В файлах где лежат сообщения вот такое:"[15:25:09]&nbsp;&nbsp;<B> => </B> :"
    PHP:
    1. <HTML>
    2. <HEAD>
    3. </HEAD>
    4. <BODY BGCOLOR="#8caae6">
    5. <TABLE WIDTH="100%" HEIGHT="100%" CELLPADDING=0 CELLSPACING=0>
    6. <TR VALIGN="middle">
    7. <TD WIDTH="80%">
    8. <FORM NAME="sendform" ACTION="add.php" METHOD="post">
    9. <?
    10. $login=$_GET['login'];
    11. ?>
    12. <INPUT TYPE="hidden" VALUE="<?=$login;?>" NAME="login">
    13. <INPUT TYPE="text" NAME="who" STYLE="width:15%" STYLE="border-width:1px; border-color:black">
    14. <INPUT TYPE="text" NAME="message" STYLE="width:75%" STYLE="border-width:1px; border-color:black"></TD>
    15. <TD WIDTH="15%"><INPUT TYPE="submit" VALUE="Сказать" STYLE="border-width:1px; border-color:black"></TD>
    16. </FORM>
    17. <FORM ACTION="del.php" METHOD="get" NAME="closeform" TARGET="_parent">
    18. <TD WIDTH="20%">
    19. <INPUT TYPE="hidden" NAME="login" VALUE="<?=$login;?>">
    20. &nbsp;<INPUT TYPE="submit" VALUE="Выход" STYLE="border-width:1px; border-color:black">
    21. </TD>
    22. </FORM>
    23. </TR>
    24. </TABLE>
    25. </BODY>
    26. </HTML>
    PHP:
    1. <?PHP
    2. header('Content-type:text/html; charset=utf-8');
    3. $file=fopen("chat.txt","a");
    4. $filehis=fopen("history.txt","a");
    5. for ($i=1; $i<8; $i++)
    6. {
    7. $message=ereg_replace("<".$i.">","<IMG SRC='".$i.".gif'>".$message);
    8. }
    9. # С помощью этих строк мы выделяем из реплики адреса сайтов и e-mail’ы.
    10. $message = eregi_replace('([[:space:]()[{}])(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2" target="_blank">\\2</a>', $message);
    11. $message = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2" target="_blank">\\2</a>', $message);
    12. $message = eregi_replace('([[:space:]()[{}])(http://.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="\\2" target="_blank">\\2</a>', $message);
    13. $message = eregi_replace("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*","<a href=\"mailto:\\0\">\\0</a>",$message);
    14.  
    15. fwrite($file,"\n[".date("H:i:s")."]&nbsp;&nbsp;<B>".$login." => ".$who."</B> : ".$message);
    16. fwrite($filehis,"\n[".date("H:i:s")."]&nbsp;&nbsp;<B>".$login." => ".$who."</B> : ".$message);
    17.  
    18. header("Location:send.php?login=".$login);
    19. ?>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. Verico

    Verico Новичок

    С нами с:
    13 апр 2017
    Сообщения:
    39
    Симпатии:
    0
    А имеет ли значение то, что это все находиться на локалке?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    И да и нет, лучше проведи отладку и выясни на каком этапе что-то идет не так как тебе нужно
     
  5. Verico

    Verico Новичок

    С нами с:
    13 апр 2017
    Сообщения:
    39
    Симпатии:
    0
  6. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    а как ты $login и $who получаешь?

    тут что делается?
    PHP:
    1. $message=ereg_replace("<".$i.">","<IMG SRC='".$i.".gif'>".$message);
     
    #6 gruth, 9 июн 2017
    Последнее редактирование: 9 июн 2017
  7. Verico

    Verico Новичок

    С нами с:
    13 апр 2017
    Сообщения:
    39
    Симпатии:
    0
    Через get запрос
    --- Добавлено ---
    смайлики типа
     
  8. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    PHP:
    1. echo (ini_get('register_globals')) ? 'true' : 'false';
    этот код что выведет у тебя?
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Парень, бросай эти костыли с регулярками и заведи себе женщину.. ой, БД.
     
  10. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Нет, похоже он пытается обработать этими костылями при сохранении. Что-то типа бб кодов. Регулярки для того и нужны что бы без цыклов обрабатывать текст.
    Читай в мануалах про функции подробнее, в ereg_replace нужно передавать 3 параметра а ты передашь меньше.
    PHP:
    1. $message = ereg_replace('#<([1-7])>#', '<img src="$1.gif" alt="">', $message);
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    $message переменная пуста
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    какую же версию используешь ты?
     
  13. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    видимо и она поподает через гет запрос