Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\PROJEKT\sessions.php on line 59
Mechanizm próbuję odpalić za pomocą xampp. Bazę danych stworzyłem w PHPmyADMIN.
Poniżej umieszczam kod sessions.php
Kod: Zaznacz cały
<?php
define('SESSION_TIME', 3600);
define('WEBBOT_S', 0);
define('GUEST_S', 1);
define('USER_S', 2);
define('ANONYMOUS', 0);
class session{
var $session_id;
var $session_user;
var $session_ip;
var $session_browser;
var $session_time;
var $sql_id;
var $ip;
var $browser;
var $type;
var $userdata;
function spy_guest(){
if(getenv('HTTP_X_FORWARDED_FOR') != ''){
$this -> ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ((!empty($_ENV['REMOTE_ADDR'])) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
if(preg_match("/^([0-9]+.[0-9]+.[0-9]+.[0-9]+)/", getenv('HTTP_X_FORWARDED_FOR'), $ip_list)){
$private_ip = array('/^0./', '/^127.0.0.1/', '/^192.168..*/', '/^172.16..*/', '/^10..*/', '/^224..*/', '/^240..*/');
$this -> ip = preg_replace($private_ip, $this -> ip, $ip_list[1]);
}
}else{
$this -> ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ((!empty($_ENV['REMOTE_ADDR'])) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
}
$this -> browser = (!empty($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : $_ENV['HTTP_USER_AGENT'];
if(preg_match('/(lycos|googlebot|slurp@inktomi|ask jeeves|whatuseek|ia_archiver)/i', $this -> browser)){
$this -> type = WEBBOT_S;
}else{
$this -> type = GUEST_S;
}
} // end spy_guest();
function is_session(){
if(strlen($_COOKIE['my_session_id']) == 32){
$this -> session_id = $_COOKIE['my_session_id'];
setcookie('my_session_id', $this->session_id, time() + SESSION_TIME);
$this -> sql_id = mysql_real_escape_string($this->session_id);
return 1;
}
return 0;
} // end is_session();
function load_session(){
$r = mysql_query('SELECT s.*, u.*
FROM sessions s LEFT JOIN users u ON (s.session_user <> 0 AND s.session_user = u.user_id)
[u]WHERE s.session_id = ''.$this -> sql_id.'' AND s.session_time > '.(time() - 3600))[/u] [color=#FF4040]59 linijka kodu[/color]
$this -> session_id = $row[0];[/color]
$this -> session_user = $row[1];
$this -> session_ip = $row[2];
$this -> session_browser = $row[3];
$this -> session_time = $row[4];
if($this -> session_user != ANONYMOUS){
$this -> type = USER_S;
$this -> userdata['ID'] = $row[5];
$this -> userdata['NAME'] = $row[6];
}else{
$this -> type = GUEST_S;
}
if($this -> session_browser == $this -> browser && $this -> session_ip == $this -> ip){
mysql_query('UPDATE sessions SET session_time = ''.time().'' WHERE session_id = ''.$this->sql_id.''');
return 1;
}
}
$this -> type = GUEST_S;
return 0;
} // end load_session();
function delete_session(){
mysql_query('DELETE FROM sessions WHERE session_id=''.$this->sql_id.''');
setcookie('my_session_id', '', 0);
} // end delete_session();
function bot_session(){
$this -> session_id = '';
$this -> session_user = 0;
$this -> session_ip = $this -> ip;
$this -> session_browser = $this -> browser;
$this -> session_time = 0;
$this -> userdata = array('ID' => 0, 'NAME' => '');
} // end bot_session();
function guest_session(){
$this -> session_id = md5(uniqid($this->ip.time()));
$this -> session_user = 0;
$this -> session_ip = $this -> ip;
$this -> session_browser = $this -> browser;
$this -> type = GUEST_S;
setcookie('my_session_id', $this->session_id, time()+SESSION_TIME);
mysql_query('INSERT INTO sessions VALUES(''.$this->session_id.'', '0', ''.$this->ip.'', ''.mysql_real_escape_string($this->browser).'', ''.time().'')');
} // end guest_session();
function user_session(){
$this -> garbage_collector();
$r = mysql_query('SELECT user_id FROM users WHERE user_name = ''.mysql_real_escape_string($_POST['login']).'' and user_password = ''.md5($_POST['password']).''');
if($id = mysql_fetch_row($r)){
if(strlen($this->session_id) == 32){
mysql_query('UPDATE sessions SET session_user = '.$id[0].', session_time = ''.time().'' WHERE session_id = ''.$this->session_id.''');
if(mysql_affected_rows() == 1){
setcookie('my_session_id', $this->session_id, time()+SESSION_TIME);
}
}else{
$this -> session_id = md5(uniqid($this->ip.time()));
setcookie('my_session_id', $this->session_id, time()+SESSION_TIME);
mysql_query('INSERT INTO sessions VALUES(''.$this->session_id.'', ''.$id[0].'', ''.$this->ip.'', ''.mysql_real_escape_string($this->browser).'', ''.time().'')');
}
return 1;
}
return 0;
} // end user_session();
function garbage_collector(){
UPDATE users, sessions SET user_lastvisit = sessions.session_time WHERE sessions.session_time < '.(time() - SESSION_TIME)
mysql_query('DELETE FROM sessions WHERE session_time < '.(time() - SESSION_TIME));
} // end garbage_collector();
}
?>
Nie wiem w czym tkwi problem. Podsyłam jeszcze moją bazę danych, jaką utworzyłem do tego mechanizmu.
Kod: Zaznacz cały
CREATE TABLE IF NOT EXISTS `sessions` (
`session_id` int(32) NOT NULL AUTO_INCREMENT,
`session_user` int(8) NOT NULL,
`session_ip` varchar(15) NOT NULL,
`session_browser` varchar(128) NOT NULL,
`session_time` int(11) NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin2 AUTO_INCREMENT=1 ;
Kod: Zaznacz cały
CREATE TABLE IF NOT EXISTS `users` (
`users_id` int(10) NOT NULL AUTO_INCREMENT,
`user_name` varchar(32) NOT NULL,
`user_password` varchar(32) NOT NULL,
`user_last_vist` varchar(128) NOT NULL,
PRIMARY KEY (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=1 ;
Jeśli mam coś jeszcze podać, to piszcie.
-- 22 maja 2011, 18:26 ---
WHERE s.session_id = ''.$this -> sql_id.'' AND s.session_time > '.(time() - 3600));
To jest ta 59 linijka kodu, czy może mi ktoś to wyjaśnić??