Need help with logout button on chat site
Posted: Sun Aug 02, 2009 3:58 am
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.
I was planning on using the bottom table to log people out. Any suggestions?
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"> </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>