Pagina 1 van 1

Critical Error

Geplaatst: 09 okt 2006, 11:00
door Niels-21
Hallo,

Na het uitvoeren van de SQL van de Last Visit mod krijg ik nu soms deze melding:

Code: Selecteer alles

phpBB : Critical Error 

Error updating sessions table

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near ' user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+(116038783' at line 2

UPDATE phpbb_users SET user_session_time = 1160387835, user_session_page = , user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+(1160387835-1160387765)0 WHERE user_id = 2

Line : 362
File : sessions.php 
Kan je SQL ook ongedaan maken? Want zo'n melding is irritant op den duur. Telkens als ik de SQL opnieuw uitvoer, zegt-ie dat sommige tabellen zijn geüpdate, terwijl ze op zich al geüpdate zouden moeten zijn.

Geplaatst: 09 okt 2006, 16:15
door Paul
Je hebt sessions.php gewoon evrkeerd gemod ;)

Geplaatst: 09 okt 2006, 16:16
door Niels-21
paul schreef:Je hebt sessions.php gewoon evrkeerd gemod ;)
Echt?
Ga ik ff checken (weet je ook op welke mod, Last Visit waarschijnlijk).

Geplaatst: 09 okt 2006, 16:16
door Paul
Last visit denk ik...

Geplaatst: 09 okt 2006, 16:22
door Niels-21
Sessions.php is goed gemod (volgens Last Visit Mod).

Wat kan ik nu raadplegen?

Geplaatst: 09 okt 2006, 16:35
door svenn
ik vrees van niet want ik zie :
user_session_page = , user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+(1160387835-1160387765)0 WHERE user_id = 2
ik denk dat je de code voor de komma zetten en dat hij erna moet ;) post eens een stukje rond 362 van sessions.php

Geplaatst: 09 okt 2006, 16:38
door Niels-21
360 t/m 370 van sessions.php:

Code: Selecteer alles

WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
    }
//}

					session_clean($userdata['session_id']);

					setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
					setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
				}

Geplaatst: 09 okt 2006, 16:40
door svenn
ja een beetje erboven graag ;)

Geplaatst: 09 okt 2006, 16:41
door Niels-21
Excuus! Iets meer code:

Code: Selecteer alles

//
				// Only update session DB a minute or so after last update
				//
				if ( $current_time - $userdata['session_time'] > 60 )
				{
					// A little trick to reset session_admin on session re-usage
					$update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', session_admin = 0' : '';

					$sql = "UPDATE " . SESSIONS_TABLE . " 
						SET session_time = $current_time, session_page = $thispage_id$update_admin
						WHERE session_id = '" . $userdata['session_id'] . "'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
					}

					//if ( $userdata['user_id'] != ANONYMOUS )
					//{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = , user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")$thispage_id
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
    }
//}

					session_clean($userdata['session_id']);

					setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
					setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
				}
				
				// Add the session_key to the userdata array if it is set
				if ( isset($sessiondata['autologinid']) && $sessiondata['autologinid'] != '' )
				{
					$userdata['session_key'] = $sessiondata['autologinid'];
				}

				return $userdata;
			}
		}
	}

Geplaatst: 09 okt 2006, 16:43
door svenn

Code: Selecteer alles

// 
// Only update session DB a minute or so after last update 
// 
if ( $current_time - $userdata['session_time'] > 60 ) 
{ 
// A little trick to reset session_admin on session re-usage 
$update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', session_admin = 0' : ''; 

$sql = "UPDATE " . SESSIONS_TABLE . " 
SET session_time = $current_time, session_page = $thispage_id$update_admin 
WHERE session_id = '" . $userdata['session_id'] . "'"; 
if ( !$db->sql_query($sql) ) 
{ 
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); 
} 

//if ( $userdata['user_id'] != ANONYMOUS ) 
//{ 
$sql = "UPDATE " . USERS_TABLE . " 
SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].") 
WHERE user_id = " . $userdata['user_id']; 
if ( !$db->sql_query($sql) ) 
{message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); 
} 
//} 

session_clean($userdata['session_id']); 

setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); 
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); 
} 

// Add the session_key to the userdata array if it is set 
if ( isset($sessiondata['autologinid']) && $sessiondata['autologinid'] != '' ) 
{ 
$userdata['session_key'] = $sessiondata['autologinid']; 
} 

return $userdata; 
} 
} 
}
probeer eens met deze :)

Geplaatst: 09 okt 2006, 16:45
door Niels-21
Gedaan!

Werkt goed, nog geen error gezien. Wat heb je gedaan dan?

Geplaatst: 09 okt 2006, 16:49
door svenn
zoals ik zei :
SET user_session_time = $current_time, user_session_page = , user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")$thispage_id
moest zijn :
SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")

Geplaatst: 09 okt 2006, 16:50
door Niels-21
Oké, nou thanx!
Vreemd dat ie het dan de ene keer wel en de andere keer niet doet.

Geplaatst: 09 okt 2006, 16:52
door svenn
ja idd ; maar dit vind ik ook vreemd :

Code: Selecteer alles

SET session_time = $current_time, session_page = $thispage_id$update_admin
2 variabele na elkaar :s maar kan zijn dat het een gaatje in mijn php cultuur is :bier:

Geplaatst: 09 okt 2006, 16:53
door Niels-21
svennson schreef:ja idd ; maar dit vind ik ook vreemd :

Code: Selecteer alles

SET session_time = $current_time, session_page = $thispage_id$update_admin
2 variabele na elkaar :s maar kan zijn dat het een gaatje in mijn php cultuur is :bier:
Daarvan is mijn kennis echt nihil, dus daar kan ik niet over oordelen.

Geplaatst: 09 okt 2006, 17:14
door Paul
svennson schreef:ja idd ; maar dit vind ik ook vreemd :

Code: Selecteer alles

SET session_time = $current_time, session_page = $thispage_id$update_admin
2 variabele na elkaar :s maar kan zijn dat het een gaatje in mijn php cultuur is :bier:
Zal wel een aardig groot gaatje zijn, want dat klopt gewoon :wink:

Geplaatst: 09 okt 2006, 17:42
door svenn
nog nooit gebruikt dus ;) ik zet meestal een puntje.

Geplaatst: 09 okt 2006, 17:57
door Paul
Tja, maar dit is in een string, dus dan zet je een punt in een string ;)