Skip to content
This diff is collapsed.
<?php
// $Id$
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();
/*** Session functions *****************************************************/
function sess_open($save_path, $session_name) {
return 1;
}
function sess_close() {
return 1;
}
function sess_read($key) {
global $user;
$result = db_query_range("SELECT u.*, s.*, r.name AS role FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid LEFT JOIN {role} r ON u.rid = r.rid WHERE s.sid = '%s' AND u.status < 3", $key, 0, 1);
if (!db_num_rows($result)) {
$result = db_query("SELECT u.*, r.name AS role FROM {users} u INNER JOIN {role} r ON u.rid = r.rid WHERE u.uid = 0");
db_query("INSERT INTO {sessions} (uid, sid, hostname, timestamp) values(%d, '%s', '%s', %d)", $user->uid, $key, $_SERVER["REMOTE_ADDR"], time());
}
$user = db_fetch_object($result);
$user = drupal_unpack($user);
return !empty($user->session) ? $user->session : '';
}
function sess_write($key, $value) {
global $user;
db_query("UPDATE {sessions} SET uid = %d, hostname = '%s', session = '%s', timestamp = %d WHERE sid = '%s'", $user->uid, $_SERVER["REMOTE_ADDR"], $value, time(), $key);
return '';
}
function sess_destroy($key) {
db_query("DELETE FROM {sessions} WHERE sid = '$key'");
}
function sess_gc($lifetime) {
/*
** Be sure to adjust 'php_value session.gc_maxlifetime' to a large enough
** value. For example, if you want user sessions to stay in your database
** for three weeks before deleting them, you need to set gc_maxlifetime
** to '1814400'. At that value, only after a user doesn't log in after
** three weeks (1814400 seconds) will his/her session be removed.
*/
db_query("DELETE FROM {sessions} WHERE timestamp < %d", time() - $lifetime);
return 1;
}
?>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -173,7 +173,7 @@ function service() {
$payload="<?xml version=\"1.0\"?>\n" .
$this->serializeDebug() .
$r->serialize();
Header("Content-type: text/xml\r\nContent-length: " .
Header("Content-Type: text/xml\r\nContent-Length: " .
strlen($payload));
print $payload;
}
......@@ -208,15 +208,14 @@ function verifySignature($in, $sig) {
function parseRequest($data="") {
global $_xh;
global $xmlrpcerr, $xmlrpcstr, $xmlrpcerrxml, $xmlrpc_defencoding,
$_xmlrpcs_dmap;
global $xmlrpcerr, $xmlrpcstr, $xmlrpcerrxml, $_xmlrpcs_dmap;
if ($data=="") {
$data=$GLOBALS["HTTP_RAW_POST_DATA"];
}
$parser = xml_parser_create($xmlrpc_defencoding);
$parser = drupal_xml_parser_create($data);
$_xh[$parser]=array();
$_xh[$parser]['st']="";
......
This diff is collapsed.
This diff is collapsed.
misc/arrow-asc.gif

74 B | W: | H:

misc/arrow-asc.gif

60 B | W: | H:

misc/arrow-asc.gif
misc/arrow-asc.gif
misc/arrow-asc.gif
misc/arrow-asc.gif
  • 2-up
  • Swipe
  • Onion skin
misc/arrow-desc.gif

73 B | W: | H:

misc/arrow-desc.gif

61 B | W: | H:

misc/arrow-desc.gif
misc/arrow-desc.gif
misc/arrow-desc.gif
misc/arrow-desc.gif
  • 2-up
  • Swipe
  • Onion skin
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.