• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Chat

djfabi

Mitglied
hallo,
ich habe mithilfe meines PHP buches einen Chat programmiert...

Aber ich möchte 2 dinge ändern.

1. Es ist in einem Frame aufbau ich will frame 2 (eingabe) in die html datei und nur frame 1 ausgeben, wie mache ich das?

2. Ich will das es sich automatisch aktualisiert, nicht mit Chat laden, wie geht das?

CSS:
Code:
body,td {font-family: Verdana; font-size: 9pt; background-color:#d0dce0; color:#00008b}

a:link    {font-family: Verdana; font-size: 9pt; color: #0000ff}
a:visited {font-family: Verdana; font-size: 9pt; color: #0000ff}
a:hover   {font-family: Verdana; font-size: 9pt; color: #ff0000}

HTML:
HTML:
<html><frameset rows="4*,*">   <frame src="chat_text_aus.php" name="ausgabe" />   <frame src="chat_text_ein.php" name="eingabe" /></frameset></html>

CHAT:


Code:
<tr><td>25.02.11 13:17:01</td><td>Hans</td><td>Hallo zusammen</td></tr><tr><td>25.02.11 13:17:19</td><td>Claudia</td><td>Hallo Hans, bin auch wieder da</td></tr>
<tr><td>25.02.11 13:17:38</td><td>Peter</td><td>Tag Leute, um was geht es heute?</td></tr>



AUSGABE:

HTML:
<html><head><link rel="stylesheet" type="text/css" href="chat.css"></head><body><h3>Chat</h3><?php/* Datei mit chat-Daten auslesen */$fp = @fopen("chat_text.txt","r");if($fp){   echo "<table>"     . "<tr><td><b>Zeit</b></td>"     . "<td><b>Name</b></td>"     . "<td><b>Beitrag</b></td></tr>";
   /* alle Zeilen lesen und ausgeben */   while(!feof($fp))   {      $tabzeile = fgets($fp,200);      echo "$tabzeile";   }
   echo "</table>";   fclose($fp);}?></body></html>







EINGABE:

HTML:
<html><head><link rel="stylesheet" type="text/css" href="chat.css">
<script type="text/javascript">/* Beitrag senden, falls Name und Beitrag vorhanden */function send(){   if(document.f.nick.value != "" &&      document.f.beitrag.value != "")      document.f.submit();}
/* Chat-Anzeige aktualisieren */function reload(){   parent.ausgabe.location.href = "chat_text_aus.php";}</script></head>
<body><?php/* Anhängen des neuen Textes, falls vorhanden */if(isset($_POST["beitrag"])){   $fp = @fopen("chat_text.txt","a");   if($fp)   {      $jetzt = date("d.m.y H:i:s");      $tabzeile =  "<tr><td>$jetzt</td><td>" . $_POST["nick"] . "</td><td>" . $_POST["beitrag"] . "</td></tr>" . chr(13) . chr(10);      fputs($fp,$tabzeile);   }   fclose($fp);
   /* Chat-Anzeige aktualisieren */   echo "<script type='text/javascript'>reload();</script>";}?>
<form name="f" action="chat_text_ein.php" method="post"><table>  <tr>    <td>Ihr Name:</td>    <td><input name="nick"    <?php      if(isset($_POST["nick"]))        echo "value='" . $_POST["nick"] . "'";    ?>    size="20" /></td>    <td align="center">      <a href="javascript:reload();">Chat laden</a>    </td>    <td align="right">      <a href="javascript:send();">        Senden</a>    </td>  </tr>  <tr>    <td valign="top">Ihr Beitrag:</td>    <td colspan="3">      <textarea cols="50" rows="2" name="beitrag"></textarea>    </td>  </tr></table></form></body></html>








Danke im Vorraus ;)
 
Warum Frames?

Das Speichern und Abfragen von Chat-Einträgen solltest Du mittels AJAX-Requests lösen, wobei letzteres mittels Zeitintervall umgesetzt werden sollte. Durch den Einsatz von AJAX sind deine Probleme gelöst und Du brauchst dann auch keine Frames zu verwenden.
 
Zurück
Oben