I'm working on a loggin system for a webpage I'm making. It worked fine until about a week ago when I reinstalled my.
I'm using apache 1.3.28 and php 4.3.3
Here's the code...
index.php
<?
session_start();
include "functions.php";
if (isset($REQUEST['logout']) && $REQUEST['logout'] == "true") {
session_defaults();
}
if (!isset($_SESSION['uid']))
{
session_defaults();
}
if (checkSession())
{
include "main.inc";
} else {
if (isset($POST['username']) && isset($POST['password'])) {
if (checkLogin($POST['username'],$POST['password'])) {
include "main.inc";
} else {
include "loggin.inc";
}
} else {
include "loggin.inc";
}
}
?>
functions.php
<?
function checkLogin($u,$p) {
$query = "SELECT uid,uname FROM users WHERE uname = '$u' AND pword = md5('$p')";
$array = outputQuery($query,"a");
if (is_array($array) && $array[0]['uname'] == $u) {
setSession($array,true);
return true;
} else {
session_defaults();
return false;
}
}
function checkSession() {
$ip = $SESSION['ip'];
$username = $SESSION['username'];
$session = session_id();
$query = "SELECT uid,uname FROM users WHERE uname = '$username' AND session = '$session' AND ip = '$ip'";
$array = outputQuery($query,"a");
if (is_array($array) && count($array[0]) == 2 && $array[0][0] = $SESSION['uid'] && $SESSION['uid'] != 0) {
setSession($array,false);
return true;
} else {
session_defaults();
return false;
}
}
function session_defaults() {
$SESSION['ip'] = '';
$SESSION['logged'] = false;
$SESSION['uid'] = 0;
$SESSION['username'] = '';
}
function setSession($array,$init) {
$SESSION['ip'] = $SERVER['REMOTE_ADDR'];
$SESSION['uid'] = $array[0]['uid'];
$SESSION['username'] = $array[0]['uname'];
$_SESSION['logged'] = true;
if ($init) {
$session = session_id();
$query = "UPDATE users SET session = '$session', ip = '".$_SESSION['ip']."',loggindate = NOW() WHERE uid = '".$array[0]['uid']."'";
inputQuery($query);
}
}
?>
Logging on works just fine. But if I try to do anything after I've logged in I get booted back to the loggin page.