Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Hosting blokirao nalog zbog ove skripte

[es] :: PHP :: Hosting blokirao nalog zbog ove skripte

[ Pregleda: 1174 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

GMarco24
Senior web developer
Beograd

Član broj: 234565
Poruke: 88
*.dynamic.isp.telekom.rs.



+2 Profil

icon Hosting blokirao nalog zbog ove skripte12.07.2012. u 11:02 - pre 143 meseci
Zbog ove skripte mi je blokiran nalog na hostingu i svi sajtovi na njemu. Moze li neko da mi kaze "od oka" sta ovde najvise sludjuje server ili kako da ja to isproveravam. Pretpostavka je da preg_match_all ili sql4 upit pravi probleme, evo kratkog opisa:
- preg_match_all se izvrsava na html stranici koja je izmedju 500 i 5000 linija i u niz se smesti izmedju 100 i 1000 promenjljivih
- sql4 upit ima implode koji sklopi svih tih 100-1000 promenjljivih u jedan upit, pa je upit stvarno predugacak
- qq() je obican mysql_query sa nekim dodacima, ne obracajte paznju

Problem je sto momci nece ni da pricaju o problemu. Odmah banuju nalog i ne daju ni uvid u to sta je problem. Da li je moguce da ova skripta toliko pravi probleme?

Code:

<?php

require_once $_SERVER['DOCUMENT_ROOT'].'/config.php';
// ###################### KESIRANJE START ##########################
//$duzina_kesiranja=0;
if(empty($error))$error=false;// koristimo je da ne kesiramo stranicu ako je slucajno doslo do greske
if(isset($_GET['user'])){
    $_POST=array(
        'submit'=>1,
        'pname'=>$_GET['user']
    );
}
if(isset($_POST['submit'])){
    $name=strtolower($_POST['pname']);
    $title="Rating for $name - Name";
    $meta_desc="Site: Rating for $name";
    if(file_exists("cache/xxx-$name-xxx.htm")){
        $last_modified=time()-filemtime("cache/xxx-$name-xxx.htm");
        if($last_modified < $duzina_kesiranja ){
            echo file_get_contents("cache/xxx-$name-xxx.htm");
            die();
        }
    }
//    ob_start();
}
// ###################### KESIRANJE END ##########################
require_once(ROOT.'header.php');
?>
        
        <?php
            $j=0;
            $norating =0;
            $investigation = 0;
            $players_withdata = array();
            $players_nodata = array();

            function mptoimp($mp){
                $imp = 0.125*$mp-6.25;
                return $imp;
            }

            function total_score($imp_no_hands, $mp_no_hands, $imp_avg, $mp_avg, $correction = 0){
                $total_hands = $imp_no_hands + $mp_no_hands;
                $total_hands = ($total_hands==0)?1:($imp_no_hands + $mp_no_hands);
                $total_score = (($imp_no_hands*$imp_avg+$mp_no_hands*mptoimp($mp_avg))/($total_hands))+$correction;
                $total_score = number_format($total_score, 2);
                return $total_score;
            }

            if (isset($_POST['submit'])){
                $player = strtolower($_POST['pname']);
                if(trim($player)==''){
                    echo "<p class='centertext'>Please write valid player name</p>";
                }else{

                    $username= str_replace(' ', '+', $player);
                    $player= str_replace('+', ' ', $username);
                    $end_time=time();
                    $start_time=time()-30*24*60*60;
                    $link="http://www.bridgebase.com/myha...nds.php?offset=0&username=$username&start_time=$start_time&end_time=$end_time";

                    $file = strtolower(file_get_contents('hands.html'));

                    preg_match_all('|"north">(?P<north>.*)</td>(.*)"south">(?P<south>.*)</td>(.*)"east">(?P<east>.*)</td>(.*)"west">(?P<west>.*)</td>|Umxis', $file, $all_players);
                    foreach($all_players as $k=>$v){if(is_int($k))unset($all_players[$k]);}
                    preg_match_all('|<td\sclass="numhands">(?P<imp_hands>.*)</td>(.*)IMPs\sAverage(.*)<td\sclass="(neg)?score">(?P<average>.*)</td>|Umxis',$file,$results_imp);
                    preg_match_all('|>MPs\sAverage(.*)<td\sclass="(neg)?score">(?P<mps>.*)</td>\s*<td\sclass="numhands">(?P<mp_hands>.*)</td>|Umxis',$file,$results_mp);
                    if(!isset($results_imp['average'][0])) $results_imp['average'][0]='No data found';
                    if(!isset($results_mp['mps'][0])) $results_mp['mps'][0]='No data found';
                    if(!isset($results_imp['imp_hands'][0])) $results_imp['imp_hands'][0]=0;
                    if(!isset($results_mp['mp_hands'][0])) $results_mp['mp_hands'][0]=0;

                    $name_list = $all_players['north']+ $all_players['south']+ $all_players['east']+ $all_players['west'];
                    echo count($name_list);
                    $sql4 = "SELECT * FROM players WHERE nickname IN ('".implode("','",$name_list)."')";
                    if($res = qq($sql4)){
                        while($r = mysql_fetch_assoc($res)){
                            $tmp = total_score($r['imp_no_hands'], $r['mp_no_hands'], $r['imp_avg'], $r['mp_avg']);
                            $tmp1= $r['nickname'];
                            array_push($players_withdata, $tmp1);
                            $kvarray[$tmp1] = $tmp;
                        }
                    }else{
                        error_log("Puko u prvom bloku\n sql $sql4\nError: ".mysql_error());
                        $error=true;
                    }

                    $sql5 = "SELECT * FROM players,protected WHERE nickname IN ('".implode("','",$name_list)."') AND players.id=protected.id";
                    if($res5 = qq($sql5)){
                        while($r5 = mysql_fetch_assoc($res5)){
                            // echo $r5['nickname'].' -------------- '.$r5['level'].'<br />';
                            $tmp1= $r5['nickname'];
                            switch ($r5['level']){
                                case '11':
                                    $kvarray[$tmp1] = ($kvarray[$tmp1]>2)?$kvarray[$tmp1]:2;
                                    break;
                                case '10':
                                    $kvarray[$tmp1] = ($kvarray[$tmp1]>3)?$kvarray[$tmp1]:3;
                                    break;
                                case '9':
                                    $kvarray[$tmp1] = ($kvarray[$tmp1]>1)?$kvarray[$tmp1]:1;
                                    break;
                                case '8':
                                    $kvarray[$tmp1] = ($kvarray[$tmp1]>0.5)?$kvarray[$tmp1]:0.5;
                                    break;
                            }
                        }
                    }else{
                        error_log("Puko u drugom bloku\n sql $sql5\nError: ".mysql_error());
                        $error=true;
                    }
                    $imp_no_hands = $results_imp['imp_hands'][0];
                    $mp_no_hands = $results_mp['mp_hands'][0];
                    $total_hands = (($imp_no_hands + $mp_no_hands)==0)?1:($imp_no_hands + $mp_no_hands);
                    $imp_avg = $results_imp['average'][0];
                    $mp_avg = $results_mp['mps'][0];
                    if($imp_avg=='No data found') {
                            $imp_avg_fordb = 1288;
                        }else{
                             $imp_avg_fordb = $imp_avg;
                        }
                    if($mp_avg=='No data found') {
                        $mp_avg_fordb = 1288;
                    }else{
                        $mp_avg_fordb = $mp_avg;
                    }
                    $cum_correction = 0;
                    for ($k= 0; $k<= $total_hands-1; $k++) {

                        if (isset($all_players['north'][$k]) && strtolower($all_players['north'][$k])==$player){
                            $me = $all_players['north'][$k];
                            $partner = $all_players['south'][$k];
                            $opp1 = $all_players['east'][$k];
                            $opp2 = $all_players['west'][$k];
                        }elseif (isset($all_players['south'][$k]) && strtolower($all_players['south'][$k])==$player){
                            $me = $all_players['south'][$k];
                            $partner = $all_players['north'][$k];
                            $opp1 = $all_players['east'][$k];
                            $opp2 = $all_players['west'][$k];
                        }elseif (isset($all_players['east'][$k]) && strtolower($all_players['east'][$k])==$player){
                            $me = $all_players['east'][$k];
                            $partner = $all_players['west'][$k];
                            $opp1 = $all_players['north'][$k];
                            $opp2 = $all_players['south'][$k];
                        }elseif (isset($all_players['west'][$k]) && strtolower($all_players['west'][$k])==$player){
                            $me = $all_players['west'][$k];
                            $partner = $all_players['east'][$k];
                            $opp1 = $all_players['north'][$k];
                            $opp2 = $all_players['south'][$k];
                        }else{
                            $partner = 'und';
                        }

                        if($partner!=='und'){
                            if (!isset($kvarray[$opp1])){ $kvarray[$opp1]=0; }
                            if (!isset($kvarray[$opp2])){ $kvarray[$opp2]=0; }
                            if (!isset($kvarray[$partner])){ $kvarray[$partner]=0; }
                            if($kvarray[$opp1]==0){$j++;}
                            if($kvarray[$opp2]==0){$j++;}
                            if($kvarray[$partner]==0){$j++;}
                            $correction = ($kvarray[$opp1]+$kvarray[$opp2]-$kvarray[$partner]);
                            $cum_correction += $correction;
                        }

                    }
                    $jj = $total_hands*3-$j;
                    $total_correction = number_format(($cum_correction/$jj),2);
                    $total_score = total_score($imp_no_hands, $mp_no_hands, $imp_avg, $mp_avg, $total_correction);
                    $pure_score = $total_score - $total_correction;
                    
                    if($total_score<=-5.00){
                        $level = 0;
                    }elseif($total_score<=-4.20){
                        $level = 1;
                    }elseif($total_score<=-3.40){
                        $level = 2;
                    }elseif($total_score<=-2.50){
                        $level = 3;
                    }elseif($total_score<=-1.39){
                        $level = 4;
                    }elseif($total_score<=-1.10){
                        $level = 51;
                    }elseif($total_score<=-0.85){
                        $level = 5;
                    }elseif($total_score<=-0.61){
                        $level = 52;
                    }elseif($total_score<=-0.35){
                        $level = 61;
                    }elseif($total_score<=-0.15){
                        $level = 6;
                    }elseif($total_score<=0.00){
                        $level = 62;
                    }elseif($total_score<=0.20){
                        $level = 71;
                    }elseif($total_score<=0.40){
                        $level = 7;
                    }elseif($total_score<=0.61){
                        $level = 72;
                    }elseif($total_score<=0.85){
                        $level = 81;
                    }elseif($total_score<=1.15){
                        $level = 8;
                    }elseif($total_score<=1.40){
                        $level = 82;
                    }elseif($total_score>1.40){
                        $level = 9;
                    }
                    $sql_protected = "SELECT protected.level FROM players, protected WHERE players.nickname='{$player}' AND players.id=protected.id LIMIT 1";
                    if($res = qq($sql_protected)){
                        if(mysql_num_rows($res)>0){
                            while($r = mysql_fetch_assoc($res)){
                                if ($level < $r['level']){
                                    $norating = 1;
                                    $level = $r['level'];
                                }
                            }
                        }
                    }else{
                        error_log("Puko u trecem bloku\n sql $sql_protected\nError: ".mysql_error());
                        $error=true;
                    }
                    $rating = intval(1300*tanh(2*$total_score/3)+1600);

                    if(($imp_no_hands==0)&&($mp_no_hands==0)){
                        echo '<p class="centertext">No data found for player '.str_replace(' ','&nbsp;',$player).'</p>';
                    }else{
                        if($total_hands<200){
                            echo '<p class="centertext">Not enough hands played last month.<br />This rating is provisional.</p>';
                        }
                        if($investigation==1){
                            echo '<p class="centertext">This player is under investigation...</p>';
                        }
                        if($investigation==2){
                            echo '<p class="centertext">We strongly believe this player is a</p>';
                        }
                        echo '<table id="skill_level">';
                        echo '<tr><td id="skill" ';
                        switch ($level) {
                            case '0':
                                echo 'class="skill_lost">Lost</td></tr>';
                                break;
                            case '1':
                                echo 'class="skill_lost">Novice--</td></tr>';
                                break;
                            case '2':
                                echo 'class="skill_lost">Novice-</td></tr>';
                                break;
                            case '3':
                                echo 'class="skill_novice">Novice</td></tr>';
                                break;
                            case '4':
                                echo 'class="skill_nov">Novice+</td></tr>';
                                break;
                            case '5':
                                echo 'class="skill_beg">Beginner</td></tr>';
                                break;
                            case '51':
                                echo 'class="skill_beg">Beginner-</td></tr>';
                                break;
                            case '52':
                                echo 'class="skill_beg">Beginner+</td></tr>';
                                break;
                            case '6':
                                echo 'class="skill_int long">Intermediate</td></tr>';
                                break;
                            case '61':
                                echo 'class="skill_int long">Intermediate-</td></tr>';
                                break;
                            case '62':
                                echo 'class="skill_int long">Intermediate+</td></tr>';
                                break;
                            case '7':
                                echo 'class="skill_adv">Advanced</td></tr>';
                                break;
                            case '71':
                                echo 'class="skill_adv">Advanced-</td></tr>';
                                break;
                            case '72':
                                echo 'class="skill_adv">Advanced+</td></tr>';
                                break;
                            case '8':
                                echo 'class="skill_exp">Expert</td></tr>';
                                break;
                            case '81':
                                echo 'class="skill_exp">Expert-</td></tr>';
                                break;
                            case '82':
                                echo 'class="skill_exp">Expert+</td></tr>';
                                break;
                            case '9':
                                echo 'class="skill_world">World Class</td></tr>';
                                break;
                            case '10':
                                echo 'class="skill_cheater">&clubs; Cheater &clubs;</td></tr>';
                                $norating=1;
                                break;
                            case '11':
                                echo 'class="skill_pro long">&diams; Professional &diams;</td></tr>';
                                $norating=1;
                                break;
                            default:
                                break;
                        }
                        echo '</table>
                        <table id="player_stat">
                        <tr><th>Nickname:</th><td>'.str_replace(' ','&nbsp;',$player).'</td></tr>
                        <tr><th>IMP Average:</th><td>'.$imp_avg.'</td></tr>
                        <tr><th>MP Average:</th><td>'.$mp_avg.'</td></tr>
                        <tr><th>Number of IMP hands:</th><td>'.$imp_no_hands.'</td></tr>
                        <tr><th>Number of MP hands:</th><td>'.$mp_no_hands.'</td></tr>
                        <tr><th>Total hands:</th><td>'.$total_hands.'</td></tr>
                        <tr><th>Score without adjustment:</th><td>'.$pure_score.'</td></tr>
                        <tr><th>Adjustment:</th><td>'.$total_correction.'</td></tr>
                        <tr><th>Total score:</th><td>'.$total_score.'</td></tr>';

                        if ($norating==0){
                            echo '<tr><th>Rating:</th><td>'.$rating.'</td></tr>';
                        }
                        if ($level==10){
                            echo '<tr class="topborder"><td colspan="2">Yes, we know who is cheating on BBO...</td></tr>
                               <tr><td colspan="2">Please don\'t do that anymore.</td></tr>';
                        }
                        echo '</table>';

                        ##Upisuje u bazu ako nema nijedan rezultat
                        $sql_new = "SELECT * FROM players WHERE players.nickname='{$player}'";
                        $sql_new1 = "INSERT INTO players VALUES ('NULL','{$player}','{$imp_avg_fordb}','{$mp_avg_fordb}','{$imp_no_hands}','{$mp_no_hands}')";
                        if($res7 = qq($sql_new)){
                            if(mysql_num_rows($res7)==0){
                                qq($sql_new1);
                            }
                        }
                    }
                    
                    $sql_all_entries = "INSERT INTO all_entries VALUES ('NULL','{$player}','{$imp_avg_fordb}','{$mp_avg_fordb}','{$imp_no_hands}','{$mp_no_hands}','{$pure_score}','{$total_correction}','{$total_score}','{$rating}',NOW())";
                    qq($sql_all_entries);
                }
            }
            ?>
        </div>
        </div>
        </article>
        <footer>

        </footer>
   
    </body>
</html>
<?php
if(isset($_POST['submit'])){
//    $tmp=ob_get_contents();
//    ob_end_clean();
//    echo $tmp;
//    if(!$error)file_put_contents("cache/xxx-$name-xxx.htm",$tmp);
}
 
Odgovor na temu

[es] :: PHP :: Hosting blokirao nalog zbog ove skripte

[ Pregleda: 1174 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.