PHP Skript -> V čem je problém?

Technická podpora pro naše hostované weby
Message
Autor
marcobox
Příspěvky: 26
Registrován: 26 črc 2013, 10:12
Reputation: 0

PHP Skript -> V čem je problém?

#1 Příspěvekod marcobox » 03 zář 2013, 20:57

Zdravím,

už několik týdnů zápasím s PHP Skriptem.. už opravdu nevím, co dál.. poraďte prosím :?

mobilniplatby.php:
Spoiler: zobrazit
Vaše sms byla zpracována
<?php
///////////////
// NASTAVENÍ //
///////////////
$server = "93.91.250.139";
$port = "Spravne vyplnen";
$pw = "Spravne vyplneno";
//////////////////////////////
// VYTAŽENÍ INFORMACÍ Z SMS //
//////////////////////////////
$price = $_GET['price'];
$player = $_GET['text'];

if(empty($price)) { die('Error'); }

$commands = array();
//////////////////////////////
// JEDNOTLIVÉ CENOVÉ HLADINY//
//////////////////////////////
switch($price) {

case 99.000:
$commands[] = "money give ".$player." 1500000";//text1
$commands[] = "pex user ".$player." group set Expert";//text2
$commands[] = "Hraci ".$player." byl aktivovan Expert..";//přičte hráči 1500 money, můžete dát jakýkoli libovolný příkaz cena 99kč
break;

case 79.000:
$commands[] = "money give ".$player." 1100"; //79kč cena
break;

case 50.000:
$commands[] = "money give ".$player." 500000";//text1
$commands[] = "pex user ".$player." group set Vip";//text2
$commands[] = "Hraci ".$player" bylo aktivovano Vip..";//blablakecy
break;

case 30.000:
$commands[] = "money give ".$player." 300"; //30kč cena
break;

case 20.000:
$commands[] = "money give ".$player." 200"; //20kč cena
break;

case 10.000:
$commands[] = "money give ".$player." 100"; //10kč cena
break;

case 0.500:
$commands[] = "money give ".$player." 150"; //sms za 0,5 €
break;

case 1.000:
$commands[] = "money give ".$player." 300"; //sms za 1 €
break;

case 1.205:
$commands[] = "money give ".$player." 400"; //sms za 1.205 €
break;

case 1.607:
$commands[] = "money give ".$player." 500"; //sms za 1,607 €
break;

}

include_once("rcon.php");
$r = new rcon($server,$port,$pw);
if($r->Auth())
{
foreach($commands as $command)
$r->rconCommand($command);
}

?>

rcon.php:
Spoiler: zobrazit
<?php
/*
RCON remote console class, modified for minecraft compability by Tehbeard.

!!!YOU MUST CONFIGURE RCON ON YOUR MINECRAFT SERVER FOR THIS TO WORK
AT TIME OF WRITING ONLY 1.9pr4+ HAVE BUILTIN RCON SUPPORT!!!

Example Code:
============
include_once("rcon.class.php"); //Include this file
$r = new rcon("127.0.0.1",25575,"foobar"); //create rcon object for server on the rcon port with a specific password
if($r->Auth()){ //Connect and attempt to authenticate
{
$r->rconCommand("say Saving in 10 seconds!"); //send a command
sleep(10);
$r->rconCommand("save-all"); //send a command
$r->rconCommand("say Save complete!");//send a command
echo $r->rconCommand("list");//send a command, echo returned value
}
============



Based upon the following work:
[<<<
Basic CS:S Rcon class by Freman. (V1.00)
----------------------------------------------
Ok, it's a completely working class now with with multi-packet responses

Contact: printf("%s%s%s%s%s%s%s%s%s%d%s%s%s","rc","on",chr(46),"cl","ass",chr(64),"pri","ya",chr(46),2,"y",chr(46),"net")

Behaviour I've noticed:
rcon is not returning the packet id.
>>>]
*/

define("SERVERDATA_EXECCOMMAND",2);
define("SERVERDATA_AUTH",3);

class RCon {
var $Password;
var $Host;
var $Port = 27015;
var $_Sock = null;
var $_Id = 0;

function RCon ($Host,$Port,$Password) {
$this->Password = $Password;
$this->Host = $Host;
$this->Port = $Port;
$this->_Sock = @fsockopen($this->Host,$this->Port, $errno, $errstr, 30) or
die("Unable to open socket: $errstr ($errno)\n");
$this->_Set_Timeout($this->_Sock,2,500);
}

function Auth () {
$PackID = $this->_Write(SERVERDATA_AUTH,$this->Password);

// Real response (id: -1 = failure)
$ret = $this->_PacketRead();
//var_dump($ret);
if ($ret[0]['ID'] == -1) {
return false;
}
return true;
}

function _Set_Timeout(&$res,$s,$m=0) {
if (version_compare(phpversion(),'4.3.0','<')) {
return socket_set_timeout($res,$s,$m);
}
return stream_set_timeout($res,$s,$m);
}

function _Write($cmd, $s1='', $s2='') {
// Get and increment the packet id
$id = ++$this->_Id;

// Put our packet together
$data = pack("VV",$id,$cmd).$s1.chr(0).$s2.chr(0);

// Prefix the packet size
$data = pack("V",strlen($data)).$data;

// Send packet
fwrite($this->_Sock,$data,strlen($data));

// In case we want it later we'll return the packet id
return $id;
}

function _PacketRead() {
//Declare the return array
$retarray = array();
//Fetch the packet size
while ($size = @fread($this->_Sock,4)) {
$size = unpack('V1Size',$size);
//Work around valve breaking the protocol
if ($size["Size"] > 4096) {
//pad with 8 nulls
$packet = "\x00\x00\x00\x00\x00\x00\x00\x00".fread($this->_Sock,4096);
} else {
//Read the packet back
$packet = fread($this->_Sock,$size["Size"]);
}
array_push($retarray,unpack("V1ID/V1Response/a*S1/a*S2",$packet));
}
return $retarray;
}

function Read() {
$Packets = $this->_PacketRead();

foreach($Packets as $pack) {
if (isset($ret[$pack['ID']])) {
$ret[$pack['ID']]['S1'] .= $pack['S1'];
$ret[$pack['ID']]['S2'] .= $pack['S1'];
} else {
$ret[$pack['ID']] = array(
'Response' => $pack['Response'],
'S1' => $pack['S1'],
'S2' => $pack['S2'],
);
}
}
return $ret;
}

function sendCommand($Command) {
//$Command = '"'.trim(str_replace(' ','" "', $Command)).'"';
//$Command="stop";
$this->_Write(SERVERDATA_EXECCOMMAND,$Command,'');
}

function rconCommand($Command) {
$this->sendcommand($Command);

$ret = $this->Read();

//ATM: Source servers don't return the request id, but if they fix this the code below should read as
// return $ret[$this->_Id]['S1'];
return $ret[$this->_Id]['S1'];
}
}
?>


Odpověď v emulátoru Mobilních Plateb:
Spoiler: zobrazit
Výsledek testu: ERROR
Popis chyby: Váš skript vrací odpověď v nesprávném formátu. Správný formát odpovědi naleznete v technické specifikaci.
Typ volaného skriptu: Nový skript
Testovaná URL: http://www.pixel-craft.ic.cz/aligator.p ... &sms=hra...
Http Status kód: 200
Content-Type: text/html
Text odpovědi: <br /> <b>Parse error</b>: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in <b>/home/free/ic.cz/p/pixel-craft/root/www/aligator.php</b> on line <b>36</b><br />


Prosíím pomozte..

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PHP Skript -> V čem je problém?

#2 Příspěvekod Welton123 » 03 zář 2013, 21:08

Řádek 36

Máš tam ¨

Kód: Vybrat vše

$commands[] = "Hraci ".$player" bylo aktivovano Vip..";//blablakecy


tak to změň na

Kód: Vybrat vše

$commands[] = "Hraci ".$player." bylo aktivovano Vip..";//blablakecy
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

marcobox
Příspěvky: 26
Registrován: 26 črc 2013, 10:12
Reputation: 0

Re: PHP Skript -> V čem je problém?

#3 Příspěvekod marcobox » 03 zář 2013, 21:16

Už jsem opravil, díky.. ale furt to nejde.. ted píšou Mobilníplatby tohle:
Spoiler: zobrazit
Výsledek testu: ERROR
Popis chyby: Váš skript vrací odpověď v nesprávném formátu. Správný formát odpovědi naleznete v technické specifikaci.
Typ volaného skriptu: Nový skript
Testovaná URL: http://www.pixel-craft.ic.cz/aligator.p ... &sms=PM+...
Http Status kód: 200
Content-Type: text/html
Text odpovědi: Vaše sms byla zpracována Error

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PHP Skript -> V čem je problém?

#4 Příspěvekod Welton123 » 03 zář 2013, 21:24

error ti hodí tahle podmínka

Kód: Vybrat vše

if(empty($price)) { die('Error'); }
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

marcobox
Příspěvky: 26
Registrován: 26 črc 2013, 10:12
Reputation: 0

Re: PHP Skript -> V čem je problém?

#5 Příspěvekod marcobox » 03 zář 2013, 21:30

A co s tím mám dělat..? Aby to napsalo SUCEED a odeslal se příkaz na server?

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PHP Skript -> V čem je problém?

#6 Příspěvekod Welton123 » 03 zář 2013, 21:32

v té url, která se má zavolat chybí

Kód: Vybrat vše

price=XX
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

marcobox
Příspěvky: 26
Registrován: 26 črc 2013, 10:12
Reputation: 0

Re: PHP Skript -> V čem je problém?

#7 Příspěvekod marcobox » 03 zář 2013, 21:33

A to mám napsat kam konkrétně? Když chci na jeden tvar SMS různé hodnoty..? (měnit se má tedy jen číslo)

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Skript -> V čem je problém?

#8 Příspěvekod Mysteria » 03 zář 2013, 22:11

Mobilní platby vyžadují, aby skript odeslal odpověď, jakou najdeš v technické specifikaci (takové PDFko). Vím to, protože jsem to pro jednoho člověka už dělal.

marcobox
Příspěvky: 26
Registrován: 26 črc 2013, 10:12
Reputation: 0

Re: PHP Skript -> V čem je problém?

#9 Příspěvekod marcobox » 03 zář 2013, 22:16

A tu odpoved mam napsat kam presne?

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Skript -> V čem je problém?

#10 Příspěvekod Mysteria » 03 zář 2013, 22:19

Vše je v tom PDFku, dokonce pro PHP tam je přímo příklad, který stačí zkopírovat / vložit. Pokud to ani tak nezvládneš, tak si budeš muset někoho najít, kdo tomu rozumí víc než ty.


Zpět na „Web hosting“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti