code works fine on local test server but not online

Hi all,
Another question I have the code (below) running on my PC via xampp. Everything works perfectly fine on it until i go to upload the files and then the line stops working

[php] //add the last login date and add one to login count
mysql_query ("UPDATE members SET lastonline = now(), logincount = logincount +1 WHERE login=’$login’ ");[/php]

but the full page code

[php]<?php
//Start session
session_start();

//Include database connection details
require_once('config.php');

//Array to store validation errors
$errmsg_arr = array();

//Validation error flag
$errflag = false;

//Connect to mysql server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
	die('Failed to connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
	die("Unable to select database");
}

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
	$str = @trim($str);
	if(get_magic_quotes_gpc()) {
		$str = stripslashes($str);
	}
	return mysql_real_escape_string($str);
}

//Sanitize the POST values
$login = clean($_POST['login']);
$password = clean($_POST['password']);

//Input Validations
if($login == '') {
	$errmsg_arr[] = 'Login ID missing';
	$errflag = true;
}
if($password == '') {
	$errmsg_arr[] = 'Password missing';
	$errflag = true;
}

//If there are input validations, redirect back to the login form
if($errflag) {
	$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
	session_write_close();
	header("location: login-form.php");
	exit();
}

//Create query
$qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
$result=mysql_query($qry);

//Check whether the query was successful or not
if($result) {
	if(mysql_num_rows($result) == 1) {
		//Login Successful
		session_regenerate_id();
		$member = mysql_fetch_assoc($result);
		$_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
		$_SESSION['SESS_NICK_NAME'] = $member['nickname'];
		$_SESSION['SESS_LAST_NAME'] = $member['lastname'];
		$_SESSION['SESS_PASSWD'] = $member['passwd'];
		$_SESSION['SESS_LEVEL'] = $member['level'];
		session_write_close();
		//add the last login date and add one to login count
	    mysql_query ("UPDATE members SET lastonline = now(), logincount = logincount +1 WHERE login='$login' ");
		header("location: ./members/member-index.php");
		exit();
	}else {
		//Login failed
		header("location: login-failed.php");
		exit();
	}
}else {
	die("Query failed");
}

?>[/php]

does anyone have any ideas as to why?

regards
dave

here is the table

CREATE TABLE IF NOT EXISTS `members` ( `member_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `ip` text NOT NULL, `nickname` varchar(100) DEFAULT NULL, `lastname` varchar(100) DEFAULT NULL, `login` varchar(100) NOT NULL DEFAULT '', `passwd` varchar(32) NOT NULL DEFAULT '', `level` varchar(15) NOT NULL DEFAULT '5', `status` varchar(15) NOT NULL DEFAULT 'Active', `lastonline` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `logins` int(5) NOT NULL DEFAULT '0', `pts` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`member_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2011006 ;

sorry I dont mean to spam the forums but I got a little bit further by changing

[php] mysql_query ("UPDATE members SET lastonline = now(), logincount = logincount +1 WHERE login=’$login’ ");[/php]

to:

[php]
mysql_query ("update members set lastonline = now() where login=’$login’ ");
mysql_query ("update members set logincount = logincount +1 where login=’$login’ ");
[/php]

now the lastonline updates but not the login counts … im confused!

Hi there,

I think you need to change:

update members set logincount = logincount +1 where login='$login'

to:

update members set logincount = (select `logincount` from `members` where login='$login')+1 where login='$login' 
Sponsor our Newsletter | Privacy Policy | Terms of Service