[PHP] Shoutbox programmieren?!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Nemesis Force, 11. September 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. September 2007
    Shoutbox programmieren?!

    Hallo,
    ich wollte jetzt auf meiner neuen Homepage eine kleine (einfache) Shoutbox haben. Es ist wirklich nicht sehr umständlich:

    - 1x Eingabefeld für den eigentlichen Nachrichtentext
    - 1x Eingabefeld für den Namen des Nutzers
    - 1x Button für das absenden

    - Keine Smilies oder sonstigen Fummel!

    Jetzt meine Frage: Ist es möglich ohne Datenbank zu programmieren, also in eine *.dat-Datei oder so, wo die Nachrichten, Benutzer, Uhrzeit und Datum gespeichert werden? Wenn ja, wie stelle ich das ganze an - das Formular habe ich bereits...

    Bsp-Ausgabe:
    -----------------------------------------------------------
    NamedesSchreibers ~ 01.01.2007 | 00:00 Uhr
    Hallo Welt, hier ist mein Text...

    achso und die einzelnen "Posts" (wenn man es so nennen will...) sollen mit einer Grafik getrennt werden!
     
  2. 11. September 2007
    AW: Shoutbox programmieren?!

    Ja das geht natürlich. XML würde sich mittlerweile dazu anbieten, da du ja bestimmt mit deinem Posting keinen Menschen suchst, der dir das macht, sondern erfahren willst wie es geht, empfehle ich dir einfach mal die XML - Klassen von PHP o.Ä. webtauglichen Scriptsprachen. Solltest bei text-dateien bleiben, gibt es da auch ffunktionen wie file_put_contents, explode, file_get_contents uvm ... einfach mal in die Doku schauen.

    gabac hat z.B. in seinem anomey-CMS auch einen XML - Datenspeicher und ich z.B. nutze Text- und XML - Files als Cache. Funktioniert also auf jeden Fall.
     
  3. 11. September 2007
    AW: Shoutbox programmieren?!

    zu makenx's vorschalg würde sich auch noch die json schreibweiße empfehlen, auch dafür gibt es in php bereits fertige klassen die nutzen kannst. denn meiner menung nach is es einfacher mit javascript eine solche ausgabe zu generieren als mit php

    die json-syntax lässt du dann einfach im dokument ausgeben, und mit javascript erstellst du die shoutbox.

    wenn user javascript aushaben ist das natürlich nicht geeignet, aber meiner meinung nach ist javascript ein fester bestandteil und für meinen teil nicht mehr wegzudenken!

    //edit
    da eine shoutbox sowiso aktuell bleiben soll, würd ich auch noch empfehlen mit ajax zu arbeiten. im prototype-framework is eine solche ajax-update funktion bereits eingebaut wo du die xml-datei direkt verarbeiten kannst.
     
  4. 11. September 2007
    AW: Shoutbox programmieren?!

    Also ich hab das Problem jetzt mal anders gelöst. Es tauchen allerdings noch 2 weiter Probleme auf.

    Hier erstmal der funktionierende Quellcode:
    PHP:
    <?
      
    $tablewidth  120 ;                 //Breite der Tabelle
      
    $showcomments  4 ;                 //Anzahl der anzuzeigenden Kommentare
      
    $file  "include/shouts.txt" ;         //Name der Shoutsdatei
      
      
    echo  "
    <table width='
    $tablewidth ' border='0' align='center'>
      <form action='
    $PHP_SELF ?show= $show ' method='post'>
        <tr>
          <td align='center'>
            <input type='text' value='Name' autocomplete='off' class='shoutbox' name='input_name' size='35' maxlength='20'><br><br>
            <input type='text' value='Kommentar' autocomplete='off' class='shoutbox' name='input_comment' size='35' maxlength='150'><br><br>
            <input type='submit' class='shoutbox' style='font-weight:bold' value='senden'><br><br>
          </td>
          </tr>
        <tr>
          <td colspan='2'>"
    ;

      if(
    $input_name  !=  "Name"  &&  $input_name  !=  ""  &&  $input_comment  !=  "Kommentar"  &&  $input_comment  !=  "" ){
        
    $tmp  fopen ( $file "a" );
        
    fputs ( $tmp , " $input_name | $input_comment \n" );
        
    fclose ( $tmp );
      }

      
    $names  = array();
      
    $comments  = array();
      
    $tmp  fopen ( $file , "r" );
      while(!
    feof ( $tmp )){
        
    $row  fgets ( $tmp , 999999 );
        list(
    $name , $comment ) =  split ( "\|" , $row );
        if(
    $name  !=  "" ){
          
    array_push ( $names , $name );
          
    array_push ( $comments , $comment );
        }
      }
      
    fclose ( $tmp );
      
    $names  array_reverse ( $names );
      
    $comments  array_reverse ( $comments );

      if(
    $show  ==  "all" )
        
    $max  count ( $names );
      else
        
    $max  $showcomments ;

      for(
    $i = 0 $i < $max $i ++)
        echo 
    "<span class='special-1'> $names [ $i ] </span><br>  $comments [ $i ] <br><img src='../images/trennung-g.jpg' width='223' height='11' />" ;

      echo 
    "
          </td>
        </tr>
      </form>
    </table>
      "
    ;
    ?>
    Problem 1:
    Nun will ich aber noch hier das Datum und die Uhrzeit, wann dieser Shout geschrieben wurde angeben, nur ich weiß nicht richtig wie:
    PHP:
    echo  "<span class='special-1'> $names [ $i ] </span><br>  $comments [ $i ] <br><img src='../images/trennung-g.jpg' width='223' height='11' />" ;
    Problem 2:
    Weiterhin wollte ich den Inhalt der Eingabefelder beim Anklicken löschen und zwar so:
    PHP:
    < input type = 'text'  value = 'Name'  autocomplete = 'off'  class= 'shoutbox'  name = 'input_name'  size = '35'  maxlength = '20'  onclick = 'this.value='';' >
    Allerdings funktioniert das mit
    PHP:
    onclick = 'this.value='';'
    irgendwie auch nicht.
    Kann mir jemand weiterhelfen?
     
  5. 11. September 2007
    AW: Shoutbox programmieren?!

    zu problem 1:
    du musst datum und uhrzeit natürlich auch ins file schreiben

    PHP:
    $timestamp  time ();
    $datum  date ( "d.m.Y" , $timestamp );
    $uhrzeit  date ( "H:i" , $timestamp );
    fputs ( $tmp , " $input_name | $input_comment | $datum | $uhrzeit \n" );
    zu Problem 2:
    entweder du nimmst für den wert von onclick einfache anführungsstriche und für den javascript befehl doppelte anführungstriche oder umgekehrt
    PHP:
    onclick = "this.value='';"
    wenn das immer noch nicht geht probier mal den strichpunkt weg zu lassen
     
  6. 11. September 2007
    AW: Shoutbox programmieren?!

    So, Problem Nr. 2 habe ich soeben gelöst. Es muss wie folgt aussehen:
    PHP:
    onclick = 'this.value=\"\";'
    Zu Problem 1 ist folgendes zu sagen:
    Es funktioniert zwar, das das Datum und die Uhrzeit in der Datei gespeichert werden, aber bei der Ausgabe dann im Shout die aktuelle Uhrzeit und Datum steht... warum?
     
  7. 11. September 2007
    AW: Shoutbox programmieren?!

    hab jetzt zwar nicht probiert ob das funktioniert aber kannst ja mal schaun

    PHP:
      $names  = array();
      
    $comments  = array();
      
    $dates  = array();
      
    $times  = array();
      
    $tmp  fopen ( $file , "r" );
      while(!
    feof ( $tmp )){
        
    $row  fgets ( $tmp , 999999 );
        list(
    $name , $comment , $date , $time ) =  split ( "\|" , $row );
        if(
    $name  !=  "" ){
          
    array_push ( $names , $name );
          
    array_push ( $comments , $comment );
          
    array_push ( $dates , $date );
          
    array_push ( $times , $time );
        }
      }
      
    fclose ( $tmp );
      
    $names  array_reverse ( $names );
      
    $comments  array_reverse ( $comments );
      
    $dates  array_reverse ( $dates );
      
    $times  array_reverse ( $times );

      if(
    $show  ==  "all" )
        
    $max  count ( $names );
      else
        
    $max  $showcomments ;

      for(
    $i = 0 $i < $max $i ++)
        echo 
    "<span class='special-1'> $dates [ $i ]  -  $times [ $i ] $names [ $i ] </span><br>  $comments [ $i ] <br><img src='../images/trennung-g.jpg' width='223' height='11' />" ;
     
  8. 12. September 2007
    AW: Shoutbox programmieren?!

    Wow =) fetten Dank an dich - Bewertung haste

    ~closed
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.