Autor Zpráva
Adrifinel
Profil
Mám takový menší problém s chatem:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//CZ">
<HTML>
<HEAD><TITLE>Digitální monstra chat</TITLE></HEAD>
<FRAMESET border="0" frameBorder="0" frameSpacing="0" rows="*,75">
   <FRAME src="chat.php" name="a">
   <FRAME src="php/sendchatform.php" name="b" scrolling="no">
</FRAMESET>

Výsledkem bylo, že jste měli dole na stránce políčko pro psaní a nahoře se ukazovali zprávy. Nyní to funguje následovně:

1) Stránka by se měla jmenovat chatframe.php ale z nějakého mně neznámého důvodu se přesměrovává na chat.php
2) soubory chat.php a sendchatform.php se načítali do chatframe.php a tvořily tak celek. Ten teď netvoří...
3) Chat funguje, ale uživatel aby mohl psát zprávy musí si najít soubor php/sendchatform.php...

Takže by mě zajímalo důvod chyby, proč se nechtějí ty dva soubory načítat do toho frame souboru....


Edit: Zjistla jsem, že i když to dám třeba pomocí include, tak se to přesměrovává na chat.php, když by se to nemělo a mělo by to být vše načteno do toho framechat.php.
Fisak
Profil
Adrifinel:
Zkoušela jste udělat takovýto chat ajaxem? Je to lepší řešení... např načítání zpráv by se udělalo takto:

<script> 
 
      setInterval(function(){ $("#hframe").load("chat/chat_frame.php"); },1000); //chatovací okno   
</script> 
 <span id='hframe'></span>
<script>
      
  $("#hframe").load("chat/chat_frame.php");  //chatovací okno 
</script> 
a v tom chat_frame.php uděláte akorát výpis záznamů z db
Chamurappi
Profil
Reaguji na Fisaka:
Tenhle kousíček kódu jí sám o sobě fungovat nebude, musela by si do stránky přivázat devadesátikilové závaží, což je docela zbytečné. Navíc by se pak trápila s tím tvým oblíbeným posuvníkem :-)
Moc u toho tvého kódu nechápu, proč do stránky nevypíšeš stávající podobu chatu, proč si pro ní hned při načtení znovu saháš na server.


Reaguji na Adrifinel:
ale z nějakého mně neznámého důvodu se přesměrovává na chat.php
Ten neznámý důvod se z naší pozice špatně odhaluje. V tebou uvedeném kódu příčina není.

i když to dám třeba pomocí include, tak se to přesměrovává na chat.php
Nemáš v tom chat.php nějaké nešikovné znovunačítání, které způsobí vylezení z rámu?
Adrifinel
Profil
Chamurappi:

Bylo by možné, že by se tato chyba projevila až nyní? Ono mi to celou dobu fungovalo, ale dnes jsem dělala změny, kdy jsem aktulizovala <? na <?php a od té doby to nejde...

Tohle nemám ráda, když něco funguje a najednou to nechce fungovat...

 <?php  include "php/spojeni.php";
$jmeno = $_COOKIE['wc3world'] ;
  $spojeni = $connect;
  MySQL_Select_DB("$db");
  $udaje = MySQL_Query("SELECT * FROM users WHERE jmeno LIKE '$jmeno'");
$zaznam = MySQL_Fetch_Array($udaje);

  $query_set_sound = MySQL_Query("SELECT * FROM chatsettings WHERE jmeno LIKE '$jmeno'");
$data_set_sound = MySQL_Fetch_Array($query_set_sound);
if($data_set_sound) {
    $chat_set_sound1 = $data_set_sound["sound_msg"];
}
else {
    $chat_set_sound1 = "";
}

  ?>  
  
<?php $title="Chat";
     include ('./predtitle.php'); ?>  
<table>
<?php
$jmeno = $_COOKIE['wc3world'] ;

 if ($jmeno !=""):
    @$spojeni = $connect;
    if (!$spojeni):
        echo "Nepodařilo se připojit k MySQL.<BR>\n";
        break;
    endif;
    MySQL_Select_DB("$db");

$atime = Date("U") - 1800;
  @$delete = MySQL_Query("DELETE  FROM `chat` WHERE atime < '$atime' ");
  $atime = Date("U") - 45;
   @$delete = MySQL_Query("DELETE FROM `chatusers` WHERE `lastaction` < '$atime' ");
    $lastaction = Date("U")    ;
    $vysl2 = MySQL_Query("UPDATE users SET
              lastaction = '$lastaction',
              lasturl = '".$REQUEST_URI."'
                               WHERE jmeno LIKE '$jmeno'");
                               $atime = Date("U") - 45;
    @$vysledek = MySQL_Query("SELECT jmeno FROM chatusers WHERE jmeno LIKE '$jmeno'");
$lastaction = Date("U")    ;
 $time = Date("H:i:s");

if (MySQL_Num_Rows($vysledek) > 0):
$vysl2 = MySQL_Query("UPDATE chatusers SET
              lastaction = '$lastaction'
               WHERE jmeno LIKE '$jmeno'");
   else:
    $vysl2 = MySQL_Query("INSERT INTO chatusers VALUES ('$jmeno','$time','$lastaction')");
   endif;


      endif;
  ?>                <tr>   <!--    hlavni pole   -->
<td valign="top" width="80%">
 <table border color="#00254A" width="100%" frame="hsides">
          <font size=2 face="Verdana">
          <?php


    $spojeni1 = $connect;
    if (!$spojeni1):
        echo "Nepodařilo se připojit k MySQL.<BR>\n";
        break;
    endif;
    MySQL_Select_DB("$db");
    $vysledekrep = MySQL_Query("SELECT * FROM chat WHERE whisper LIKE 'ne' OR whisper LIKE '$jmeno' OR jmeno LIKE '$jmeno' ORDER BY atime DESC LIMIT 50");
    if (!$vysledekrep):
        echo "Došlo k chybě při zpracování dotazu v databázi.<BR>\n";
        break;
    endif;
    $mess1 = MySQL_Num_Rows($vysledekrep);
    $vysledekrepx = MySQL_Query("SELECT * FROM chat WHERE whisper LIKE '$jmeno'");
     $messw1 = MySQL_Num_Rows($vysledekrepx);
      $vysledekrepy = MySQL_Query("SELECT * FROM chat WHERE whisper LIKE 'ne'");
     $mess1 = MySQL_Num_Rows($vysledekrepy);
   if ($mess < $mess1):
   echo "<bgsound SRC='php/".$chat_set_sound1."' LOOP='1'>
";
 elseif ($messw < $messw1):
   echo "<bgsound SRC='php/whisper.wav' LOOP='1'>
";

endif;

   while ($zaznam1 = MySQL_Fetch_Array($vysledekrep)){
    $cjmeno = $zaznam1["jmeno"];
      $vysledekrepx = MySQL_Query("SELECT * FROM chatusers WHERE jmeno LIKE '$cjmeno'");
      if  (MySQL_Num_Rows($vysledekrepx) == 1):
      $color = "gold";
      else:
       $color = "red";
       endif;
        echo  "<tr class=dalsi><td align=left valign=middle class=jmeno>
        <a href='userprofile.php?info=".$zaznam1["jmeno"]."' title='Přejít na profil uživatele' target='_blank'><font color=".$color." size=2 face=Verdana><b>".$zaznam1["jmeno"]."</b></font></a><br><font size=2 face=Verdana color=#42A0FF>".$zaznam1["time"]."</font>
        ";
        if ($zaznam1["komu"]!=""):
        echo "<br>Komu: <b><font size=2 face=Verdana color=#C45E3C>".$zaznam1["komu"]."</font></b></td>";
        endif;

        echo"<td align=center valign=middle class=prispevek><font size=2 face=Verdana>".$zaznam1["text"]."".$zaznam1["text2"]."</font></td><td valign=middle align=right class=ikonka>";
        if($zaznam1["jmeno"] == $jmeno) {
            echo '<a href="changeicon.php" target="_blank" title="Změnit vlastní ikonku"><img src="'.$zaznam1["icon"].'" width="55" height="54" alt="Ikonka"></a>';
        }
        else {
            echo '<img src="'.$zaznam1["icon"].'" width="55" height="54" alt="Ikonka">';
        }
        echo "</td>
       </tr>
        ";  }
?>
                        </table>        </td><td valign="top">

                        <table><tr><td align="center"><font face="Verdana" size="3"><b>Uživatelé v Chatu:</b></font></td>
    <!-- pravej sloupec-->
<?php do { 
    @$spojeni = $connect;
    if (!$spojeni):
        echo "Nepodařilo se připojit k MySQL.<BR>\n";
        break;
    endif;
    MySQL_Select_DB("$db");
    @$vysledek = MySQL_Query("SELECT * FROM chatusers WHERE jmeno NOT LIKE '$jmeno' ORDER BY jmeno");
$chatusers1 =  MySQL_Num_Rows($vysledek) ;
   if ($chatusers < $chatusers1):
   echo "<bgsound SRC='./onchatuser.wav' LOOP='1'>
";

endif;
    if (!$vysledek):
        echo "Došlo k chybě při zpracování dotazu v databázi.<BR>\n";
        break;
    endif;

   while ($zaznam = MySQL_Fetch_Array($vysledek))
        echo  "<tr><td align=left valign=top><a href=php/sendmessageform.php?prijemce=".$zaznam["jmeno"]." target='_blank'><font color=#ff6600 face=Verdana size=2><b>".$zaznam["jmeno"]."</b></font></a> Přišel(a): (".$zaznam["came"].")</td></tr></option>";
} while (false);
  ?>     
  <?php if ($prodleva==""):
                  $prodleva=10000;
            endif;

  ?>         
  <script type="text/javascript">
        setTimeout("window.location.replace('chat.php?messw=<?php echo "$messw1";?>&mess=<?php echo "$mess1";?>&prodleva=<?php echo "$prodleva";?>&chatusers=<?php echo "$chatusers1";?>')", <?php echo $prodleva;?>);
    </script>
                        <tr><td><form action=chat.php method=get>
                       Obnovit každých: <select name=prodleva  onchange="submit()">
                                <?php echo "<option value=".$prodleva.">".$prodleva."</option>"; ?>
                                 <option value="5000">5sec</option>
                                 <option value="10000">10sec</option>
                                 <option value="15000">15sec</option>
                                 <option value="20000">20sec</option>
                                 <option value="40000">40sec</option>
                                 <option value="60000">60sec</option>
                                <option value="1200000">2 minuty</option>
                        </select>
                        </form></td></tr>
                      <tr>
                      <td align="center"> <a href="index.php" target="_parent"><font face="Verdana" size="2">
                      [Opustit chat]</font></a>
                      <br>
  </td></tr>        </table>
</td></tr></table>
                        </center></p></div></div></div>
nemeja
Profil
Adrifinel:
kdy jsem aktulizovala <? na <?php a od té doby to nejde...
možná v tomhle bude problém, některé servery to mají stabilně vypnuté, zkus to vrátit zpátky Promiň, špatně jsem si to přečetl, samozřejmě, že delší fungujou vždy
Adrifinel
Profil
nemeja:

Zkusila jsem a nejde.

Ale víš co zápis <?php používám zcela běžně. Akorát jsem měla část kódu psanou každou jinak, tak jsem to slučovala do hromady a je divné, že to takhle zareagovalo.
juriad
Profil
nemeja:
Je to právě naopak, často je zkrácená varianta vypnutá: http://www.php.net/manual/en/ini.core.php#ini.short-open-tag. Dlouhá varianta funguje vždy.
Adrifinel
Profil
Nicméně by to nemělo dělat neplechu, pokud to tam celou dobu mám. Takže našel někdo v tom kodu někde to špatné načítání?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: