Hi leute!
Habe in PHP und MySQL einen Instant Messanger programmiert.
Es gibt eine Datei check.php, die alle 7 Sekunden checkt ob einen neue Nachricht vorhanden ist. Wenn ja, öffnet sie den IM in einem Pop-Up.
In diesem Pop-Up ist eine Datei send.php die ebenfalls alle 7 Sekunden checkt ob eine neue Nachricht vorhanden ist. Allerdings nur von dem Partner mit dem man in diesem Fenster schreibt.
Wenn jetzt die send.php merkt das eine neue Nachricht vorhanden ist, schreibt sie diese in einen 2ten Frame.
Wenn aber die check.php, die für die ganze Seite zuständig ist, früher wie die send.php merkt das eine neue Nachricht vorhanden ist, läd sie alle Frames im Pop-Up neu.
Wie kann man das machen, dass die check.php merkt, dass eine Pop-Up mit einem bestimmten Partner geöffnet ist, und alle Messages die von diesem kommen nicht berücksichtigt?
Hier der Code der Dateien:
check.php
send.php
Habe in PHP und MySQL einen Instant Messanger programmiert.
Es gibt eine Datei check.php, die alle 7 Sekunden checkt ob einen neue Nachricht vorhanden ist. Wenn ja, öffnet sie den IM in einem Pop-Up.
In diesem Pop-Up ist eine Datei send.php die ebenfalls alle 7 Sekunden checkt ob eine neue Nachricht vorhanden ist. Allerdings nur von dem Partner mit dem man in diesem Fenster schreibt.
Wenn jetzt die send.php merkt das eine neue Nachricht vorhanden ist, schreibt sie diese in einen 2ten Frame.
Wenn aber die check.php, die für die ganze Seite zuständig ist, früher wie die send.php merkt das eine neue Nachricht vorhanden ist, läd sie alle Frames im Pop-Up neu.
Wie kann man das machen, dass die check.php merkt, dass eine Pop-Up mit einem bestimmten Partner geöffnet ist, und alle Messages die von diesem kommen nicht berücksichtigt?
Hier der Code der Dateien:
check.php
PHP-Code:
<?
include("global.php");
if ($loggedin == 1) {
$fromdet = $DBase->fetch("SELECT * FROM boarduser WHERE name = '$userid' LIMIT 1");
$fromuser = $fromdet['userid'];
$count = $DBase->num_rows("SELECT * FROM instant WHERE touser = '$fromuser' AND
instantread = 0");
if ($count > 0) {
$getmessages = $DBase->query("SELECT * FROM instant WHERE touser = '$fromuser' AND
instantread = 0");
while ($row = $DBase->fetch_array($getmessages)) {
$onload .= "javascript:instant(" . $row['fromuser'] . ");\n";
}
}
}
?>
<html>
<head>
<title>Check-Frame</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="7">
<SCRIPT LANGUAGE="JavaScript">
function instant(touser) {
var id = touser;
var page = "page" + id;
if (!page.closed && page.location) {
} else {
eval(page + " = window.open('instant.php?touser='+touser, '" +
id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,
menubar=0,resizable=0,width=450,height=300');");
if (!page.opener) page.opener = self;
}
return false;
}
</script>
<?
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo $onload;
echo "</script>";
?>
</head>
<body>
</body>
</html>
PHP-Code:
<?
include("global.php");
if ($loggedin == 1) {
if ($first == "1") {
$lastrec = $DBase->fetch("SELECT * FROM instant WHERE touser = '$fromuser' AND
instantread = 1 ORDER BY timecode DESC LIMIT 1");
$first = $lastrec['timecode'];
}
if ($action == "send") {
$time = time();
$DBase->query("INSERT INTO instant VALUES ('','$fromuser','$touser','$text','$time','0')");
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo "parent.bottomFrame.document.message.imtext.value = \"\";";
echo "</script>";
echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=send.php?
touser=$touser&fromuser=$fromuser&first=$first\">";
}
$count = $DBase->num_rows("SELECT * FROM instant WHERE fromuser = '$fromuser' AND
instantread = 0 OR touser = '$fromuser' AND instantread = 0");
if ($count > 0) {
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo "eval(\"parent.messages.location='instant.php?action=middle
&touser=$touser&first=$first'\");\n";
echo "</script>";
}
} else {
echo "Sie haben keine Berechtigung Instant Messages zu schreiben!";
}
?>
<html>
<head>
<title>IM-Sender</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="7">
</head>
<body>
</body>
</html>
Kommentar