#2 Re: Ostatní problémy » [Vyřešeno] XenForo - nefunkční instalace » 2014-01-01 10:35:17

Trade napsal:

I v prohlížeči Google Chrome by instalace systému měla být funkční (otestováno).

Mohl bych se zeptat, jakou využíváte verzi Chromu?

Vlastním nejnovější verzi (31.0.1650.63 m) a stránku se mi nedaří zobrazit. Při zadání adresy a potvrzení se karta prohlížeče tváří, že stránku načetla, ale stránka se nezobrazí. Vizuálně tam zůstane nový panel bez možnosti jakékoliv interakce a po delší době to někdy ohlásí, že stránka nereaguje.

U jiných stránek (dokonce i těch, které také využívají XenForo) tento problém nemám. Rozšíření nepoužívám žádná.

Zkoušel jsem odstranit historii, cookies, přeinstalovat Chrome (i přes CCleaner) a problém stále přetrvává. Chtěl bych se zeptat, jestli Vás napadá nějaká příčina a případně i řešení toho problému.

#3 Re: Ostatní problémy » [Vyřešeno] XenForo - nefunkční instalace » 2013-12-31 16:30:51

Problém vyřešen.
Nakonec se jednalo a naprostou banalitu - prohlížeč. V Chromu, který využívám, instalace nefunguje, ale na Firefoxu ano.

Omlouvám se za zdržování a prosím lock. smile

#4 Re: Ostatní problémy » [Vyřešeno] XenForo - nefunkční instalace » 2013-12-31 16:28:23

Problém je ten, že po přesměrování na další stranu vidím stále stejnou obrazovku (http://imgup.cz/images/2013/12/31/nZzvR.png) a nemůžu na ní cokoli dělat.

#5 Ostatní problémy » [Vyřešeno] XenForo - nefunkční instalace » 2013-12-31 15:51:09

Halginzz
Odpovědi: 7

Zdravím,

rád bych se zeptal, zda-li nemá někdo ze zde přítomných uživatelé nějaké zkušenosti (případně informace) o funkčnosti XenFora zde na Endoře. Dnes jsem přes FTP nahrál všechna data do adresáře webu a najel na instalaci, kde se vyskytl problém.

Po načtení stránky (xxxxxxx.xx/install/index.php?install/) mi XenForo ohlásilo, že hosting splňuje všechny potřebné podmínky (konfigurace) pro instalaci. Klikl jsem tedy na tlačítko Begin Installation a následně mě to přesměrovalo na další stránku (xxxxxxx.xx/install/index.php?install/step/1). Na další stránce již nešlo pokračovat v instalaci, jelikož tam nebyla možná žádná interakce s webem a na obrazovce jsem měl stále vizuálně první stránku (xxxxxxx.xx/install/index.php?install/).

Zkoušel jsem hledat, zda-li se někdo nesetkal s podobným problémem a nedošel k řešení, avšak bezúspěšně. Proto se obracím na vás a prosím vás o radu, jak tento problém vyřešit.



Příloha
Instalace

#6 Re: Tvorba webu » Problém s kodem » 2012-03-27 18:25:54

Potřeba je rcon.lib v ftp a povolená funkce fsockopen().

#7 Re: Tvorba webu » Problém s kodem » 2012-03-27 12:19:47

Taky jsem si všiml že u některých buňek se zobrazuje správně délka hraní hráče a počet zabití.

#8 Re: Tvorba webu » Problém s kodem » 2012-03-27 05:48:45

Tak jsem to upravil jak jsi mi to napsal, ale pořád se to nějak divně zobrazuje (viz. odkaz nahoře).

Já bych to řekl asi takto: rcon.lib komunikuje se serverem a ten kod na webu z něho vypisuje informace.
Pod rcon.lib se skývá tohle:

<?php

// ************************************************************************
//PHPrcon - PHP script collection to remotely administrate and configure Halflife and HalflifeMod Servers through a webinterface
//Copyright (C) 2002  Henrik Beige
//
//This library is free software; you can redistribute it and/or
//modify it under the terms of the GNU Lesser General Public
//License as published by the Free Software Foundation; either
//version 2.1 of the License, or (at your option) any later version.
//
//This library is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//Lesser General Public License for more details.
//
//You should have received a copy of the GNU Lesser General Public
//License along with this library; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
// ************************************************************************

class Rcon
{

  var $challenge_number;
  var $connected;
  var $server_ip;
  var $server_password;
  var $server_port;
  var $socket;


  //Constructor
  function Rcon()
  {
    $this->challenge_number = 0;
    $this->connected = true;
    $this->server_password = "";
    $this->server_password = 27015;
    $this->server_password = "";
  }


  //Open socket to gameserver
  function Connect($server_ip, $server_port, $server_password = "")
  {
    //store server data
    $this->server_ip = gethostbyname($server_ip);
    $this->server_port = $server_port;
    $this->server_password = $server_password;

    //open connection to gameserver
    $fp = fsockopen("udp://" . $this->server_ip, $this->server_port, $errno, $errstr, 10);
    stream_set_timeout($fp, 1);

    if ($fp) {
      $this->connected = true;
    } else {
      $this->connected = false;
      return false;
    }

    //store socket
    $this->socket = $fp;

    //return success
    return true;

  } //function Connect($server_ip, $server_port, $server_password = "")


  //Close socket to gameserver
  function Disconnect()
  {
    //close socket
    fclose($this->socket);
    $connected = false;

  } //function Disconnect()


  //Is there an open connection
  function IsConnected()
  {
    return $this->connected;
  } //function IsConnected()


  //Get detailed player info via rcon
  function ServerInfo()
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //get server information
    $status = $this->RconCommand("status");

    //If there is no open connection return false
    //If there is bad rcon password return "Bad rcon_password."
    if(!$status || trim($status) == "Bad rcon_password.")
      return $status;

   //format global server info
    $line = explode("\n", $status);
    $map = substr($line[3], strpos($line[3], ":") + 1);
    $players = trim(substr($line[4], strpos($line[4], ":") + 1));
    $active = explode(" ", $players);

    $result["ip"] = trim(substr($line[2], strpos($line[2], ":") + 1));
    $result["name"] = trim(substr($line[0], strpos($line[0], ":") + 1));
    $result["map"] = trim(substr($map, 0, strpos($map, "at:")));
    $result["mod"] = "Counterstrike " . trim(substr($line[1], strpos($line[1], ":") + 1));
    $result["game"] = "Halflife";
    $result["activeplayers"] = $active[0];
    $result["maxplayers"] = substr($active[2], 1);

    //format player info
    for($i = 1; $i <= $result["activeplayers"]; $i++)
    {
      //get possible player line
      $tmp = $line[$i + 6];

      //break if no more players are left
      if(substr_count($tmp, "#") <= 0)
        break;

      //name
      $begin = strpos($tmp, "\"") + 1;
      $end = strrpos($tmp, "\"");
      $result[$i]["name"] = substr($tmp, $begin, $end - $begin);
      $tmp = trim(substr($tmp, $end + 1));

      //ID
      $end = strpos($tmp, " ");
      $result[$i]["id"] = substr($tmp, 0, $end);
      $tmp = trim(substr($tmp, $end));

      //WonID
      $end = strpos($tmp, " ");
      $result[$i]["wonid"] = substr($tmp, 0, $end);
      $tmp = trim(substr($tmp, $end));

      //Frag
      $end = strpos($tmp, " ");
      $result[$i]["frag"] = substr($tmp, 0, $end);
      $tmp = trim(substr($tmp, $end));

      //Time
      $end = strpos($tmp, " ");
      $result[$i]["time"] = substr($tmp, 0, $end);
      $tmp = trim(substr($tmp, $end));

      //Ping
      $end = strpos($tmp, " ");
      $result[$i]["ping"] = substr($tmp, 0, $end);
      $tmp = trim(substr($tmp, $end));

      //Loss
      $tmp = trim(substr($tmp, $end));

      //Adress
      $result[$i]["adress"] = $tmp;

    } //for($i = 1; $i < $result["activeplayers"]; $i++)

    //return formatted result
    return $result;

  } //function ServerInfo()


  //Get all maps in all directories
  function ServerMaps($pagenumber = 0)
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //Get list of maps
    $maps = $this->RconCommand("maps *", $pagenumber);

    //If there is no open connection return false
    //If there is bad rcon password return "Bad rcon_password."
    if(!$maps || trim($maps) == "Bad rcon_password.")
      return $maps;

    //Split Maplist in rows
    $line = explode("\n", $maps);
    $count = sizeof($line) - 4;

    //format maps
    for($i = 0; $i <= $count; $i++)
    {
      $text = $line[$i];

      //at directory output sorted map list
      if(strstr($text, "Dir:"))
      {
        //reset counter
        $mapcount = 0;

        //parse directory name
        $directory = strstr($text, " ");

      } //if(strstr($text, "Dir:"))

      else if(strstr($text, "(fs)"))
      {
        //parse mappath
        $mappath = strstr($text, " ");

        //parse mapname
        //if no "/" is included in the "maps * " result
        if(!($tmpmap = strrchr($mappath, "/")))
          $tmpmap = $mappath;

        //parse mapname without suffix (.bsp)
        $result[$directory][$i] = substr($tmpmap, 1, strpos($tmpmap, ".") - 1);

      } //else if(strstr($text, "(fs)"))

    } //for($i = 1; $i <= $count; $i++)


    //return formatted result
    return $result;

  } //function ServerMaps()


  //Get server info via info protocoll
  function Info()
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //send info command
    //$command = "\xff\xff\xff\xffinfo\x00";
    //$command = "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00";
    $command = "\xFF\xFF\xFF\xFFTSource Engine Query\0\x00";
    $buffer = $this->Communicate($command);

    //If no connection is open
    if(trim($buffer) == "")
    {
//      $this->connected = false;
      return false;
    }

    //build info array
    $buffer = explode("\x00", $buffer);

    $result["ip"] = $buffer[0];
    $result["name"] = $buffer[1];
    $result["map"] = $buffer[2];
    $result["mod"] = $buffer[3];
    $result["game"] = $buffer[4];
    if (trim($buffer[5]) == "") {
      $result["activeplayers"] = "0";
      $result["maxplayers"] = ord($buffer[6][0]);
    } else {
      $result["activeplayers"] = (strlen($buffer[5]) > 1)?ord($buffer[5][0]):"0";
      $result["maxplayers"] = (strlen($buffer[5]) > 1)?ord($buffer[5][1]):"0";
    }

    //return formatted result
    return $result;

  } //function Info()


  //Get players via info protocoll
  function Players()
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //send players command
    $command = "\xFF\xFF\xFF\xFFU\x00";
    $buffer = $this->Communicate($command);

    //If no connection is open
    if(trim($buffer) == "")
    {
      // second try with different command for the rest of the servers
      if($this->challenge_number == "")
        $this->getChallengeNumber();
      $command = "\xff\xff\xff\xff\x55".$this->challenge_number;
      $buffer = $this->Communicate($command);

      if(trim($buffer) == "") {
//        $this->connected = false;
        return false;
      }
    }

    //get number of online players
    $buffer = substr($buffer, 1);

    //build players array
    for($i = 1; strlen($buffer) > 0; $i++)
    {
      //playername
      $tmp = strpos($buffer, "\x00");
      $result[$i]["name"] = substr($buffer, 1, $tmp - 1);

      //frag count
      $result[$i]["frag"] = ord($buffer[$tmp + 1]) +
                           (ord($buffer[$tmp + 2]) << 8) +
                           (ord($buffer[$tmp + 3]) << 16) +
                           (ord($buffer[$tmp + 4]) << 24);

      //online time
      $tmptime = @unpack('ftime', substr($buffer, $tmp + 5, 4));
      $result[$i]["time"] = date('i:s', round($tmptime['time'], 0) + 82800);

      $buffer = substr($buffer, $tmp + 9);
    } //for($i = 1; $i <= $count; $i++)

    //return formatted result
    return $result;

  } //function Players()


  //Get server rules via info protocoll
  function ServerRules()
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //build info command
    $command = "\xFF\xFF\xFF\xFFV\x00";
    $buffer = $this->Communicate($command);

    //If no connection is open
    if(trim($buffer) == "")
    {
      // second try with different command for the rest of the servers
      if($this->challenge_number == "")
        $this->getChallengeNumber();
      $command = "\xff\xff\xff\xff\x56".$this->challenge_number;
      $buffer = $this->Communicate($command);

      if(trim($buffer) == "") {
//        $this->connected = false;
        return false;
      }
    }

    //seperate rules
    $buffer = substr($buffer, 2);
    $buffer = explode("\x00", $buffer);
    $buffer_count = floor(sizeof($buffer) / 2);

    //build rules array
    for($i = 0; $i < $buffer_count; $i++)
    {
      $result[$buffer[2 * $i]] = $buffer[2 * $i + 1];
    }

    //sort rules
    ksort($result);

    //return formatted result
    return $result;

  } //function ServerRules()


  //Execute rcon command on open socket $fp
  function RconCommand($command, $pagenumber = 0, $single = true)
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //get challenge number
    if($this->challenge_number == "")
    {
      //send request of challenge number
      $challenge = "\xff\xff\xff\xffchallenge rcon\n";
      $buffer = $this->Communicate($challenge);

      //If no connection is open
      if(trim($buffer) == "")
      {
        $this->connected = false;
        return false;
      }

      //get challenge number
      $buffer = explode(" ", $buffer);
      $this->challenge_number = trim($buffer[2]);
    }

    //build command
    $command = "\xff\xff\xff\xffrcon $this->challenge_number \"$this->server_password\" $command\n";

    //get specified page
    $result = "";
    $buffer = "";
    while($pagenumber >= 0)
    {
      //send rcon command
      $buffer .= $this->Communicate($command);

      //get only one package
      if($single == true)
        $result = $buffer;

      //get more then one package and put them together
      else
        $result .= $buffer;

      //clear command for higher iterations
      $command = "";

      $pagenumber--;

    } //while($pagenumber >= 0)

    //return unformatted result
    return trim($result);

  } //function RconCommand ($command)


  //Communication between PHPrcon and the Gameserver
  function Communicate($command)
  {
    //If there is no open connection return false
    if(!$this->connected)
      return $this->connected;

    //write command on socket
    if($command != "")
      fputs($this->socket, $command, strlen($command));

    //get results from server
    $buffer = fread ($this->socket, 1);
    $status = socket_get_status($this->socket);
    if ($status["unread_bytes"] > 0) {
      $buffer .= fread($this->socket, $status["unread_bytes"]);
    }

    //If there is another package waiting
    if(substr($buffer, 0, 4) == "\xfe\xff\xff\xff")
    {
      //get results from server
      $buffer2 = @fread ($this->socket, 1);
      $status = socket_get_status($this->socket);
      $buffer2 .= @fread($this->socket, $status["unread_bytes"]);

      //If the second one came first
      if(strlen($buffer) > strlen($buffer2))
        $buffer = substr($buffer, 14) . substr($buffer2, 9);
      else
        $buffer = substr($buffer2, 14) . substr($buffer, 9);

    }

    //In case there is only one package
    else
      $buffer = substr($buffer, 5);


    //return unformatted result
    return $buffer;

  } //function Communicate($buffer)


  // Get challenge number using A2S_SERVERQUERY_GETCHALLENGE for use with A2S_PLAYERS and A2S_RULES
  function getChallengeNumber()
  {
    //send request of challenge number
    $challenge = "\xff\xff\xff\xff\x57";
    $buffer = $this->Communicate($challenge);

    //If no connection is open
    if(trim($buffer) == "")
    {
      $this->connected = false;
      return false;
    }

    $this->challenge_number = $buffer;
  } // function getChallengeNumber()

}
?>

#9 Re: Tvorba webu » Problém s kodem » 2012-03-26 18:27:54

Dobrý den, neumím dokonale php, ale sepsal jsem si kod, který mi vypisuje údaje ze serveru. Bohužel je tu ale. To ale je, že se to nějak divně zobrazuje a v každé buňce tabulky se zobrazují jména všech hráčů a nějaké divné znaky. Chtěl bych se zeptat jestli v kodu vydíte nějakou chybu, které by to způsobovala.

Ukázka: http://igp.php5.cz/igpclassic.php

Kod:

<?php
require("rcon.lib.php");

$server_ip = "81.0.217.176";
$server_port = "27629";

$rcon = new Rcon();
$rcon->connect($server_ip, $server_port);
$server = $rcon->Info();
$player = $rcon->Players();

?>


<html>
	<head>
	</head>

	<body>
<body bgcolor="#212121">
<font color="ffffff">

IP: <?php echo $server_ip; ?>:<?php echo $server_port; ?><br>
Mapa: <?php echo $server["map"]; ?><br>
Hráči: <?php echo $server["activeplayers"] ?>/<?php echo $server["maxplayers"] ?><br>

<br>

<table class="aligncenter" border="0" cellspacing="0" cellpadding="0" width="550"><colgroup> <col width="450"></col> <col width="60"></col> <col width="40"></col> </colgroup><tbody>
<tr bgcolor="191919">
<td width="390" align="left"><span style="color: #888888;">Online hráči</span></td>
<td width="100" align="left"><span style="color: #888888;">Doba hraní</span></td>
<td width="60" align="left"><span style="color: #888888;">Skore</span></td>
</tr>

<?php
for ($i = 1; $i <= $server["activeplayers"]; $i++) {
  if (isset($player[$i])) {
?>

<tr bgcolor="2c2c2c">
<td width="390" align="left"><span style="color: #888888;"><?php echo htmlentities($player[$i]["name"]); ?></span></td>
<td width="100" align="left"><span style="color: #888888;"><?php echo $player[$i]["time"]; ?></span></td>
<td width="60" align="left"><span style="color: #888888;"><?php echo $player[$i]["frag"]; ?></span></td>
</tr>
</tbody>

<?php
  }
}
?>

</table>

</font>
	</body>
</html>

#10 Re: Tvorba webu » Server status » 2012-03-25 12:55:58

PHP podporuje, zkusím to přes ten script a také zkusím kontaktovat gametracker. Taky bych se chtěl zeptat jestli neznáte nějakou ukázku takového scriptu? Nevím jestli myslíte ten, který zde nefunguje s "fsockopen()" nebo jiný.
Děkuji za pomoc

#11 Re: Tvorba webu » Server status » 2012-03-24 20:42:03

Dobrý den
Hledal sem na foru a dočetl jsem se, že je zakázána komunikace s UDP porty. Chtěl bych se zeptat jestli neznáte způsob (kromě gametracker) jak by se dal vytvořit v php status server? Jedná se konkrétně o Counter Strike 1.6 server. Potřebuji jenom status online / offline.
Kdyby to šlo udělat pouze přes Gametracker, chtěl bych se zeptat jestli by šlo udělat pouze online / offline, nepotřebuji výpis hráčů, atd.
Děkuji za odpověď

#12 Re: Wordpress » WP - Server Status » 2012-03-04 14:23:53

Díky, kod sem si prohlížel, ale tohle sem přehlídnul, díky.

#13 Re: Wordpress » WP - Server Status » 2012-03-04 14:07:10

Dobrý den, používám plugin WP - Server status, ale je tam možnost přidat pouze 2 servery, v php se moc nevyznám, proto se chci zeptat jestli někdo neví jak by šel přidat i 3. server.
Díky za odpověď

#14 Re: Wordpress » Komentáře » 2012-02-29 15:15:05

Díky, zkusím to.

//Edit: Díky, funguje to.

#15 Re: Wordpress » Komentáře » 2012-02-29 14:30:37

Dobrý den, chci se zeptat jestli někdo nevíte jak zrušit zobrazování komentářů u stránek, ale chci aby u příspěvků zůstaly. Jediné co mě napadá to nějak smazat z kódu, ale nevím jak.
Předem díky za odpověď

Zápatí

Založeno na FluxBB | CZ a SK