Jump to content

bnq-m

Member
  • Posts

    8
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by bnq-m

  1. 20 minutes ago, Shogun said:

    In:

        public function read($session_id)
        {
            $data = $this->select("SELECT session_data FROM {$this->table} WHERE session_id = :id", array('id' => $session_id), true);

            return $data['session_data'];
        }

    change this to:

        public function read($session_id)
        {
            $data = $this->select("SELECT session_data FROM {$this->table} WHERE session_id = :id", array('id' => $session_id), true);

            return $data['session_data'] ?? '';
        }

    If you keep having issues I suggest you install php5 (if it's still a thing) which is the version this page was developed in.

    Quote

    Warning: Unknown: Session callback expects true/false return value in Unknown on line 0

    Warning: Unknown: Failed to write session data using user defined save handler. (session.save_path: ) in Unknown on line 0

    after change

  2. 2 hours ago, Shogun said:

    Find in the page the following:

    SessionHandlerInterface

    And paste here what comes after that.

    Quote

    <?php

    /**
     * Created by PhpStorm.
     * User: viperoo
     * Date: 29.11.15
     * Time: 19:48
     */
     
    class DatabaseSession implements SessionHandlerInterface
    {
        protected $db;
        protected $ip;
        protected $ua;
        protected $timeout;
        protected $table = 'sessions';

        public function __construct($timeout = 216000)
        {
            if(admlt() || gmlt()) $timeout = 5184000;
            
            $pdo = new PDO('mysql:host=host_ip;port=3306;dbname=site', 'elo', 'asdasd');

            $this->db = $pdo;
            $this->table = 'sessions';
            $this->timeout = $timeout;
        }

        /**
         * PHP >= 5.4.0<br/>
         * Close the session
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.close.php
         * @return bool <p>
         * The return value (usually TRUE on success, FALSE on failure).
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function close()
        {
            return true;
        }

        /**
         * PHP >= 5.4.0<br/>
         * Destroy a session
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.destroy.php
         * @param int $session_id The session ID being destroyed.
         * @return bool <p>
         * The return value (usually TRUE on success, FALSE on failure).
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function destroy($session_id)
        {
            $this->db->query("DELETE FROM {$this->table} WHERE session_id = '$session_id'");
        }

        /**
         * PHP >= 5.4.0<br/>
         * Cleanup old sessions
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.gc.php
         * @param int $maxlifetime <p>
         * Sessions that have not updated for
         * the last maxlifetime seconds will be removed.
         * </p>
         * @return bool <p>
         * The return value (usually TRUE on success, FALSE on failure).
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function gc($maxlifetime)
        {
            $date = new \DateTime();

            $date->modify('-' . $maxlifetime . ' seconds');

            $this->db->query("DELETE FROM {$this->table} WHERE " . '`session_last_activity` < \'' . $date->format("Y-m-d H:i:s") . '\'');
            return true;
        }

        /**
         * PHP >= 5.4.0<br/>
         * Initialize session
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.open.php
         * @param string $save_path The path where to store/retrieve the session.
         * @param string $session_id The session id.
         * @return bool <p>
         * The return value (usually TRUE on success, FALSE on failure).
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function open($save_path, $session_id)
        {
            $this->gc($this->timeout);

            return true;
        }

        /**
         * PHP >= 5.4.0<br/>
         * Read session data
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.read.php
         * @param string $session_id The session id to read data for.
         * @return string <p>
         * Returns an encoded string of the read data.
         * If nothing was read, it must return an empty string.
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function read($session_id)
        {
            $data = $this->select("SELECT session_data FROM {$this->table} WHERE session_id = :id", array('id' => $session_id), true);

            return $data['session_data'];
        }

        /**
         * PHP >= 5.4.0<br/>
         * Write session data
         *
         * @link http://php.net/manual/en/sessionhandlerinterafce.write.php
         * @param string $session_id The session id.
         * @param string $session_data <p>
         * The encoded session data. This data is the
         * result of the PHP internally encoding
         * the $_SESSION superglobal to a serialized
         * string and passing it as this parameter.
         * Please note sessions use an alternative serialization method.
         * </p>
         * @return bool <p>
         * The return value (usually TRUE on success, FALSE on failure).
         * Note this value is returned internally to PHP for processing.
         * </p>
         */
        public function write($session_id, $session_data)
        {

            if ($this->count("SELECT count(session_id) FROM {$this->table} WHERE session_id = :id", array('id' => $session_id)) > 0) {
                $values = array(
                    'session_last_activity' => date("Y-m-d H:i:s", time()),
                    'session_data' => $session_data
                );
                $this->update($this->table, $values, '`session_id` = \'' . $session_id . '\' LIMIT 1');
            } else {
                $date = new \DateTime();
                $values = array(
                    'session_id' => $session_id,
                    'session_user' => 0,
                    'session_last_activity' => $date->format("Y-m-d H:i:s"),
                );

                $this->insert($this->table, $values);
            }
        }

        public function count($sql, $array = array())
        {
            $sth = $this->db->prepare($sql);
            foreach ($array as $key => $value) {
                $sth->bindValue("$key", $value);
            }
            $sth->execute();

            return $sth->fetchColumn();
        }

        public function update($table, $data, $where)
        {
            ksort($data);

            $fieldDetails = null;
            foreach ($data as $key => $value) {
                $fieldDetails .= "`$key`=:$key,";
            }
            $fieldDetails = rtrim($fieldDetails, ',');

            $sth = $this->db->prepare("UPDATE $table SET $fieldDetails WHERE $where");

            foreach ($data as $key => $value) {

                $sth->bindValue(":$key", $value);
            }

            $sth->execute();
        }

        /**
         * insert
         *
         * @param string $table A name of table to insert into
         * @param array $data An associative array
         * @return string
         */
        public function insert($table, $data)
        {
            ksort($data);

            $fieldNames = implode('`, `', array_keys($data));
            $fieldValues = ':' . implode(', :', array_keys($data));

            $sth = $this->db->prepare("INSERT INTO $table (`$fieldNames`) VALUES ($fieldValues)");

            foreach ($data as $key => $value) {
                $sth->bindValue(":$key", $value);
            }

            $sth->execute();

            return $this->db->lastInsertId();
        }

        public function select($sql, $array = array(), $type = false, $fetchMode = \PDO::FETCH_ASSOC)
        {
            $sth = $this->db->prepare($sql);
            if (is_array($array)) {
                foreach ($array as $key => $value) {
                    $sth->bindValue("$key", $value);
                }
            }
            $sth->execute();
            if ($type == true) {
                return $sth->fetch($fetchMode);
            } else {
                return $sth->fetchAll($fetchMode);
            }
        }
        
        public function deleteUser($user)
        {
            $sth = $this->update($this->table, array('session_user'=>'0','session_data'=>NULL), '`session_user` = \'' . $user . '\' LIMIT 1');
            return $sth;
        }
        
        public function setUser($user, $session_id)
        {
            $sth = $this->update($this->table, array('session_user'=>$user), '`session_id` = \'' . $session_id . '\' LIMIT 1');
            return $sth;
        }
        
        public function getAllLogedSessions($min = 2)
        {
            $sth = $this->db->query("SELECT COUNT(*) FROM {$this->table} WHERE session_user != 0 AND session_last_activity >= DATE_SUB(NOW(), INTERVAL {$min} MINUTE)");
            $row = $sth->fetch(PDO::FETCH_NUM);
            return $row[0];
        }
        
        public function getAllSessions($min = 2)
        {
            $sth = $this->db->query("SELECT COUNT(*) FROM {$this->table} WHERE session_last_activity >= DATE_SUB(NOW(), INTERVAL {$min} MINUTE)");
            $row = $sth->fetch(PDO::FETCH_NUM);
            return $row[0];
        }
        
        public function getLastActivity($user)
        {
            $data = $this->select("SELECT session_last_activity FROM {$this->table} WHERE session_user = :id", array('id' => $user), true);

            return $data['session_last_activity'];
        }
    }

     

  3. 7 hours ago, Shogun said:

    I'll make a wild guess:

    pkg add php74-session
    
    service apache24 restart

     

    Quote


    Updating FreeBSD repository catalogue...
    FreeBSD repository is up to date.
    All repositories are up to date.
    Checking integrity... done (0 conflicting)
    The most recent versions of packages are already installed
     

    Already installed

  4. 5 hours ago, Shogun said:

    So what's in /usr/local/www/apache24/data/inc/_config.php? I'm not psychic

    Quote

        # ERRORs
        ini_set('display_errors', 'on');
        error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

        # DEFLAUT TIME
        date_default_timezone_set('Europe/Warsaw');            # Domyslne ustawienia czasu

        # OPTION DEBUG DATABASE
        define('DB_DEBUG', true);

        define('CACHE_SITE', false);
        define('CACHE_STYLES', false);
        define('CACHE_SCRIPTS', false);
        
        # CACHE TIMEs
        define('CACHE_HTML_TIME', 15);

        # SITE PATH
        define('DS', '/');
        define('IMG', 'images' . DS);
        define('MODULES', 'inc' . DS . 'modules' . DS);
        define('GLOBALINC', 'includers' . DS);
        define('LOCALE', 'locale' . DS);
        define('USERPROFILE', 'profile' . DS);
        define('GLOBALPAGES', 'pages' . DS);
        define('DIRSUPPORT', 'support' . DS);

        define('ITEM_DESC_FILE', 'inc' . DS . 'client' . DS . 'itemdesc.txt');
        define('ITEM_LIST_FILE', 'inc' . DS . 'client' . DS . 'item_list.txt');
        define('ITEM_NAMES_FILE', 'inc' . DS . 'client' . DS . 'item_names.txt');
        define('DIR_IMAGE_ITEMS', 'inc' . DS . 'client' . DS . 'item' . DS);

        define('ACP_FOLDER', 'admin' . DS);

        # LOAD OTHER CONFIGs
        require_once realpath($_SERVER['DOCUMENT_ROOT']) . DS . 'inc' . DS . '_setings' . DS . '_setings_admins.php';

        function __autoload($name)
        {
            include_once realpath($_SERVER['DOCUMENT_ROOT']) . DS . 'inc' . DS . 'class' . DS . $name . '.php';
        }

        ini_set("session.gc_probability", 1);
        ini_set("session.gc_divisor", 100);
        
        $session = new DatabaseSession();
        session_set_save_handler(
            array($session, 'open'),
            array($session, 'close'),
            array($session, 'read'),
            array($session, 'write'),
            array($session, 'destroy'),
            array($session, 'gc')
        );

        # SESSIONs
        if(!isset($_SESSION)) session_start();
     

    Quote

        if(!isset($_SESSION)) session_start();

    This is line 80

  5. 9 hours ago, Shogun said:

    Wow, Apache. Feels like 2008 all over again.

    In the shell type:

    pkg add php74-pdo_mysql
    
    service apache24 restart

     

    spacer.png
    i have already installed 

    Quote

    php72-7.2.30 PHP Scripting Language

    php72-bz2-7.2.30 The bz2 shared extension for php

    php72-ctype-7.2.30 The ctype shared extension for php

    php72-curl-7.2.30 The curl shared extension for php

    php72-dom-7.2.30 The dom shared extension for php

    php72-fileinfo-7.2.30 The fileinfo shared extension for php

    php72-filter-7.2.30 The filter shared extension for php

    php72-gd-7.2.30 The gd shared extension for php

    php72-hash-7.2.30 The hash shared extension for php

    php72-json-7.2.30 The json shared extension for php

    php72-mbstring-7.2.30 The mbstring shared extension for php

    php72-mysqli-7.2.30 The mysqli shared extension for php

    php72-openssl-7.2.30 The openssl shared extension for php

    php72-pdo-7.2.30 The pdo shared extension for php

    php72-phar-7.2.30 The phar shared extension for php

    php72-readline-7.2.30 The readline shared extension for php

    php72-session-7.2.30 The session shared extension for php

    php72-sockets-7.2.30 The sockets shared extension for php

    php72-xml-7.2.30 The xml shared extension for php

    php72-xmlreader-7.2.30 The xmlreader shared extension for php

    php72-xmlwriter-7.2.30 The xmlwriter shared extension for php

    php72-zip-7.2.30 The zip shared extension for php

    php72-zlib-7.2.30 The zlib shared extension for php

     

  6.  

    hello, i have a problem with a page i downloaded from another forum

    Quote

    Fatal error: Uncaught PDOException: could not find driver in /usr/local/www/apache24/data/inc/class/DatabaseSession.php:22 Stack trace: #0 /usr/local/www/apache24/data/inc/class/DatabaseSession.php(22): PDO->__construct('mysql:host=25.7...', 'site', 'password') #1 /usr/local/www/apache24/data/inc/_config.php(69): DatabaseSession->__construct() #2 /usr/local/www/apache24/data/BombWorkCMS.php(26): include('/usr/local/www/...') #3 {main} thrown in /usr/local/www/apache24/data/inc/class/DatabaseSession.php on line 22

    FreeBSD 12.1 PHP 7.2

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.