thomascube
2011-05-10 ff4ffc6d546d6d69bedd0018f8fbba40c867e468
Revert r4746 due to timestsamp issues with mysql; deprecate rcube_mdb2::unixtimestamp()

2 files modified
17 ■■■■■ changed files
program/include/rcube_mdb2.php 12 ●●●●● patch | view | raw | blame | history
program/include/rcube_session.php 5 ●●●●● patch | view | raw | blame | history
program/include/rcube_mdb2.php
@@ -545,9 +545,12 @@
    /**
     * Return SQL statement to convert a field value into a unix timestamp
     *
     * This method is deprecated and should not be used anymore due to limitations
     * of timestamp functions in Mysql (year 2038 problem)
     *
     * @param  string $field Field name
     * @return string  SQL statement to use in query
     * @access public
     * @deprecated
     */
    function unixtimestamp($field)
    {
@@ -574,12 +577,7 @@
     */
    function fromunixtime($timestamp)
    {
        switch ($this->db_provider) {
            case 'mysql':
                return 'FROM_UNIXTIME(' . intval($timestamp) . ')';
            default:
                return date("'Y-m-d H:i:s'", $timestamp);
        }
        return date("'Y-m-d H:i:s'", $timestamp);
    }
program/include/rcube_session.php
@@ -131,12 +131,11 @@
  public function db_read($key)
  {
    $sql_result = $this->db->query(
      sprintf("SELECT vars, ip, %s AS changed FROM %s WHERE sess_id = ?",
        $this->db->unixtimestamp('changed'), get_table_name('session')),
      "SELECT vars, ip, changed FROM ".get_table_name('session')." WHERE sess_id = ?",
      $key);
    if ($sql_arr = $this->db->fetch_assoc($sql_result)) {
      $this->changed = $sql_arr['changed'];
      $this->changed = strtotime($sql_arr['changed']);
      $this->ip      = $sql_arr['ip'];
      $this->vars    = base64_decode($sql_arr['vars']);
      $this->key     = $key;