 Jeune Padawan |
Bonjour, Lorsque je débutai en PHP (il n'y a pas si longtemps que cela  ) je découvris un forum nommé DNF ( forum entièrement en PHP sans base de donnée). Puis avec le temps, j'ai pu observer que certaines régles tels que " register_globals Off" étaient contournées par des solutions assez douteuse comme par " if(!@ini_get('register_globals')) {if(phpversion()>=4.1)import_request_variables("GPC");}" Comme j'apprécie particulièrement ce forum, j'ai pour projet de le "normiser" avec " register_globals Off", " error_reporting E_ALL" ... Mais desormais j'ai dépassé mes limites personnelles  car je veux un script très propre (que je ne peux pas faire !) Donc si une ( ou plusieurs) âme( s) charitable( s) pouvaient lire la première partie du code que j'ai nettoyé ( attention je ne veux pas que vous la corrigiez à ma place ! Je voudrais simplement que vous le lisiez et que vous me disiez après : là c'est crade il faudrait faire çà ... là ce n'est pas utile etc...) Fonction 1
function get_ip() {
    if(isset($_SERVER))
          if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
          elseif(isset($_SERVER['HTTP_CLIENT_IP'])) $ip = $_SERVER['HTTP_CLIENT_IP'];
          else $ip = $_SERVER['REMOTE_ADDR'];
    else if(getenv('HTTP_X_FORWARDED_FOR')) $ip = getenv('HTTP_X_FORWARDED_FOR');
          elseif(getenv('HTTP_CLIENT_IP')) $ip = getenv('HTTP_CLIENT_IP');
          else $ip = getenv('REMOTE_ADDR');
    return $ip;
}
Fonction 2
function fast($url,$type,$text=null) {
     $fp=fopen($url,$type);
     if (isset($type) AND $type == 'r') {
               $text = '';
               while(!feof($fp)) $text .= fgets($fp,4096);
     }
     else fputs($fp,$text);
     fclose($fp);
     if (isset($type) AND $type == 'r') return $text;
     else return TRUE;
}
Fonction 3
function suppr($file) {
    if (isset($file) AND !empty($file)) {
          if (file_exists($file)) $delete = unlink($file);
          if (file_exists($file)) {
              $filesys = ereg_replace('/','\\',$file);
              if (function_exists('chmod')) $delete = chmod ($file, 0775);
              if (function_exists('system')) $delete = system('del '.$filesys);
              $delete = unlink($file);
              if (file_exists($file)) return FALSE;
              else return TRUE;
          }
        else return TRUE;
    }
    else return FALSE;
}
Fonction 4
function pix($txt,$type,$tp) {
    if (!isset($tp)) {
          $chars=array(32=>4,4,5,9,7,12,8,3,5,5,7,9,4,5,4,5,7,7,7,7,7,7,7,7,7,7,5,5,9,9,9,6,10,8,8,9,9,7,6,9,8,5,5,8,6,9,8,9,7,9,8,8,7,8,8,11,8,7,8,5,5,5,9,7,7,7,7,6,7,7,4,7,7,3,4,7,3,11,7,7,7,7,5,6,4,7,7,9,7,7,6,7,5,7,9,11,7,11,3,7,5,9,7,7,7,17,8,5,12,11,8,11,11,3,3,5,5,6,7,11,7,11,6,5,11,11,6,7,4,4,7,7,7,7,5,7,7,11,6,7,9,0,11,7,6,9,6,6,7,7,7,4,7,6,6,7,11,11,11,6,8,8,8,8,8,8,11,9,7,7,7,7,5,5,5,5,9,8,9,9,9,9,9,9,9,8,8,8,8,7,7,7,7,7,7,7,7,7,11,6,7,7,7,7,3,3,3,3,7,7,7,7,7,7,7,9,7,7,7,7,7,7,7,7);
          $max = 100;
    }   Â
    else {
          $chars = array(32=>4,4,7,9,8,14,10,4,6,6,8,9,4,6,4,8,8,8,8,8,8,8,8,8,8,8,4,4,9,9,9,7,11,9,8,8,9,8,8,9,9,6,6,8,7,10,9,9,8,9,8,8,8,9,8,12,8,8,8,6,8,6,10,8,8,8,8,7,8,8,5,8,8,4,5,8,4,12,8,8,8,8,6,7,5,8,8,10,8,8,7,8,6,8,9,11,8,11,4,8,6,12,8,8,8,20,8,6,12,11,8,11,11,4,4,7,7,7,8,11,8,11,7,6,12,11,7,8,4,4,8,8,8,8,6,8,8,11,7,9,9,0,11,8,6,9,7,7,8,8,8,4,8,7,7,9,13,13,13,7,9,9,9,9,9,9,12,8,8,8,8,8,6,6,6,6,9,9,9,9,9,9,9,10,9,9,9,9,9,8,8,8,8,8,8,8,8,8,12,7,8,8,8,8,4,4,4,4,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8);
          $max = 335;
    }
    $cp = 0;
    $c_count = strlen($txt);
    while($cp < $c_count) {
          $cl = ord($txt[$cp]);
          if (isset($cl) AND $cl >= 32 AND $cl <= 255) $pixs = $chars[$cl];
          else return FALSE; $cp++;
    }
    if (isset($type) AND $type == 2) return $pixs;
    if (isset($pixs) AND isset($max) AND $pixs > $max) $txt .= '...';
    while($pixs > $max) {
          $txt = substr($txt,0,strlen($txt)-4).'...';
          $pixs = pix($txt,2,$tp);
    }
    return $txt;
}Â Â Â Â Â Â
Fonction 5
function load($pseudo,$password) {
    global $include_path;
    if (file_exists($include_path.'dnf/f/membres.php')) require_once($include_path.'dnf/f/membres.php');
    if (isset($$pseudo)) $ARRAY = $$pseudo;
    if (isset($ARRAY['password']) AND $password == $ARRAY['password'] AND $ARRAY['perms'] == 10) return true;
    elseif (isset($multipass) AND $password == $multipass AND $ARRAY['perms'] == 10) return true;
    else return false;
}
Fonction 6
function rep($dir,$type) {
    global $ok;
    $directory = @opendir($dir);
    @readdir($directory);
    while(false !== ($file = @readdir($directory))) {
          if (isset($file) AND $file != '.' AND $file != '..' AND $file != 'index.html' AND $file != 'smiley.php' AND $file != 'config.php') {
              if (is_dir($dir.'/'.$file)) rep($dir.'/'.$file,$type);
              elseif (isset($type) AND $type == 1) unlink($dir.'/'.$file);
              else { $u1=$dir.'/'.$file;
                    if (isset($type) AND $type == 'topics') {
                    ereg('topic([0-9]+)',$file,$tnb);
                    $u2='dnf/'.$type.'/F1T'.$tnb[1].'.txt';
                    }
                    else $u2='dnf/$type/'.$file;
                    if (!rename($u1,$u2))
                        if (copy($u1,$u2)) {
                              unlink($u2);
                              $ok=1;
                        }
                    else $ok=1;
              }
          }
    }
    @closedir($directory);
}
Fonction 7
function find_topics($rep,$modo,$reload,$ice=false) {
    global $topics,$moddate,$crack_step,$lim;
    if ($dir = opendir($rep)) {
          while (($file = @readdir($dir)) !== false)
              if (is_file($rep.$file)) {
                    if (isset($reload) AND $reload == 2) ereg('F([0-9]+)T([0-9]+)',$file,$ft_file);
                    elseif (isset($reload) AND $reload == 1) {
                        ereg('(topic)([0-9]+)',$file,$ft_file);
                        if (isset($ft_file[2])) $ft_file[1] = 1;
                    }
                    if (isset($ft_file[1]) AND !isset($topics[$ft_file[1]][$ft_file[2]])) {
                        $tfile = file($rep.$file);
                        if (isset($ice)) unset($tfile[count($tfile)-1]);
                        ereg('^<script[^>]*>TT\(([0-9]+),[0-9]+,"(.+)")</script>[\r\n]+$',$tfile[0],$tinfo);
                        ereg('<!--pseudo-->([^\\$<]+)',$tfile[1],$tauteur);
                        ereg('<!--pseudo-->([^\\$<]+)',$tfile[count($tfile)-1],$tlast);
                        ereg('<!--date-->([0-9]{2,2}/[0-9]{2,2})[^0-9]+([0-9]{2,2}:[0-9]{2,2})',$tfile[count($tfile)-1],$tdate);
                        $tauteur = pix($tauteur[1],1,0);
                        $tlast = pix($tlast[1],1,0);
                        $tline = ereg_replace('<','<',ereg_replace('>','>','TC('.$ft_file[2].','.(count($tfile)-2).','.$modo.','.$tinfo[1].',\''.$tauteur.'\',\''.$tinfo[2].'\',\''.$tlast.' le '.$tdate[1].', '.$tdate[2].'\');'));
                        if (isset($crack_step)) fputs($lim,$ft_file[1].'-'.$ft_file[2].'-'.filectime($rep.$file).'-'.$tline."\n");
                        else {
                              $topics[$ft_file[1]][$ft_file[2]] = $tline;
                              $moddate[$ft_file[1]][$ft_file[2]] = 'x'.filectime($rep.$file);
                        }
                }
                    unset($ft_file,$tfile);
                    clearstatcache();
              }
          closedir($dir);
    }
}
Fonction 8
function parse_ini_file2($file,$ProcessSections = TRUE) {
    $Str='';
    $fp=fopen('dnf/f/forums.txt','r') OR exit('Pas de forums.txt');
    while(!feof($fp))
          $Str.=fgets($fp,4096);
    fclose($fp);
    $Section = NULL;
    $Data = array();
    if ($Temp = strtok($Str,"\r\n")) {
          do {
              switch ($Temp{0}) {
                    case ';':
                    case '#': break;
                    case '[':
                        if (!isset($ProcessSections)) break;
                        $Pos = strpos($Temp,'[');
                        $Section = substr($Temp,$Pos+1,strpos($Temp,']',$Pos)-1);
                        $Data[$Section] = array(); break;
                    default:
                        $Pos = strpos($Temp,'=');
                              if ($Pos === FALSE) break;
                              $Data[$Section][trim(substr($Temp,0,$Pos))] = trim(substr($Temp,$Pos+1),' "');
                              break;
              }
          }
          while ($Temp = strtok("\r\n"));
    } return $Data;
}
Fonction 9
function zero($nb,$z) {
    while(strlen($nb)<$z) $nb='0'.$nb; return $nb;
}
Fonction 10
function config($var,$val,$type=0) {
    if ($_GET['config'] = fast('dnf/f/config.php','r','')) {
          if (!isset($type)) $_GET['config'] = ereg_replace('(\\\$$var *= *)[0-9]+;','\\1'.intval($val).';',$_GET['config']);
          else $_GET['config'] = ereg_replace('(\\\$$var *= *)\'[^\']*\';','\\1\''.str_replace('"','',$val).'\';',$_GET['config']);
    $_GET['config'] = fast('dnf/f/config.php','w',$_GET['config']); return TRUE;
    }
    else return FALSE;
}
Merci d'avance pour vos réponses !-- 'Cause it's a bittersweet symphony, this life  |