kostenloser Webspace werbefrei: lima-city


Chat zwischen zwei usern?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    chatvz

    Kostenloser Webspace von chatvz

    chatvz hat kostenlosen Webspace.

    Hallo
    Ich bin grad dabei nen chat zu programmieren der von user zu user(immer 2 leute) sein soll.
    nun hab ich noch ein riesen problem damit das ich nur die nachrichten von einer person auslesen kann.
    der chat basiert auf einen iframe und metatags.
    hier das script:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <meta http-equiv="refresh" content="0; url=ChatBox.php?User=1#unten">
      <title></title>
      </head>
      <body>
    <?php
    $UserID = $_SESSION["user_id"];
    $PartnerID = $_GET['User'];
    
    
      $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "****".  
      "WHERE ".  
        "(Absender like '".$UserID."' AND Empfaenger like '".$PartnerID."')";  
    $result = mysql_query ($sql);  
    while ($data = mysql_fetch_array ($result)) {
    $Nachricht = $data['Nachricht'];
    $Absender = $data['Absender'];
    
    
    echo"".str_replace("\n", "<br />\n", $Nachricht)."<hr style='color:#C1D2F6; border-style: dashed;'>";
      }
    ?>
    <a name="unten">
      </body>
    </html>

    weiß jemand wie ich das noch dazu bekomme das die nachrichten von beiden usern angezeigt werden?
    LG:ChatVZ
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Ganz Simpel, im WHERE-Teil der Abfrage suchst du nur nach Nachrichten, die versendet wurden, was ist aber mit nachrichten, die der Partner an dich verschickt?
    Die Abfrage muss also so aussehen:
    <?php
    $where = "WHERE".
    " (Absender like '".$UserID."' AND Empfaenger like '".$PartnerID."') OR". // Nachrichten an meinen Partner
    " (Absender like '".$PartnerID."' AND Empfaenger like '".$UserID."')"; // Nachrichten an mich
    ?>


    Achso, für sowas
    str_replace("\n", "<br />\n", $Nachricht);

    gibt es das: nl2br

    [edit] Grammatik

    Beitrag zuletzt geändert: 9.5.2009 16:52:54 von thomasba
  4. Und warum verwendest du LIKE?

    Es handelt sich um IDs und die mit LIKE zu vergleichen verletzt ja echt die Menschenrechte der ID...

    Absender = '".$UserID."'
  5. vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    Und den ganzen Kram hier:
    $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "****".  
      "WHERE ".  
        "(Absender like '".$UserID."' AND Empfaenger like '".$PartnerID."')";  
    $result = mysql_query ($sql);

    Würde ich so schreiben:

    $result = mysql_query ("SELECT *
                            FROM ****
                            WHERE [...]
                           ");

    Sonst könntest du auch gleich yeden Buchstaben einzelnt schreiben. Das macht keinen Sinn und ist einfach nur unübersichtlich.

    Liebe Grüße
    - VampireSilence

    Beitrag zuletzt geändert: 9.5.2009 17:39:24 von vampiresilence
  6. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    vampiresilence schrieb:
    Und den ganzen Kram hier:
    $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "****".  
      "WHERE ".  
        "(Absender like '".$UserID."' AND Empfaenger like '".$PartnerID."')";  
    $result = mysql_query ($sql);

    Würde ich so schreiben:

    $result = mysql_query ("SELECT *
                            FROM ****
                            WHERE [...]
                           ");

    Sonst könntest du auch gleich yeden Buchstaben einzelnt schreiben. Das macht keinen Sinn und ist einfach nur unübersichtlich.


    Wenn dann schon so, dann sieht man zu fehlermeldung auch gleich die Abfrage ;)
    $sql = "...";
    mysql_query($sql) or die(mysql_error()."<br />".$sql);


    nikic schrieb: Und warum verwendest du LIKE?

    Es handelt sich um IDs und die mit LIKE zu vergleichen verletzt ja echt die Menschenrechte der ID...

    Absender = '".$UserID."'


    öhm, stimmt, hab ich übersehen, dann sollte dein Code so funtionieren:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <meta http-equiv="refresh" content="0; url=ChatBox.php?User=1#unten">
      <title></title>
      </head>
      <body>
    <?php
    $UserID = $_SESSION["user_id"];
    $PartnerID = $_GET['User'];
    
    
      $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "****".  
      "WHERE ".  
        "(Absender = '".$UserID."' AND Empfaenger = '".$PartnerID."') OR "
       "(Absender = '".$PartnerID."' AND Empfaenger = '".$UserID."')";  
    $result = mysql_query ($sql) or die(mysql_error()."<br />".$sql);
    while ($data = mysql_fetch_array ($result)) {
    $Nachricht = $data['Nachricht'];
    $Absender = $data['Absender'];
    
    
    echo"".nl2br($Nachricht)."<hr style='color:#C1D2F6; border-style: dashed;'>";
      }
    ?>
    <a name="unten">
      </body>
    </html>


    Beitrag zuletzt geändert: 9.5.2009 18:04:58 von thomasba
  7. vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    Das is ne absolut statische Abfrage, wozu also einen Fehler abfangen ?
    Das kann höchstens dann schief gehen, wenn die DB nicht erreichbar ist und ob da eine Fehlermeldung aushelfen kann, wage ich stark zu bezweifeln. Das is nur wieder unnützer Code, sonst nichts.

    Liebe Grüße
    - VampireSilence
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!