Likes Likes:  0
Resultaten 1 tot 6 van de 6
Geen
  1. #1
    suPHP 0.5.1 probleem
    Mentally unstable
    2.586 Berichten
    Ingeschreven
    27/06/03

    Locatie
    Rivierenland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 11058224
    Ondernemingsnummer: nvt

    Thread Starter

    suPHP 0.5.1 probleem

    Nadat ik suPHP van 0.3 naar 0.5.1 had geupgraded werkt een script van een klant niet meer.

    Het script houd statistieken bij van een gameserver en POST deze om de xx tijd naar onze server, waar een php deze data uitleest en vervolgens in een MySQL db opslaat.

    Voor de upgrade naar 0.5.1 werkte dit script perfect. Daarna deed het niets meer.

    De 2 dingen die gepost worden zijn: een txt bestand en een ID (om te achterhalen welke server het is en tevens ter auth.)

    Nu heb ik het bestand die de stats ontvangt gedebugged en bleek dat alleen de inhoud van de file ontvangen word (waarschijnlijk zelfs geincrypt) en de benodigde ID dus niet

    Heb ook niets bijzonders in de error logs kunnen vinden.
    Ben nu al een paar uur bezig geweest om het probleem te achterhalen.

    Heb geen flauw idee hoe het script aan de andere kant werkt. Alleen de config file is aanpasbaar.

  2. #2
    suPHP 0.5.1 probleem
    aktieve deelnemer
    2.782 Berichten
    Ingeschreven
    10/05/02

    Locatie
    Noordwest Holland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 37093085
    Ondernemingsnummer: nvt

    Post het script eens, kijk eens in je SuPHP log, etc. etc. Want met bovenstaande informatie kunnen wij echt niets.

  3. #3
    suPHP 0.5.1 probleem
    Mentally unstable
    2.586 Berichten
    Ingeschreven
    27/06/03

    Locatie
    Rivierenland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 11058224
    Ondernemingsnummer: nvt

    Thread Starter
    dat idee had ik al, vooruit dan

    babstats.cfg [deze staat dus op de gameserver]
    PHP Code:
    # ---------------------------------------
    # BAB.stats configuration file.
    # ---------------------------------------
    # Contains FTP and other configurations.
    #
    # Edit only if you know what you are
    # doing.
    # ---------------------------------------

    [BABSTATS]
    FtpHost=
    FtpDirectory=
    FtpUserName=
    FtpPassWord=
    FtpPort=21
    AutoUpload
    =TRUE
    TrackHostStats
    =TRUE
    ServerIdCode
    =eenrandomid
    OutputFile
    =stats.txt
    OutputLog
    =FALSE
    Archive
    =TRUE
    MinPlayers
    =2
    HttpHost
    =website.ltd
    HttpPath
    =map/stats
    HttpStatusScript
    =status.php
    HttpUploadScript
    =httpupload.php
    UpdateStatus
    =TRUE
    UploadType
    =2 
    getvars.php
    PHP Code:
    <?
    /*
     * Copyright (c) 2002, Tomas Stucinskas a.k.a Baboon
     * All rights reserved.
     *
     * Redistribution and use with or without modification, are
     * permitted provided that the following conditions are met:
     *
     * Redistributions must retain the above copyright notice.
     * File readme.htm must not be removed from the package.
     *
     * Module name   : getvars.php
     * Author        : Tomas Stucinskas a.k.a Baboon
     * E-mail        : [email]baboon@ai-hq.com[/email]
     */

    if($HTTP_POST_VARS) {
        foreach($HTTP_POST_VARS as $Key=>$Value) {
            $$Key = $Value;
        }
    }

    if($HTTP_COOKIE_VARS) {
        foreach($HTTP_COOKIE_VARS as $Key=>$Value) {
            $$Key = $Value;
        }
    }

    if($HTTP_GET_VARS) {
        foreach($HTTP_GET_VARS as $Key=>$Value) {
            $$Key = $Value;
        }
    }

    if($HTTP_SERVER_VARS) {
        foreach($HTTP_SERVER_VARS as $Key=>$Value) {
            $$Key = $Value;
        }
    }

    if($HTTP_ENV_VARS) {
        foreach($HTTP_ENV_VARS as $Key=>$Value) {
            $$Key = $Value;
        }
    }

    ?>
    httpupload.php
    PHP Code:
    <?
    /*
     * Copyright (c) 2002, Tomas Stucinskas a.k.a Baboon
     * All rights reserved.
     *
     * Redistribution and use with or without modification, are
     * permitted provided that the following conditions are met:
     *
     * Redistributions must retain the above copyright notice.
     * File readme.htm must not be removed from the package.
     *
     * Module name   : httpupload.php
     * Author        : Tomas Stucinskas a.k.a Baboon
     * E-mail        : [email]baboon@ai-hq.com[/email]
     */


    require "getvars.php";
    require "config.php"; // staat alleen db info in
    require "gametypes.php"; // staan alleen wat arrays in die gevuld worden
    require "weapons.php"; // staan alleen wat arrays in die gevuld worden

    function cmp($a, $b) {   
       if($a["score"] == $b["score"]) return ($a["kills"] > $b["kills"]) ? -1 : 1;
       return ($a["score"] > $b["score"]) ? -1 : 1;
    }

    $tables = array("games", "imported", "modules", "ranks", "scores", "servers", "squads", "stats");
    foreach($tables as $name) {
        ${$name."_table"} = $tablepre."_".$name;
    }

    mysql_pconnect($dbhost, $dbusername, $dbuserpw) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());


    if(isset($file) && isset($idcode)) {
        $file = base64_decode($file);
        $idcode = base64_decode($idcode);
        $query = mysql_query("SELECT * FROM $servers_table WHERE idcode='$idcode'") or die(mysql_error());
        if(mysql_num_rows($query) == 0) {
            echo "i_n_v_a_l_i_d_i_d_c_o_d_e";
            exit;
        }
        
    /*>>>>>> Taken from functions.php ImportStats(); <<<<<<<*/

        $statslines=explode("\n", $file);
        $numlines=count($statslines);
        
        $status = "blank";

        for($i = 0; $i < $numlines; $i++) {

            $linedata = explode("__&__", $statslines[$i]);
            $tag = trim($linedata[0]);
            if($tag == "GameStart") $status = "game_start_line";
            else if($tag == "GameEnd") $status = "game_end_line";
            else if($tag == "Player") $status = "player_line";
            else if($tag == "LogStart") $status = "log_start_line";
            else if($tag == "LogEnd") $status = "log_end_line";
            else if($tag == "Message") $status = "message_line";
            else $status = "blank";

            if($status == "blank") {}

            if($status == "log_start_line") {}

            if($status == "message_line") {}

            if($status == "log_end_line") {}

            if($status == "game_start_line") {
                $linedata = explode("__&__", $statslines[$i]);
                $gameversion = $linedata[1];
                $serveridcode = $linedata[2];
                $servername = $linedata[3];
                $mapname = $linedata[4];
                $dedicated = $linedata[5];
                $gametype = $linedata[6];
                $winner = $linedata[7];
                $datetime = $linedata[8];
                $datetime = trim($datetime);
                $gameversion = explode(" ", $gameversion);
                $gameversion = $gameversion[0];
                $playersnum = 0;
                $filerejected = 0;
                $players = Array();

                $datecheckquery = mysql_query("SELECT * FROM $imported_table WHERE date='$datetime'") or die(mysql_error());
                $serveridcheckquery = mysql_query("SELECT * FROM $servers_table WHERE idcode='$serveridcode'") or die(mysql_error());
                if(mysql_num_rows($datecheckquery) >= 1 || mysql_num_rows($serveridcheckquery) == 0) {
                    $filerejected = 1;
                } else {
                    $serverrow = mysql_fetch_array($serveridcheckquery);
                    $serverid = $serverrow[id];
                    $mapname = str_replace("'", "", $mapname);
                    $mapname = str_replace("#", "", $mapname);
                    $mapname = str_replace("??", "", $mapname);
                    $mapname = str_replace("\\", "", $mapname);
                    $servername = str_replace("'", "", $servername);
                    $servername = str_replace("#", "", $servername);
                    $servername = str_replace("\\", "", $servername);
                    $mapname = trim($mapname);
                    $servername = trim($servername);
                    $servername = ereg_replace("~[0-9]", "", $servername);
                    $mapname = ereg_replace("~[0-9]", "", $mapname);

                    $gametype = $gt_map[$gameversion][$gametype];
                    if($gametype == 0) {$gt = "coop";}
                    if($gametype == 1) {$gt = "dm";}
                    if($gametype == 2) {$gt = "tdm";}
                    if($gametype == 3) {$gt = "koth";}
                    if($gametype == 4) {$gt = "tkoth";}
                    if($gametype == 5) {$gt = "ctf";}
                    if($gametype == 6) {$gt = "sd";}
                    if($gametype == 7) {$gt = "ad";}
                    if($gametype == 8) {$gt = "fb";}

                    if($winner == 0) {$who_won = "draw";}
                    if($winner == 1) {$who_won = "blue_won";}
                    if($winner == 2) {$who_won = "red_won";}
                    if($winner == 3) {$who_won = "yellow_won";}
                    if($winner == 4) {$who_won = "violet_won";}

                    $gt_games = $gt."_games";
                    $avg_gt_rank = "avg_".$gt."_rank";
                    $total_gt_score = "total_".$gt."_score";
                    $top_gt_score = "top_".$gt."_score";
                  
                    $query = mysql_query("INSERT INTO $imported_table VALUES ('$datetime')") or die(mysql_error());
                    $query = mysql_query("INSERT INTO $games_table VALUES ('', '$serverid', '$datetime', '$servername', '$mapname', '$winner', '$gametype', '$gameversion')") or die(mysql_error());
                    $query = mysql_query("UPDATE $servers_table SET $gt_games=$gt_games+1 WHERE idcode='$serveridcode'") or die(mysql_error());
                    if($gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $servers_table SET $who_won=$who_won+1 WHERE idcode='$serveridcode'") or die(mysql_error());}
                    $gameidquery = mysql_query("SELECT * FROM $games_table WHERE date='$datetime'") or die(mysql_error());
                    $gamerow = mysql_fetch_array($gameidquery);
                    $gameid = $gamerow[id];
                    
                }
            }

            if($status == "player_line") {
                if($filerejected == 0) {
                    $linedata = explode("__&__", $statslines[$i]);
                    $playerdata = explode("_", $linedata[1]);
                    $name = $linedata[2];
                    $name = str_replace("'", "", $name);
                    $name = str_replace("#", "", $name);
                    $name = str_replace("\\", "", $name);
                    $name = trim($name);
                    if($name != "") {
                        $players[$playersnum][score] = $playerdata[0];
                        $players[$playersnum][kills] = $playerdata[1];
                        $players[$playersnum][deaths] = $playerdata[2];
                        $players[$playersnum][headshots] = $playerdata[3];
                        $players[$playersnum][knifings] = $playerdata[4];
                        $players[$playersnum][medicsaves] = $playerdata[5];
                        $players[$playersnum][flagspicked] = $playerdata[6];
                        $players[$playersnum][flagssaved] = $playerdata[7];
                        $players[$playersnum][murders] = $playerdata[8];
                        $players[$playersnum][suicides] = $playerdata[9];
                        $players[$playersnum][team] = $playerdata[10];
                        $players[$playersnum][shots] = $playerdata[11];
                        $players[$playersnum][weapon] = $playerdata[12];
                        $players[$playersnum][name] = $name;
                        $playersnum++;
                    }
                }
            }

            if($status == "game_end_line") {
                usort($players, "cmp");
                for($j = 0; $j < $playersnum; $j++) {
                    $score = $players[$j][score];
                    $kills = $players[$j][kills];
                    $deaths = $players[$j][deaths];
                    $headshots = $players[$j][headshots];
                    $knifings = $players[$j][knifings];
                    $medicsaves = $players[$j][medicsaves];
                    $flagspicked = $players[$j][flagspicked];
                    $flagssaved = $players[$j][flagssaved];
                    $murders = $players[$j][murders];
                    $suicides = $players[$j][suicides];
                    $team = $players[$j][team];
                    $shots = $players[$j][shots];
                    $weapon = $players[$j][weapon];
                    $name = $players[$j][name];
                    $rank = $j+1;
                    $weaponkills = $kills - $knifings;
                    $query = mysql_query("SELECT * FROM $stats_table WHERE player_name='$name'") or die(mysql_error());
                    if($playerrow = mysql_fetch_array($query)) {
                        $pid = $playerrow[id];
                    } else {
                        $query = mysql_query("INSERT INTO $stats_table VALUES ('', '$name', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '-1')") or die(mysql_error());
                        $query = mysql_query("SELECT * FROM $stats_table WHERE player_name='$name'") or die(mysql_error());
                        $playerrow = mysql_fetch_array($query);
                        $pid = $playerrow[id];
                    }
                    if($gt == "ctf") {$query = mysql_query("UPDATE $stats_table SET total_ctf_flags_saved=total_ctf_flags_saved+'$flagssaved', total_ctf_flags_picked=total_ctf_flags_picked+'$flagspicked' WHERE id='$pid'") or die(mysql_error());}
                    if($gt == "fb") {$query = mysql_query("UPDATE $stats_table SET total_fb_flags_picked=total_fb_flags_picked+'$flagspicked' WHERE id='$pid'") or die(mysql_error());}
                    if($team == 1 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_blue=team_blue+1 WHERE id='$pid'") or die(mysql_error());}
                    if($team == 2 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_red=team_red+1 WHERE id='$pid'") or die(mysql_error());}
                    if($team == 3 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_yellow=team_yellow+1 WHERE id='$pid'") or die(mysql_error());}
                    if($team == 4 && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_violet=team_violet+1 WHERE id='$pid'") or die(mysql_error());}
                    if($team == $winner && $gt != "dm" && $gt != "koth") {$query = mysql_query("UPDATE $stats_table SET team_games_won=team_games_won+1 WHERE id='$pid'") or die(mysql_error());}

                    $weapon = $wpn_map[$gameversion][$weapon];
                    $weapontype = $wpn_type[$weapon];

                    if(!isset($weapontype) || $weapontype == "") $weapontype = "none";
                    
                    $wepaontotalkills = "total_".$weapontype."_kills";
                    $wepaontotaluses = "total_".$weapontype."_uses";
                    if($weapontype != "none") {
                        $query = mysql_query("UPDATE $stats_table SET $wepaontotalkills=$wepaontotalkills+$weaponkills,
                                                                      $wepaontotaluses=$wepaontotaluses+$shots 
                                                                      WHERE id='$pid'") or die(mysql_error());
                    }
                    $query = mysql_query("UPDATE $stats_table SET total_games=total_games+1,
                                                                  $gt_games=$gt_games+1,
                                                                  $avg_gt_rank=($avg_gt_rank*($gt_games-1)+($rank))/($gt_games),
                                                                  last_played=IF(last_played<'$datetime','$datetime',last_played),
                                                                  total_kills=total_kills+$kills,
                                                                  total_deaths=total_deaths+$deaths,
                                                                  total_knives=total_knives+$knifings,
                                                                  total_headshots=total_headshots+$headshots,
                                                                  total_suicides=total_suicides+$suicides,
                                                                  total_medsaves=total_medsaves+$medicsaves,
                                                                  total_murders=total_murders+$murders,
                                                                  top_knives=IF(top_knives<$knifings,$knifings,top_knives),
                                                                  top_kd_ratio=IF(top_kd_ratio<IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths),IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths),top_kd_ratio),
                                                                  top_medsaves=IF(top_medsaves<$medicsaves,$medicsaves,top_medsaves),
                                                                  top_kd=IF(top_kd<($kills-$deaths),$kills-$deaths,top_kd),
                                                                  $total_gt_score=$total_gt_score+$score,
                                                                  $top_gt_score=IF($top_gt_score<$score,$score,$top_gt_score),
                                                                  avg_kd_ratio=(avg_kd_ratio*(total_games-1)+IF($kills=0,1,$kills)/IF($deaths=0,1,$deaths))/(total_games)
                                                                  WHERE id='$pid'") or die(mysql_error());
                    $query = mysql_query("INSERT INTO $scores_table VALUES ('', '$gameid', '$pid', '$rank', '$score', '$kills', '$deaths', '$headshots', '$knifings', '$team', '$weapon')") or die(mysql_error());
                }
            }
        }
        
    /*>>>>>> End <<<<<<<*/

        echo "u_p_l_o_a_d_s_u_c_c_e_s_s";
    } else {
        echo "n_o_f_i_l_e_u_p_l_o_a_d_e_d";
    }    
    ?>
    status.php
    PHP Code:
    <?
    /*
     * Copyright (c) 2002, Tomas Stucinskas a.k.a Baboon
     * All rights reserved.
     *
     * Redistribution and use with or without modification, are
     * permitted provided that the following conditions are met:
     *
     * Redistributions must retain the above copyright notice.
     * File readme.htm must not be removed from the package.
     *
     * Module name   : status.php
     * Author        : Tomas Stucinskas a.k.a Baboon
     * E-mail        : [email]baboon@ai-hq.com[/email]
     */

    require "getvars.php";
    require "config.php";

    $tables = array("games", "imported", "modules", "ranks", "scores", "servers", "squads", "stats");
    foreach($tables as $name) {
        ${$name."_table"} = $tablepre."_".$name;
    }

    mysql_pconnect($dbhost, $dbusername, $dbuserpw) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());

    if(isset($idcode) && isset($maxplayers) && isset($numplayers) && isset($mapname) && isset($servername) && isset($dedicated) && isset($gametype) && isset($game)) {
        $game = base64_decode($game);
        $servername = base64_decode($servername);
        $mapname = base64_decode($mapname);
        $idcode = base64_decode($idcode);
        $mapname = str_replace("'", "", $mapname);
        $mapname = str_replace("#", "", $mapname);
        $mapname = str_replace("??", "", $mapname);
        $mapname = str_replace("\\", "", $mapname);
        $mapname = ereg_replace("~[0-9]", "", $mapname);
        $servername = str_replace("'", "", $servername);
        $servername = str_replace("#", "", $servername);
        $servername = str_replace("\\", "", $servername);
        $servername = ereg_replace("~[0-9]", "", $servername);
        $query = mysql_query("SELECT * FROM $servers_table WHERE idcode='$idcode'") or die(mysql_error());
        if(mysql_num_rows($query) == 0) {
            echo "i_n_v_a_l_i_d_i_d_c_o_d_e";
            exit;
        }
        if(getenv(HTTP_CLIENT_IP)) {
            $ip = getenv(HTTP_CLIENT_IP);
        } elseif(getenv(HTTP_X_FORWARDED_FOR)) {
            $ip = getenv(HTTP_X_FORWARDED_FOR);
        } else {
            $ip = getenv(REMOTE_ADDR);
        }
        $thetime = time();
        mysql_query("UPDATE $servers_table SET ip='$ip', maxplayers='$maxplayers', numplayers='$numplayers', mapname='$mapname', servername='$servername', dedicated='$dedicated', gametype='$gametype', last_update='$thetime', game='$game' WHERE idcode='$idcode'") or die(mysql_error());
        echo "s_t_a_t_u_s_u_p_d_a_t_e_d";
    } else {
        echo "d_a_t_a_m_i_s_s_i_n_g";

    }

    ?>
    in suphp logs kan ik dus niets bijzonders vinden

  4. #4
    suPHP 0.5.1 probleem
    SWIS!
    948 Berichten
    Ingeschreven
    29/02/04

    Locatie
    Dordrecht / Leiden

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: 280834450000
    Ondernemingsnummer: nvt

    Misschien een vBulleting bug?

    $servername = str_replace("\", "", $servername);
    tot 2 maal lijkt een quote niet ge-escaped.

  5. #5
    suPHP 0.5.1 probleem
    Mentally unstable
    2.586 Berichten
    Ingeschreven
    27/06/03

    Locatie
    Rivierenland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 11058224
    Ondernemingsnummer: nvt

    Thread Starter
    bug in vBulletin ja. In orgineel staat wel \\

  6. #6
    suPHP 0.5.1 probleem
    Mentally unstable
    2.586 Berichten
    Ingeschreven
    27/06/03

    Locatie
    Rivierenland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: 11058224
    Ondernemingsnummer: nvt

    Thread Starter
    ok, 99% zeker dat het een bug in suPHP 0.5.1 was.

    dingen die in een keer niet meer bleken te werken (sommige querys etc) werken nu in een keer wel met suPHP 0.5.2

    raad ook iedereen die suPHP heeft te upgraden

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics