Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New to the CF scene
    Join Date
    Sep 2008
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    compatiblity with IE

    Hey,

    i was wondering if anyone can help me out. I have a simple ajax shoutbox which works fine on firefox & chrome, but fails to send or receive data on IE. does anyone have any suggestions?

    here's a live example, you'll see it's working fine on FF & internet explorer: http://www.it-leaked.com/ajaxsb.php

    here is the code:

    PHP Code:
    1    
    2    <?php //start the session
    3    session_start();
    4    ?>
    5    
    6    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    7    <html xmlns="http://www.w3.org/1999/xhtml">
    8    <head>
    9    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    10   <title>Shoutbox</title>
    11   <style type="text/css">
    12   body
    13       {
    14       font-family: Verdana;
    15       font-size: 7pt;
    16       }
    17   .shout
    18       {
    19       margin: 5px;
    20       }
    21   #scroll_box
    22       {
    23       overflow: auto;
    24       height: 120px;
    25       width: 460px;
    26       border: 1px solid #333;
    27       margin-top: 3px;
    28       }
    29   </style>
    30   <script type="application/javascript">
    31   var xmlHttp;
    32   
    33   function getShouts()
    34       { 
    35       xmlHttp = GetXmlHttpObject();
    36       if (xmlHttp == null)
    37           {
    38           alert("Could not create a XmlHttpObject");
    39           return;
    40           }
    41       //set the get url var
    42       var url="shoutbox.php?q=get";
    43       xmlHttp.onreadystatechange = stateChanged;
    44       
    45       //open the $_GET['get'] page
    46       xmlHttp.open("GET",url,true);
    47       xmlHttp.send(null);
    48       }
    49       
    50   function insertShout()
    51       {
    52       xmlHttp2 = GetXmlHttpObject();
    53       if (xmlHttp2 == null)
    54           {
    55           alert("Could not create a XmlHttpObject");
    56           return;
    57           }
    58       if (document.getElementById("shout").value == "" 
    59       || document.getElementById("shout").value == null)
    60           {
    61           alert("ERROR: No shout entered.");
    62           return;
    63           }
    64       //set the get url var
    65       var shout = document.getElementById("shout").value;
    66       var url = "shoutbox.php?q=insert&shout="+shout;
    67       xmlHttp2.onreadystatechange = stateChanged;
    68       
    69       //open the $_GET['get'] page
    70       xmlHttp2.open("GET",url,true);
    71       xmlHttp2.send(null);
    72       
    73       getShouts();
    74       document.getElementById("shout").value = "";
    75       }
    76   
    77   function stateChanged() 
    78       { 
    79       if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
    80            {
    81           //fill the div scroll box with the formatted shouts or "xmlHttp.responseText"
    82            document.getElementById("scroll_box").innerHTML = xmlHttp.responseText;
    83           } 
    84       }
    85   
    86   function GetXmlHttpObject()
    87       {
    88       var xmlHttp = null;
    89       try
    90           {
    91           //Firefox, Opera 8.0+, Safari
    92           xmlHttp = new XMLHttpRequest();
    93           }
    94       catch (e)
    95           {
    96           //Internet Explorer
    97           try
    98               {
    99               xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    100              }
    101          catch (e)
    102              {
    103              xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    104              }
    105          }
    106      return xmlHttp;
    107      }
    108  
    109  //get the shouts for when the box is loaded initially
    110  getShouts();
    111  
    112  function runme()
    113      {
    114      getShouts();
    115      setTimeout("runme()",3000);
    116      }
    117      
    118  setTimeout("runme()",3000);
    119  </script>
    120  </head>
    121  
    122  <body>
    123  
    124  125  
    126  //mysql info
    127  $db_host = "REMOVED";
    128  $db_name = "REMOVED";
    129  $db_username = "REMOVED";
    130  $db_password = "REMOVED";
    131  
    132  //connect to the database
    133  $conn = mysql_connect($db_host,$db_username,$db_password) or die(mysql_error());
    134  mysql_select_db($db_name, $conn) or die(mysql_error());
    135  
    136  //set the timezone for the script
    137  putenv("TZ=America/Los_Angeles");
    138  
    139  //number of shouts to display
    140  $i = 50;
    141  
    142  //function to query the database for the shouts. only parameter is amount of shouts
    143  function get_shouts($i)
    144      {
    145      //the sql query to pull all the info from table `shoutbox`
    146      $sql = mysql_query("SELECT * FROM 2 ORDER BY id DESC LIMIT $i");
    147      
    148      //while there are still rows to assign to the $row var, do it
    149      while ($row = mysql_fetch_array($sql))
    150          {
    151          //set the row vars
    152          $user = $row['user'];
    153          $shout = $row['shout'];
    154          $time = $row['timestamp'];
    155          
    156          //echo the formatted shouts
    157          echo "<div class=\"shout\">".$user." [".$time."]<br />".htmlentities($shout)."</div>\n";
    158          }
    159      }
    160      
    161  //function to insert the shouts
    162  function insert_shout($user,$shout,$time)
    163      {
    164      $shout = mysql_real_escape_string($shout);
    165      mysql_query("INSERT INTO 2 (user,shout,timestamp) VALUES ('$user','$shout','$time')");
    166      }
    167  
    168  //url system for $_GET querys
    169  if ($_GET['q'] == "archive")
    170      {
    171      //archive page
    172      echo "<!--archive-->\n\n";
    173      }
    174  elseif ($_GET['q'] == "get")
    175      {
    176      //get query
    177      echo "<!--get-->\n\n";
    178      
    179      //get the formatted shouts while var $i is the amount of shouts to display
    180      get_shouts($i);
    181      }
    182  elseif ($_GET['q'] == "insert")
    183      {
    184      //insert query
    185      echo "<!--insert-->\n\n";
    186      
    187      //get the username, shout and set the timestamp and then insert it all into the database
    188      insert_shout($_SESSION['user'],$_GET['shout'],date("g:i a"));
    189      }
    190  else
    191      {
    192      //default page
    193      echo "<!--default-->\n\n";
    194      
    195      if (isset($_SESSION['user']))
    196          {
    197          echo "Welcome, ".$user = $_SESSION['user'];
    198          }
    199      else
    200          {
    201          $_SESSION['user'] = "Guest";
    202          echo "Welcome, ".$user = $_SESSION['user'];
    203          }
    204      
    205      //echo the form and fill the div scroll box with the formatted shouts
    206      echo "<br /><input type=\"text\" size=\"55\" id=\"shout\" />
    207      <input type=\"button\" value=\"Submit Query\" onclick=\"insertShout();\" />
    208      <div id=\"scroll_box\"></div>";
    209      }
    210  
    211  ?>
    212  
    213  </body>
    214  </html>
    I hope someone can help me

    thanks in advance

  • #2
    Banned
    Join Date
    May 2006
    Location
    England
    Posts
    664
    Thanks
    0
    Thanked 84 Times in 84 Posts
    I would suspect a timing problem related to xmlHttp being re-assigned while in use. You must take steps to ensure that can't happen.
    Also xmlHttp2 is being assigned the same onreadystatechange handler as xmlHttp, which only addresses the latter.

  • #3
    Master Coder
    Join Date
    Dec 2007
    Posts
    6,682
    Thanks
    436
    Thanked 890 Times in 879 Posts
    check this too: on line 4, you close php tag '?>' but on line 124-125 you don't have any
    '<?php'

    best regards


  •  

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •