hallo
ich hab ein kleines Problem mit einem primitiven Chatskript..
es wird keine Fehlermeldung ausgegeben, aber es wird immer nur 1 Wert in die Tabelle eingetragen und mehr nicht.. also.. man schreibt die erste Zeile und diese Zeile wird in die Tabelle eingetragen.. schreibt man mehr, wird nichts mehr eingetragen
Wenn man die Daten aus der Tabelle dann löscht, kann man wieder eine Zeile in die Tabelle eintragen.
Außerdem erscheint nichts von dem, was in der Tabelle ist, auf dem Bildschirm
Das sind meine Codes..
1. Datei
Index.php
Code:
<?php
session_start();
?>
<html>
<head>
<title> Chat </title>
<script language="JavaScript">
msg = new Array();
function showchat()
{
for (i = 0; i < msg.lenght; i++)
{
show.document.write(msg[i]);
show.document.write(msg[
]);
}
show.document.write("<a name='end'> </a>");
}
</script>
</head>
<frameset rows="0,*,45" border="0">
<frame name="main" src="main.php">
<frame name="show" src="show.php">
<frame name="send" src="send.php">
</frameset>
</html>
2.) Datei - main.php
Code:
<?php
session_start();
$time = $_SESSION['time'];
if (!isset($time)) $time = 0;
$hdlDB = mysql_connect("musical-fanpage.de","musicals","alles_erlaubt");
$strSQL = "SELECT * FROM city_chat WHERE time > '$curtime'";
$hdlRS = mysql_db_query("musicald_data", $strSQL, $hdlDB);
while ($arrRS = mysql_fetch_assoc($hdlRS))
{
$arrMsg = '' . $arrRS['sender'] . ':'
. $arrRS['data'];
$time = max($arrRS['time'], $time);
}
session_register('time');
?>
<html>
<head>
<title> Chat </title>
<script language="JavaScript">
<?
if (is_array($arrMSG))
{
$i = 0;
foreach($arrMsg as $strLine)
{
echo "top.msg[top.msg.lenght]='$strLine'; \n";
$i++;
}
}
?>
top.show.location.reload();
</script>
</head>
<body onload="window.setInterval('location.reload()',4000)">
</body>
</html>
3.) Datei - send.php
Code:
<?php
session_start();
if(!isset($time)) $time = 0;
if(strlen($_POST['newmsg']) < 2)
{
$hdlDB = mysql_connect('musical-fanpage.de','musicals','alles_erlaubt');
$curtime = time();
$strSQL = "INSERT INTO city_chat (time, data, sender) VALUES ('$curtime','$newmsg','$sender')";
mysql_db_query('musicald_data',$strSQL,$hdlDB);
session_register('time');
} /* end if*/
?>
<html>
<head>
<title> Chat </title>
<script language="JavaScript">
<?
if (is_array($arrMsg))
{
foreach($arrMsg as $strLine)
echo "top.msg[top.msg.lenght]=\"$strLine\"";
}
?>
top.show.location.reload();
</script>
</head>
<body bgcolor="Yellow">
<form action="<? echo $PHP_SELF; ?>" method="post">
<select name="sender">
<option value="Chatter" <? $sender == "Chatter" ? print 'selected' : print '';
?>> Chatter
<option value="Rudi" <? $sender == "Chatter" ? print 'selected' : print '';
?>> Rudi
</select>
<input type="Text" name="newmsg" size=40>
<input type="Submit" value="senden">
</form>
</body>
</html>
4.) Date - show.php
Code:
<html>
<head>
</head>
<body>
<script language="JavaScript">
top.showchat();
</script>
</body>
</html>
Ich hoffe dsa ich nicht zuviel Codewirrwarr gepostet habe
Ich denke zwar das es aus dem Code hervorgeht, aber hier noch eine kleine erklärung:
Index baut das Frame auf
in send wird der name ausgewählt und die zeilen geschrieben, das wird dann in die DB eingetragen und mit main ausgelesen, main leitet diese Daten an Show weiter und show soll sie dann zeigen.. oder eben auch nicht.. in diesem Fall :-S
Danke für Hilfe
XD