Jump to content

PHP Micro Chat Question


coverberg

Recommended Posts

Hi,

 

I copied some code for a PHP chat file.  The index page (index.php) sends the different users' posts to another short PHP file (message.php) which then writes them onto a blank html document (msg.html) which is viewable on the index page.  The problem I am encountering is that I can't get the html document to reset after the session is over.  The posts are viewable by whoever logs on next which isn't what I want.  Does anyone know an easy way to fix this???  The code is as follows:

 

index.php -

 

<?php

session_start();

 

function createForm(){

?>

      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

        <table align="center">

          <tr><td colspan="2">Please enter a nickname to login.</td></tr>

          <tr><td>Your name: </td>

          <td><input class="text" type="text" name="name" /></td></tr>

          <tr><td colspan="2" align="center">

            <input class="text" type="submit" name="submitBtn" value="Login" />

          </td></tr>

        </table>

      </form>

<?php

}

 

if (isset($_GET['u'])){

  unset($_SESSION['nickname']);

}

 

// Process login info

if (isset($_POST['submitBtn'])){

      $name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";

      $_SESSION['nickname'] = $name;

}

 

$nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden"; 

?>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">

<html>

<head>

  <title>Black Bear Lodge Instant Messenger</title>

  <link href="style/style.css" rel="stylesheet" type="text/css" />

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

    <!--

      var httpObject = null;

      var link = "";

      var timerID = 0;

      var nickName = "<?php echo $nickname; ?>";

 

      // Get the HTTP Object

      function getHTTPObject(){

        if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");

        else if (window.XMLHttpRequest) return new XMLHttpRequest();

        else {

            alert("Your browser does not support AJAX.");

            return null;

        }

      } 

 

      // Change the value of the outputText field

      function setOutput(){

        if(httpObject.readyState == 4){

            var response = httpObject.responseText;

            var objDiv = document.getElementById("result");

            objDiv.innerHTML += response;

            objDiv.scrollTop = objDiv.scrollHeight;

            var inpObj = document.getElementById("msg");

            inpObj.value = "";

            inpObj.focus();

        }

      }

 

      // Change the value of the outputText field

      function setAll(){

        if(httpObject.readyState == 4){

            var response = httpObject.responseText;

            var objDiv = document.getElementById("result");

            objDiv.innerHTML = response;

            objDiv.scrollTop = objDiv.scrollHeight;

        }

      }

 

      // Implement business logic   

      function doWork(){   

        httpObject = getHTTPObject();

        if (httpObject != null) {

            link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;

            httpObject.open("GET", link , true);

            httpObject.onreadystatechange = setOutput;

            httpObject.send(null);

        }

      }

 

      // Implement business logic   

      function doReload(){   

        httpObject = getHTTPObject();

        var randomnumber=Math.floor(Math.random()*10000);

        if (httpObject != null) {

            link = "message.php?all=1&rnd="+randomnumber;

            httpObject.open("GET", link , true);

            httpObject.onreadystatechange = setAll;

            httpObject.send(null);

        }

      }

 

      function UpdateTimer() {

        doReload(); 

        timerID = setTimeout("UpdateTimer()", 5000);

      }

   

   

      function keypressed(e){

        if(e.keyCode=='13'){

            doWork();

        }

      }

    //-->

    </script> 

</head>

<body onload="UpdateTimer();">

 

    <div id="main">

      <div id="caption">Black Bear Lodge Instant Messenger</div>

      <div id="icon"> </div>

<?php

 

if (!isset($_SESSION['nickname']) ){

    createForm();

} else  {

      $name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";

      $_SESSION['nickname'] = $name;

    ?>

     

    <div id="result">

    <?php

        $data = file("msg.html");

        foreach ($data as $line) {

        echo $line;

        }

    ?>   

      </div>

      <div id="sender" onkeyup="keypressed(event);">

        Your message: <input type="text" name="msg" size="30" id="msg" />

        <button onclick="doWork();">Send</button> </div> 

<?php           

    }

 

?>

    </div>

</body> 

 

 

 

message.php -

 

 

<?php

if (isset($_GET['msg'])){

if (file_exists('msg.html')) {

  $f = fopen('msg.html',"a+");

} else {

  $f = fopen('msg.html',"w+");

}

      $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";

      $msg  = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";

      $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";

fwrite($f,$line."\r\n");

fclose($f);

 

echo $line;

 

} else if (isset($_GET['all'])) {

  $flag = file('msg.html');

  $content = "";

  foreach ($flag as $value) {

  $content .= $value;

  }

  echo $content;

 

}

?>

 

Link to comment
https://forums.phpfreaks.com/topic/188493-php-micro-chat-question/
Share on other sites

index.php -

 

<?php

session_start();

function createForm(){

?>

      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

        <table align="center">

          <tr><td colspan="2">Please enter a nickname to login.</td></tr>

          <tr><td>Your name: </td>

          <td><input class="text" type="text" name="name" /></td></tr>

          <tr><td colspan="2" align="center">

            <input class="text" type="submit" name="submitBtn" value="Login" />

          </td></tr>

        </table>

      </form>

<?php

}

if (isset($_GET['u'])){

  unset($_SESSION['nickname']);

}

// Process login info

if (isset($_POST['submitBtn'])){

      $name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";

      $_SESSION['nickname'] = $name;

}

$nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden"; 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">

<html>

<head>

  <title>Black Bear Lodge Instant Messenger</title>

  <link href="style/style.css" rel="stylesheet" type="text/css" />

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

    <!--

      var httpObject = null;

      var link = "";

      var timerID = 0;

      var nickName = "<?php echo $nickname; ?>";

      // Get the HTTP Object

      function getHTTPObject(){

        if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");

        else if (window.XMLHttpRequest) return new XMLHttpRequest();

        else {

            alert("Your browser does not support AJAX.");

            return null;

        }

      } 

      // Change the value of the outputText field

      function setOutput(){

        if(httpObject.readyState == 4){

            var response = httpObject.responseText;

            var objDiv = document.getElementById("result");

            objDiv.innerHTML += response;

            objDiv.scrollTop = objDiv.scrollHeight;

            var inpObj = document.getElementById("msg");

            inpObj.value = "";

            inpObj.focus();

        }

      }

      // Change the value of the outputText field

      function setAll(){

        if(httpObject.readyState == 4){

            var response = httpObject.responseText;

            var objDiv = document.getElementById("result");

            objDiv.innerHTML = response;

            objDiv.scrollTop = objDiv.scrollHeight;

        }

      }

      // Implement business logic   

      function doWork(){   

        httpObject = getHTTPObject();

        if (httpObject != null) {

            link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;

            httpObject.open("GET", link , true);

            httpObject.onreadystatechange = setOutput;

            httpObject.send(null);

        }

      }

      // Implement business logic   

      function doReload(){   

        httpObject = getHTTPObject();

        var randomnumber=Math.floor(Math.random()*10000);

        if (httpObject != null) {

            link = "message.php?all=1&rnd="+randomnumber;

            httpObject.open("GET", link , true);

            httpObject.onreadystatechange = setAll;

            httpObject.send(null);

        }

      }

      function UpdateTimer() {

        doReload(); 

        timerID = setTimeout("UpdateTimer()", 5000);

      }

      function keypressed(e){

        if(e.keyCode=='13'){

            doWork();

        }

      }

    //-->

    </script> 

</head>

<body onload="UpdateTimer();">

    <div id="main">

      <div id="caption">Black Bear Lodge Instant Messenger</div>

      <div id="icon"> </div>

<?php

if (!isset($_SESSION['nickname']) ){

    createForm();

} else  {

      $name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";

      $_SESSION['nickname'] = $name;

    ?>

    <div id="result">

    <?php

        $data = file("msg.html");

        foreach ($data as $line) {

          echo $line;

        }

    ?>   

      </div>

      <div id="sender" onkeyup="keypressed(event);">

        Your message: <input type="text" name="msg" size="30" id="msg" />

        <button onclick="doWork();">Send</button> </div> 

<?php           

    }

?>

    </div>

</body>  [/size]

  • 4 months later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.