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 |
#2 · Zasláno: 20. 5. 2013, 20:23:18
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> |
||
Chamurappi Profil |
#3 · Zasláno: 20. 5. 2013, 20:59:30
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 |
#4 · Zasláno: 20. 5. 2013, 22:56:20
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...“ |
||
Adrifinel Profil |
#6 · Zasláno: 21. 5. 2013, 01:31:18
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 |
#7 · Zasláno: 21. 5. 2013, 01:36:21
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 |
#8 · Zasláno: 21. 5. 2013, 13:56:10
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í?
|
||
Časová prodleva: 11 let
|
0