Need help with logout button on chat site

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
teh1337ex
Forum Newbie
Posts: 8
Joined: Sun Jul 05, 2009 12:59 am

Need help with logout button on chat site

Post by teh1337ex »

I'm coding this chat, and i hate dealing with sessions/cookies. I'm trying to create a logout button, but i cant seem to get it.

Code: Select all

<?php
session_start();
 
function createForm(){
?>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <table align="center">
          <tr><td colspan="2">Please eneter a nickname to login</td></tr>
          <tr><td>Your username: </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']);
}
 
if ($_POST['name'] == "" and $_SESSION['nickname']=="")
    {
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
        <head>
        <title>TreatChat</title>
        <link href="style/style.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
    <?php
    createForm();
    ?>
        </body>
    </html>
    <?php
    die;
    }
 
// 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>TreatChat</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 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 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();
         }
      }
    
    
    function validate_form ( )
{
    valid = true;
 
    if ( document.msg.value == "" )
    {
        alert ( "Please type a message" );
        valid = false;
    }
 
    return valid;
    }
 
    
    
    //-->
    </script>   
</head>
<body onload="UpdateTimer();">
    <div id="main">
      <div id="caption">Treatchat</div>
      <div id="icon">&nbsp;</div>
<?php 
 
if (!isset($_SESSION['nickname']) ){ 
    createForm();
} else  { 
      $name    = strip_tags($_POST['name']) ? $_POST['name'] : "Unnamed";
      $_SESSION['nickname'] = $name;
    ?>
      
     <div id="result">
     <?php 
        $data = file("msg.php");
        foreach ($data as $line) {
            echo $line;
        }
     ?>
      </div>
      <div id="sender" onkeyup="keypressed(event);">
         <input type="text" name="msg" size="45" id="msg" />
         <button onclick="doWork();">Send</button>
      </div> 
<?php
}
?>
    </div>
</body> 
        <table align="center">
          <tr><td colspan="2" align="center">
             <input class="text" type="submit" name="logout" value="Logout" />
          </td></tr>
        </table>
      </form>
 
I was planning on using the bottom table to log people out. Any suggestions?
PHPsycho
Forum Newbie
Posts: 1
Joined: Tue Jul 28, 2009 10:44 am

Re: Need help with logout button on chat site

Post by PHPsycho »

???

That is a login form. The button at the bottom is log user IN.

Once they are logged in then I suggest you have a user panel somewhere reasonably prominent with a 'button' that is simply a link to logout. That link can either point directly to a logout out page or to any page on the site but passing a parameter instructing you code to unset and destroy the session (or just the relevant session variables) to log them out.
Post Reply