1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

class.db.php Fehler - PHP4 Standard??

Dieses Thema im Forum "PHP" wurde erstellt von Fonsi-Heizer, 21. November 2016.

  1. Fonsi-Heizer

    Fonsi-Heizer Mitglied

    Hallo zusammen,

    wir verwenden in einer Wordpress Installation ein Child-Theme. In diesem befindet sich im Ordner /themes/betheme-child/lib/ eine Datei namens class.db.php mit folgendem Inhalt:


    PHP:
    1. <?php
    2.  
    3. class db
    4. {
    5.     var $__host, $__user, $__pass, $__db;
    6.     var $__link;
    7.     var $__paging;
    8.     var $__fields;
    9.     var $__debug=false;
    10.     var $__use_random=0;
    11.     public $__buffer = array();
    12.  
    13.  
    14.     var $__logselect_info=array();
    15.     var $__exist_db_loggingn=1; // if this value set to 0 not make LOG.
    16.     var $__make_log=0;
    17.     var $__make_expert_log=0;
    18.     var $__make_expert_log_obj;
    19.  
    20.     public function db($host, $user, $pass, $database)
    21.     {
    22.         $this->__host = $host;
    23.         $this->__user = $user;
    24.         $this->__pass = $pass;
    25.         $this->__db = $database;
    26.         $this->__link = mysqli_connect($host, $user, $pass);
    27.         mysqli_select_db($this->__link,$database);
    28.  
    29.         $this->PREFIX = '';
    30.  
    31.         $this->MODULE_RIGHTS        = $this->PREFIX.'module_rights';
    32.         $this->RIGHTS_LEVELS        = $this->PREFIX.'module_rights_levels';
    33.         $this->MODULE_ACTION_RIGHTS    = $this->PREFIX.'module_action_rights';
    34.  
    35.         /* INIT TABLES */
    36.         $this->MODULE_ORDER         = $this->PREFIX.'module_priority';                //module menu ordering and clicks
    37.         $this->SETTINGS                = $this->PREFIX.'settings';                        //settings
    38.         $this->HELPTEXT                    =$this->PREFIX.'helptext';
    39.         $this->LANG                    =$this->PREFIX.'lang';
    40.         $this->LANG_NAMES            =$this->PREFIX.'lang_names';
    41.         $this->LANG_FRONTEND        =$this->PREFIX.'lang_frontend';
    42.         //$this->GALLERY_SETTINGS        =$this->PREFIX.'cms_settings';
    43.  
    44.  
    45.         $this->CUSTOM_ANREDE        =$this->PREFIX.'custom_anrede';
    46.         $this->CUSTOM_TITLE            =$this->PREFIX.'custom_title';
    47.  
    48.         $this->EXT_PANEL_STATES            =$this->PREFIX.'ext_panel_states';
    49.  
    50.         $this->MEDIAPOOL_FILES        =$this->PREFIX.'mediapool_files';
    51.         $this->MEDIAPOOL_FILES_MULTILANG=$this->PREFIX.'mediapool_files_multilang';
    52.         $this->MEDIAPOOL_FOLDERS    =$this->PREFIX.'mediapool_folders';
    53.     }
    54.     public function getLink(){
    55.         $this->__link;
    56.     }
    57.  
    58.  
    59.     public function __wakeup()
    60.     {
    61.         $this->__link = mysqli_connect($this->__host, $this->__user, $this->__pass);
    62.         mysqli_select_db($this->__link,$this->__db);
    63.     }
    64.  
    65.     public function set_debug($debug=false)
    66.     {
    67.         $this->__debug=$debug;
    68.     }
    69.  
    70.     public function set_random($r=0)
    71.     {
    72.         $this->__use_random=$r;
    73.     }
    74.  
    75.     public function delete($table, $conds, $limit = 1)
    76.     {
    77.         $Q =    "DELETE FROM {$table} ".
    78.             "WHERE {$conds} ".
    79.             ($limit?"LIMIT {$limit} ":'');
    80.         $this->raw($Q, false);
    81.         return mysqli_affected_rows($this->__link);
    82.     }
    83.  
    84.     public function insert($table, $fields = null, $values = null, $delayed = false)
    85.     {
    86.         if ($fields == null)
    87.             $fields = array_keys($_POST);
    88.         if ($values == null)
    89.             $values = array_values($_POST);
    90.         if (is_array($fields))
    91.             $fields = implode(', ', $fields);
    92.  
    93.         if (is_array($values))
    94.         {
    95.             //Alpar
    96.             if(get_magic_quotes_gpc() || ini_get('magic_quotes_sybase'))
    97.             {
    98.  
    99.                 foreach($values as &$values2)
    100.                 {
    101.                     $values2=str_replace('\r\n',chr(13).chr(10),$values2);
    102.                     $values2=str_replace('\n',chr(13).chr(10),$values2);
    103.                 }
    104.                 $values=array_map('addslashes',$values);
    105.  
    106.                 //End Alpar
    107.             }
    108.             $values = "'".implode("', '", $values)."'";
    109.         }
    110.         else
    111.         {
    112.             if(get_magic_quotes_gpc() || ini_get('magic_quotes_sybase'))
    113.             {
    114.                 //Alpar
    115.  
    116.                 $values=str_replace('\r\n',chr(13).chr(10),$values);
    117.                 $values=str_replace('\n',chr(13).chr(10),$values);
    118.                 $values=addslashes($values);
    119.  
    120.                 //End Alpar
    121.             }
    122.         }
    123.         $Q =
    124.             "INSERT ".($delayed?'DELAYED ':'')."INTO {$table} ({$fields}) ".
    125.             "VALUES ({$values}) ";
    126.         $this->raw($Q, false);
    127.         return mysqli_insert_id($this->__link);
    128.     }
    129.  
    130.  
    131.     public function decode($what = 'post',$variable_name='')
    132.     {
    133.         global $site_name_admin,$site_name,$db_variable_new_admin,$db_variable__decode_path, $db_host,$db_user,$db_pass,$db_dBase;
    134.  
    135.         switch ($what)
    136.         {
    137.             case 'get':
    138.                 $var = (get_magic_quotes_gpc()?array_map('stripslashes_deep',$_GET):$_GET);
    139.                 break;
    140.             case 'post':
    141.                 $var = (get_magic_quotes_gpc()?array_map('stripslashes_deep',$_POST):$_POST);
    142.                 break;
    143.             case 'request':
    144.                 $var = (get_magic_quotes_gpc()?array_map('stripslashes_deep',$_REQUEST):$_REQUEST);
    145.                 break;
    146.             case 'cookie':
    147.                 $var = (get_magic_quotes_gpc()?array_map('stripslashes_deep',$_COOKIE):$_COOKIE);
    148.                 break;
    149.             case 'session':
    150.  
    151.                 if ($db_variable_new_admin==1){
    152.                     include_once(BASE_PATH.'/config/dbconfig.inc.php');
    153.                     if ($db_variable__decode_path==0){
    154.                         $var = $_SESSION[$site_name_admin];
    155.                         if ($variable_name=='db'){
    156.                         }
    157.                     }else{
    158.                         $var = $_SESSION[$site_name];
    159.                     }
    160.  
    161.  
    162.                 }else{
    163.                     $var = $_SESSION;
    164.                 }
    165.                 break;
    166.         }
    167.  
    168.         $tmp_link = mysqli_connect($db_host, $db_user, $db_pass);
    169.  
    170.         if ($variable_name!=''){
    171.  
    172.             if (isset($var[$variable_name])){
    173.                 return (is_object($var[$variable_name])?$var[$variable_name]:(is_array($var[$variable_name])?array_map('addslashes',$var[$variable_name]):
    174.                     mysqli_real_escape_string($tmp_link, $var[$variable_name])));
    175.             }else{
    176.                 return '';
    177.             }
    178.         }else{
    179.             foreach ($var as $k=>$v)
    180.             {
    181.                 //var_pump($var);
    182.                 $k=str_replace('-','_',$k);
    183.                 if (!is_array($v))
    184.                 {
    185.                     eval("global \${$k}; \${$k} = addslashes( \$v );");
    186.                 }
    187.                 else
    188.                 {
    189.                     //array_map('stripslashes',$row)
    190.                     eval("global \${$k}; \${$k} = array_map('addslashes',\$v);");
    191.                     //eval("global \${$k}; \${$k} = \$v;");
    192.                 }
    193.             }
    194.         }
    195.     }
    196.  
    197.     public function raw($Q, $res = true)
    198.     {
    199.         $this->__Q = $Q;
    200.         //echo $Q."<br>";
    201.         $this->__res = mysqli_query($this->__link, $Q) or die($Q.' '.mysqli_error($this->__link));
    202.         if ($res==true)
    203.         {
    204.             if ($this->__fields!='')
    205.             {
    206.                 $count=mysqli_num_fields($this->__res);
    207.                 $this->__fields="";
    208.                 $aux='';
    209.                 for ($i=0;$i<$count;$i++)
    210.                 {
    211.                     //$aux = $aux . mysql_field_name($this->__res, $i) . "::";
    212.                     $finfo = mysqli_fetch_field_direct($this->__res, $i);
    213.                     $aux = $aux . $finfo->name . "::";
    214.                 }
    215.                 $this->__field_names=$aux;
    216.             }
    217.         }
    218.         return $res?$this->resArr():$res;
    219.     }
    220.  
    221.     public function select($fields, $table, $conds = '', $limit = '', $order = '', $group = '', $having = '', $buffer = false)
    222.     {
    223.         //echo $order.' '.$limit.' '.$this->__last_limit."<br>";
    224.         if (strlen($order))
    225.         {
    226.             $order = ' '.$order;
    227.         }
    228.  
    229.         if ($this->__use_random) {$order='RAND()';$limit=$this->__use_random;}
    230.         //echo 'Elotte:'.$limit.' '.$this->__last_limit[0]."<br>";
    231.         $this->__last_limit[0]=$limit;
    232.         //echo 'Utana:'.$limit.' Last:'.$this->__last_limit."<br>";
    233.         $Q =    "SELECT {$fields} ".
    234.             "FROM {$table} ".
    235.             (strlen($conds)?"WHERE {$conds} ":'').
    236.             (strlen($group)?"GROUP BY {$group} ":'').
    237.             (strlen($having)?"HAVING {$having} ":'').
    238.             (strlen($order)?"ORDER BY {$order} ":'').
    239.             (strlen($limit)?"LIMIT {$limit} ":'');
    240.         if ($this->__debug) echo $Q;
    241.         $this->__fields=$fields;
    242.         if ($buffer)
    243.         {
    244.             if (!isset($this->__buffer[$Q]))
    245.                 $this->__buffer[$Q] = $this->raw($Q);
    246.             $this->__arr = $this->__buffer[$Q];
    247.             return $this->__buffer[$Q];
    248.         }
    249.         return $this->raw($Q);
    250.     }
    251.  
    252.     public function statistics($field, $table, $conds)
    253.     {
    254.         $res = db::select($field.", count(*) C", $table, $conds, 9999, '', $field);
    255.         $stat = array();
    256.         foreach ($res as $arr)
    257.             $stat[$arr[$field]] = $arr['C'];
    258.         return $stat;
    259.     }
    260.     public function statistics_2($field, $table, $conds,$group)
    261.     {
    262.         return $this->statistics($field, " ( SELECT ".$field.", count(*) C FROM ".$table.' WHERE '.$conds.' GROUP BY '.$group.' ) T', "");
    263.     }
    264.  
    265.     public function getOne($field,  $table, $conds = '')
    266.     {
    267.         $Q =    "SELECT {$field} ".
    268.             "FROM {$table} ".
    269.             (strlen($conds)?"WHERE {$conds} ":'').' LIMIT 1';
    270.         $res = $this->raw($Q);
    271.         //echo $Q;
    272.         if (!count($res))
    273.             return '';
    274.         //Alpar
    275.         /*if(get_magic_quotes_gpc() || ini_get('magic_quotes_sybase')){
    276.             $res[0]=array_map('stripslashes',$res[0]);
    277.             }*/
    278.  
    279.         return array_pop($res[0]);
    280.         //return array_pop($res[0]);
    281.     }
    282.  
    283.     public function insertId($table, $field, $val, $indexField = '')
    284.     {
    285.         if ($indexField == '')
    286.             $indexField = $this->getIndexField($table);
    287.         $c = $this->getOne($indexField, $table, "`{$field}` = '{$val}'");
    288.         if ($c !== false)
    289.             return $c;
    290.         else
    291.         {
    292.             return $this->insert($table, $field, array($val));
    293.         }
    294.     }
    295.  
    296.     public function getIndexField($table)
    297.     {
    298.         if (!isset($this->__primary[$table]))
    299.         {
    300.             $res = $this->raw("SHOW INDEX FROM {$table}");
    301.             foreach ($res as $f)
    302.             {
    303.                 if ($f['Key_name'] == 'PRIMARY')
    304.                 {
    305.                     $this->__primary[$table] = $f['Column_name'];
    306.                     break 1;
    307.                 }
    308.             }
    309.             if (!isset($this->__primary[$table]))
    310.                 $this->__primary[$table] = '0';
    311.         }
    312.         return $this->__primary[$table];
    313.     }
    314.  
    315.     public function update($fields, $vals, $table, $conds)
    316.     {
    317.         if (!is_array($fields))
    318.             $fields = array_map('trim', explode(',', $fields));
    319.         if($this->__exist_db_loggingn==1 && ($this->__make_log==1 || $this->__make_expert_log==1)){
    320.             $this->__logselect_info['old']=$this->select(implode(',',$fields),$table, $conds);
    321.             $this->__logselect_info['new']=array();
    322.             foreach($fields as $ii => $f_value){
    323.                 $this->__logselect_info['new'][$f_value]=$vals[$ii];
    324.             }
    325.  
    326.         }
    327.         if (!is_array($vals))
    328.             $vals = array($vals); //this is bad
    329.         if (get_magic_quotes_gpc() || ini_get('magic_quotes_sybase'))
    330.         {
    331.             $vals=str_replace('\r\n',chr(13).chr(10),$vals);
    332.             $vals=str_replace('\n',chr(13).chr(10),$vals);
    333.             $vals = array_map('addslashes',$vals);
    334.         }
    335.         //$vals = array_map('mysql_real_escape_string', array_map('stripslashes', $vals));
    336.         $Q =    "UPDATE `{$table}` SET ";
    337.         foreach ($fields as $k=>$f)
    338.             $fields[$k] = "`{$f}` = '".$vals[$k]."'";
    339.         $Q .= implode(', ', $fields)." WHERE {$conds}";
    340.         $this->raw($Q, false);
    341.         mysqli_affected_rows($this->__link);
    342.         $saveaffected_rows=mysqli_affected_rows($this->__link);
    343.         if($this->__make_expert_log==1){
    344.             $this->__make_expert_log_obj->add2LogFieldsUpdate($this->__logselect_info);
    345.             $this->clearLog();
    346.         }
    347.  
    348.         return $saveaffected_rows;
    349.     }
    350.  
    351.     public function isTable($tbl)
    352.     {
    353.         //var_pump($this->raw('SHOW TABLES'));
    354.         //var_pump(db::shallow($this->raw("SHOW TABLES like '".$tbl."'")));
    355.         //echo ' '.in_array($tbl, db::shallow($this->raw("SHOW TABLES like '".$tbl."'")))."<br>";
    356.         return in_array($tbl, db::shallow($this->raw("SHOW TABLES like '".$tbl."'")));
    357.  
    358.         //list($result)=$this->raw('check table '.$tbl);
    359.         //return ($result['Msg_text']!='OK'?0:1);
    360.     }
    361.  
    362.     function resArr() {
    363.         if (isset($this->__res))
    364.         {
    365.             $this->__arr = array();
    366.             while ($row = mysqli_fetch_assoc($this->__res))
    367.             {
    368.                 if(get_magic_quotes_gpc() || ini_get('magic_quotes_sybase'))
    369.                 {
    370.                     //$this->__arr[] = ($row);
    371.                     //$row = array_map('stripslashes_deep',$row);
    372.                     //(preg_replace('/\r\n/','\n',addslashes($res[0]['article_title'])))
    373.  
    374.                     //$this->__arr[] = array_map('preg_replace',array('/\r\n/'),array('\n'),$row);
    375.                     $row=array_map('stripslashes',$row);
    376.                     /*
    377.                     foreach($row as &$row2){
    378.                         $row2=preg_replace('/\r\n/','\n',($row2));
    379.                     }*/
    380.                 }
    381.                 $this->__arr[] = $row;
    382.             }
    383.             return $this->__arr;
    384.         }
    385.         return false;
    386.     }
    387.  
    388.     function shallow($arr)
    389.     {
    390.         $arr2 = array();
    391.         foreach ($arr as $v)
    392.             $arr2[] = array_pop($v);
    393.         return $arr2;
    394.     }
    395.     function slallow($arr)
    396.     {
    397.         $arr2 = array();
    398.         foreach ($arr as $v)
    399.             $arr2[] = array_shift($v);
    400.         return $arr2;
    401.     }
    402.  
    403.     function numRows()
    404.     {
    405.         if (isset($this->__res))
    406.             return mysqli_num_rows($this->__res);
    407.         return false;
    408.     }
    409.  
    410.     public function truncate($table)
    411.     {
    412.         mysqli_query($this->__link,'TRUNCATE TABLE `'.$table.'`');
    413.     }
    414.  
    415.     public function optimize($table)
    416.     {
    417.         mysqli_query($this->__link,'OPTIMIZE TABLE `'.$table.'`');
    418.     }
    419.  
    420.     public function dispose()
    421.     {
    422.         mysqli_close($this->__link);
    423.     }
    424.  
    425.     public function getEmptyArrayOfFields()
    426.     {
    427.         $ret=explode("::",$this->__field_names);
    428.         $arr=array();
    429.         foreach ($ret as $r) if ($r!="") $arr[$r]="";
    430.         return $arr;
    431.     }
    432.     public function makeLog($make=1){
    433.         $this->__make_log=$make;
    434.         $this->__make_expert_log=0;
    435.     }
    436.     public function makeExpertLog($obj_log){
    437.         $this->__make_expert_log=1;
    438.         $this->__make_log=0;
    439.         $this->__make_expert_log_obj=$obj_log;
    440.  
    441.     }
    442.     public function clearLog(){
    443.         $this->__make_expert_log=0;
    444.         $this->__make_log=0;
    445.     }
    446.     public function returnLogBeforeAfterUpdate($make=0){
    447.         $this->__make_log=$make;
    448.         return $this->__logselect_info;
    449.     }
    450.  
    451.     public function executeDumpFile($filepath)
    452.     {
    453.         if (is_file($filepath))
    454.         {
    455.             $command="mysql --user=".$this->__user." --password=".$this->__pass." --host=".$this->__host." ".$this->__db." < ".$filepath; //echo $command;
    456.             exec($command);
    457.         }
    458.     }
    459. }
    460.  
    461.  
    462. if (!function_exists('var_pump')) {
    463.     function var_pump($arr, $w = 0)
    464.     {
    465.         echo "<pre>";
    466.         if ($w == 1)
    467.             var_dump($arr);
    468.         else if ($w == 2)
    469.             var_export($arr);
    470.         else
    471.             print_r($arr);
    472.         echo "</pre>";
    473.     }
    474. }
    475.  
    476. ?>
    In der debug.log erhalten wir folgende Meldung:

    Code (Text):
    1. PHP Deprecated:  Methods with the same name as their class will not be constructors in a future version of PHP; db has a deprecated constructor in /var/www/vhosts/xxx.com/xxx/wp-content/themes/betheme-child/lib/class.db.php on line 3
    Die Fehlermeldung deutet ja auf einen "veralteten" Aufbau der Class hin. Kann mir jemand helfen diesen Fehler zu beheben? Danke.
     
  2. sheel

    sheel I love Asm Administrator

    Hi

    ersetze
    PHP:
    1. public function db
    mit
    PHP:
    1. public function __construct()
     
  3. Fonsi-Heizer

    Fonsi-Heizer Mitglied

    Hallo,

    danke @sheel für die schnelle Antwort. Wurde soeben ersetzt. Mal beobachten ob der Debugger sich noch einmal meldet.

    LG
     
Die Seite wird geladen...