| 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: 13 let
|
|||
0