reload funktion eines chats funktioniert nicht

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

  • reload funktion eines chats funktioniert nicht

    Hallo,
    ich bin grad dabei einen Chat zu programmieren. Nur funktioniert der automatische Reload leider nicht. Kann mir da jemand weiterhelfen. Hier das Script wie es vom Browser ausgegeben wird:


    PHP-Code:
    <div id="message">
    <!-- <
    meta http-equiv="refresh" content="1">-->
     
     <
    STYLE>
     
    body,td {
     
    font-family:verdana;
     
    font-size:11px;
     }
     </
    STYLE>


     <
    SCRIPT LANGUAGE="JavaScript">
    <!--
    function 
    getObj(name)
    {
      if (
    document.getElementById)
      {
          
    this.obj document.getElementById(name);
        
    this.style document.getElementById(name).style;
      }
      else if (
    document.all)
      {
        
    this.obj document.all[name];
        
    this.style document.all[name].style;
      }
      else if (
    document.layers)
      {
        
    this.obj getObjNN4(document,name);
        
    this.style this.obj;
      }
    }

    function 
    getObjNN4(obj,name)
    {
        var 
    obj.layers;
        var 
    foundLayer;
        for (var 
    i=0;i<x.length;i++)
        {
            if (
    x[i].id == name)
                 
    foundLayer x[i];
            else if (
    x[i].layers.length)
                var 
    tmp getObjNN4(x[i],name);
            if (
    tmpfoundLayer tmp;
        }
        return 
    foundLayer;
    }


    //-->
    </SCRIPT>
        
        <
    script type="text/javascript" >
        var 
    g_remoteServer "getmessage.php?room=flirtroom_1";
        var 
    g_intervalID;
        function 
    callServer() 
        {    
            var 
    head document.getElementsById('message');
            var 
    old  document.getElementById('lastLoadedCmds');
            if (
    oldhead.removeChild(old);
            
    script document.createElement('script');
            
    script.src g_remoteServer;
            
    script.type 'text/javascript';
            
    script.defer true;
            
    script.id 'lastLoadedCmds';
            
    void(head.appendChild(script));
        }
        
    g_intervalID setInterval(callServer,1000);
        
    callServer();
        </
    script>
        <
    style>
        .
    userboxx {bordersolid 1px #ff0000; width:230px; height:400px; overflow:auto}

    .userboxx a {text-decorationnonefont-size13pxfont-weightboldfont-familyverdanasans-serife;}
    .
    userboxx a:link {text-decorationnone;  font-size13pxfont-weightboldfont-familyverdanasans-serife;}
    .
    userboxx a:visited {text-decorationnone;  font-size13pxfont-weightboldfont-familyverdanasans-serife;}
    .
    userboxx a:hover {text-decorationnonefont-size13pxfont-weightboldfont-familyverdanasans-serife;}
     </
    style>
        </
    head>
    <
    body bgcolor="#000000">
     <
    link rel="stylesheet" type="text/css" href="../css/stilvorlage4chat.css">
     <
    div style="margin: 10px;">
     <
    table border="0" cellpadding="3" cellspacing="0">

      <
    tr>
        <
    td>

    <
    div id='msgbox' style="background-color: #ffffff; font-size: 13px; font-
    family: courier new, verdana; border: solid 1px #000000; width:390px; 
    height:400px; overflow:auto;overflow-x:hidden;"
    >

    <
    span style=color:#><span style=color:#77aba4>u betritt den 
    Raum</span></span><br></div></td><td>
    <
    div id='userbox' class="userboxx" 
    style="background-color: #ffffff; font-size: 13px; 
    font-family: courier new, verdana; border: solid 1px #000000;"
    >

    <
    table border='0' cellpadding='0' cellspacing='0'><tr><td><span 
    style
    ="color:#77aba4;
     font-weight: bold; font-size: 14px;"
    >u</span>
    </
    td><td width='40' align="right">
    <
    img src='../images/4.gif' border='0' alt='weiblich - gay'>
    </
    td></tr></table></div></td><td>

    <
    div style="background-color: #ffffff; border: solid 1px #000000; width:120;height: 400px; overflow:auto">
    Werbung
    </div></td>
    </
    tr>
    </
    table></div>

    <
    div style="margin: 13px;">

    <
    form name='form1' method='Post' action='chatraeume.php?PHPSESSID=3cb7833a90af15b001bb5b3737101f44'>
    <
    INPUT TYPE="hidden" name='room' value="flirtroom_1">
    <
    input type="text" name="msg" style="width: 345px;">
    <
    input type="Submit" value="Send">
    <
    br>
    <
    span style='font-family:verdana;font-size:10px;color:#ff0000'><br>
    Um Dich abzumeldenschlie&szlig;
    einfach diese kleine umrandete Fenster
    </span>
    </
    form>
    </
    div>
    <
    SCRIPT LANGUAGE="JavaScript">
    <!--
    document.form1.msg.focus();
    //-->
    </SCRIPT>

    </
    div>     </td>
       </
    tr>

       </
    table>
       </
    div></td>
       </
    table
    Die getmassage-datei ist diese

    PHP-Code:
    <?php
        
    @session_start();
        include_once(
    "chat.inc.php");
        
    $mychat=new Chat($_REQUEST['room']);
        
        
    $message=$mychat->getMessageForUser($_SESSION['SES_USER_NAME']);
        
    $message=$mychat->getMessage();
        
    $users=$mychat->getUsers();
        if(!empty(
    $message))
        {
    ?>
    var mydiv=new getObj('msgbox');
    mydiv.obj.innerHTML="<?=$message?>";
    var userbox=new getObj('userbox');
    userbox.obj.innerHTML="<?=$users?>";

    mydiv.obj.scrollTop=10000;
    mydiv.obj.scrollTop=10000;
    <?php }?>
    Zuletzt geändert von sanktusm; 01.09.2007, 17:46.

  • #2
    Code umbrechen.

    Geht nicht ist eine Fehlerbeschreibung.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      wie meinst du das arsen

      kannst du mir nicht weiterhelfen?

      Kommentar


      • #4
        Jetzt kann ich wenigstens den Code lesen, danke.

        Aber deinen Fehler hast du immernoch nicht beschrieben. Was soll ich denn aus "geht nicht" ablesen woran es liegen könnte?

        Code:
        <!-- <meta http-equiv="refresh" content="1">-->
        Würde ich schonmal einkommentieren
        Code:
        <meta http-equiv="refresh" content="1">
        Und wohin du refreshen willst haste auchnich angegeben, bin mir nicht sicher ob er dann da die gleiche Seite nimmt.
        Zuletzt geändert von ArSeN; 01.09.2007, 18:17.
        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

        Kommentar


        • #5
          das problem lieft darin dass

          das Script ursprünglich für Seiten geschrieben war, die über einen Frame geladen wird. Da funktioniert es gut.

          Ich möchte aber ohne frame arbeiten. Gibt es eine möglichkeit einen divlayer zu aktualisieren`? oder geht das nur mit frames?

          Kommentar


          • #6
            Du kannst den div-container (ist übrigens kein layer) mittels AJAX auch aktualisieren ohne die ganze Seite zu aktualisieren. Das ist allerdings recht komplex. Google hilft weiter. Ansonsten ist es nur mit Frames möglich, die trotzdem zu Recht verpönt sind.

            Funzt die Aktualisierung denn jetzt?
            Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

            Kommentar


            • #7
              nein aber du hast mir schon geholfen

              ich versuchs erstmal mit frames

              danke

              Kommentar


              • #8
                ok hab eine lösung gefunden ganz einfach

                PHP-Code:
                 <script language="JavaScript">
                                function createRequestObject(){
                            var request_;
                            var browser = navigator.appName;
                            if(browser == "Microsoft Internet Explorer"){
                             request_ = new ActiveXObject("Microsoft.XMLHTTP");
                            }else{
                             request_ = new XMLHttpRequest();
                            }
                            return request_;
                            }
                            
                            var http = new Array();
                            var http2 = new Array();
                                
                            
                            function getInfo(){
                            
                            var curDateTime = new Date();
                            http[curDateTime] = createRequestObject();
                            
                            http[curDateTime].open('get', 'message.php?room=<?php echo $_SESSION['room']; ?>&name=<?php echo $_SESSION['SES_USER_NAME']; ?>&gender=<?php echo $_SESSION['GENDERTYPE']; ?>&<?php echo "".session_name()."=".session_id().""?>');
                            
                            http[curDateTime].onreadystatechange = function(){
                                if (http[curDateTime].readyState == 4) 
                                {
                                    if (http[curDateTime].status == 200 || http[curDateTime].status == 304) 
                                    {
                                            var response = http[curDateTime].responseText;
                                         document.getElementById('view_ajax').innerHTML = response;
                                    }
                                }
                            }
                            
                            http[curDateTime].send(null);
                            }
                            
                            function go(){
                            getInfo();
                            window.setTimeout("go()", 8000);
                            }
                            
                            </script>
                  
                  </head>
                  <body onLoad="go()" bgcolor="#000000" style="margin: 0px;">
                  <table border="0" cellpadding="0" cellspacing="0">
                   <tr>
                     <td width="200" valign="top" height="500">
                  <div style="margin-left: 15px; margin-top: 35px; height: 300px; overflow: auto;" class="index_text">
                  <?php
                  
                if(isset($_GET['act']) AND $_GET['act']  != "verynewuser" AND $_GET['act'] != "close")
                   {
                   echo 
                "<a href=\"chatraeume.php?act=changeuser&room=flirtroom_1&name=".$_SESSION['SES_USER_NAME']."&gender=".$_SESSION['GENDERTYPE']."&".session_name()."=".session_id()."\"><img src=\"../images/pfeil.jpg\" border=\"0\">&nbsp;Flirtroom 1</a><br>";
                   } else {
                      echo 
                "<a href=\"chatraeume.php?act=newuser&room=flirtroom_1&name=".$_SESSION['SES_USER_NAME']."&gender=".$_SESSION['GENDERTYPE']."&".session_name()."=".session_id()."\"><img src=\"../images/pfeil.jpg\" border=\"0\">&nbsp;Flirtroom 1</a><br>";
                          }  
                  
                  
                ?>
                  </div></td>
                  <td height="500" valign="top"><div style="margin-top: 30px; margin-right: 30px;">
                  <?php
                  
                if(!isset($_GET['act']) OR ($_GET['act'] != "close" AND $_GET['act'] != "verynewuser"))
                   {
                echo 
                "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border: solid 1px #ffffff;\">\n"
                echo 
                "   <tr>\n"
                echo 
                "     <td align=\"right\"><a href=\"chatraeume.php?act=close&".session_name()."=".session_id()."\"><img src=\"../images/schliessen.gif\" border=\"0\"></a></td>\n"
                echo 
                "   </tr>\n"
                echo 
                "   <tr>\n"
                echo 
                "     <td style=\"margin: 20px;\">\n";  echo "<div id=\"view_ajax\">"; include 'message.php'; echo "</div>";

                Kommentar


                • #9
                  Aha, code umbrechen. Das is übrigens AJAX
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar

                  Lädt...
                  X