Ankündigung

Einklappen
Keine Ankündigung bisher.

Chat nachladen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Chat nachladen

    Ich habe folgendes Problem:
    Ich möchte den Chat alle paar Sekunden nachladen, so dass neue Nachrichten kurz danach angezeigt werden, jedoch funktioniert es nicht. Vielleicht könnt ihr mir helfen

    Dominik72000



    chat.php:

    [PHPWIKI]

    <?
    session_start();
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

    <head>
    <title>Chat</title>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />

    <?
    $verbindung = mysql_connect ("*****",
    "****", "****")
    or die ("keine Verbindung möglich.
    Benutzername oder Passwort sind falsch");

    mysql_select_db("schwarzenonne")
    or die ("Die Datenbank existiert nicht.");




    $absender = $_SESSION['absender'];
    $empf = $_SESSION['empf'];
    $inhalt = $absender.": ".$_POST['inhalt'];
    $passwort = $_POST['pass'];


    $abfrage1 = "SELECT * FROM benutzer WHERE name LIKE '$absender' LIMIT 1";
    $ergebnis1 = mysql_query($abfrage1);
    $row1 = mysql_fetch_object($ergebnis1);

    if($row1->passwort == $passwort || $_SESSION['eingelogt'] == true)
    {
    $_SESSION['eingelogt'] = true;
    if($inhalt != $absender.": " && $_SESSION['safe'] != $inhalt){
    $eintrag = "INSERT INTO chat
    (absender, empf, inhalt)

    VALUES
    ('$absender', '$empf', '$inhalt')";

    $eintragen = mysql_query($eintrag);
    $_SESSION['safe'] = $inhalt;
    }
    }?>


    <script language="javascript" type="text/javascript">

    anfordern();

    function anfordern(){
    if (window.XMLHttpRequest){
    //Erzeugung des Objektes für alle Browser außer IE5 und IE6.
    myAjax = new XMLHttpRequest();
    }else{
    //Dieser Code wird als Fallback für den IE5 und IE6 benötigt, da diese die obige Schreibweise nicht unterstützen.
    myAjax = new ActiveXObject("Microsoft.XMLHTTP");
    }

    }



    myAjax.onreadystatechange=function(){
    if (myAjax.readyState==4 && myAjax.status==200){
    document.all.chat.innerHTML=myAjax.responseText;
    setTimeout("anfordern()", 5000);
    }
    };


    myAjax.open("GET","anzeigen.php",true);
    myAjax.send();






    </script>
    </head>

    <body>
    <link rel="stylesheet" href="main.css">
    <link rel="stylesheet" media="screen and (max-device-width: 700px) and (orientation: portrait)" href="responsive.css" >
    <link rel="stylesheet" media="screen and (max-device-width: 700px) and (orientation: landscape)" href="responsive-landscape.css" >
    <body>
    <div id="chat">

    </div>

    <form action="chat.php" method = "post">

    <input type="text" name="inhalt" id="textfeld"/>
    <input type="submit" value="senden" id="buttom"/>


    </form>
    </body>
    </html>
    </body>
    </html>


    [/PHPWIKI]



    anzeigen.php:

    [PHPWIKI]
    <?php
    session_start();

    $verbindung = mysql_connect ("localhost",
    "******", "*******")
    or die ("keine Verbindung möglich.
    Benutzername oder Passwort sind falsch");

    mysql_select_db("schwarzenonne")
    or die ("Die Datenbank existiert nicht.");



    $absender = $_SESSION['absender'];
    $empf = $_SESSION['empf'];
    $abfrage1 = "SELECT * FROM benutzer WHERE name LIKE '$absender' LIMIT 1";
    $ergebnis1 = mysql_query($abfrage1);
    $row1 = mysql_fetch_object($ergebnis1);

    if($row1->passwort == $passwort || $_SESSION['eingelogt'] == true)
    {

    $abfrage = "SELECT * FROM chat WHERE (absender='".$absender."' AND empf='".$empf."') OR (empf='".$absender."' AND absender='".$empf."')" ;
    $ergebnis = mysql_query($abfrage) ;

    while($row = mysql_fetch_object($ergebnis)) {

    echo "<a>".$row->inhalt."</a><br /><br />";
    }
    }
    mysql_close($verbindung);

    ?>


    [/PHPWIKI]

  • #2
    Fix doch bitte erstmal dein Post.
    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

    Kommentar


    • #3
      Hallo hier!

      Ein paar Punkte vorweg:

      - Bitte PHP Code Forum Tags verwenden

      - Info: die mysql_ Erweiterung wird bald nicht mehr funktionieren, da sie aus PHP rausfliegt http://php.net/manual/en/migration55.deprecated.php

      - Wenn ich nichts übersehe bist du offen für SQL-Injections http://php-de.github.io/jumpto/sql-injection/

      - Info: SELECT * http://php-de.github.io/jumpto/code-smells/#select-

      - Schau dir mal E-V-A an, auch noch als Info wenn ich das so korrekt erkenne (keine PHP-Forum-Tags) http://php-de.github.io/jumpto/eva-prinzip/

      - Warum nutzt du nicht jQuery oder Konsorten?
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Willkommen im Forum.

        1. Codeblöcke sind keine URLs. Nutze die korrekten BBCode-Tags.
        2. „Funktioniert nicht“ ist keine Fehlerbeschreibung.
        3. Die mysql-Erweiterung ist veraltet. Nutze mysqli oder PDO.
        4. Nutze nicht <?, sondern nur <?php und <?=.
        5. Dir fehlt Escaping. → http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel
        6. Überleg mal, ob du statt ISO-8859-1 nicht UTF-8 nutzen willst.

        Kommentar

        Lädt...
        X