Raised This Month: $ Target: $400
 0% 

Sockets does not send data to php file


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
OnePL
BANNED
Join Date: May 2012
Location: GB
Old 05-19-2014 , 12:39   Sockets does not send data to php file
Reply With Quote #1

sockets does not send data to php file
plugin code:
PHP Code:
#include <amxmodx>
#include <sockets>

new HOST[] = "127.0.0.1";
new 
FILE[] = "test.php";

new 
Server[64];
new 
nick[33][32], ip[33][23], sid[33][35];
new 
socketerror;

public 
plugin_cfg() {
    
get_cvar_string("hostname"Server63);
    
socket socket_open(HOST801error);
}

public 
client_putinserver(id) {
    
get_user_name(idnick[id], 31);
    
get_user_ip(idip[id], 221);
    
get_user_authid(idsid[id], 34);

    
set_task(2.0"test"id+101);
}

public 
test(id) {
    
id -= 101;

    new 
sData[256];
    
format(sData255"GET /%s?name=%s&authid=%s&ip=%s&server=%s HTTP/1.0^r^n"FILEnick[id], sid[id], ip[id], Server);
    
format(sData255"%sHost: %s^r^n^r^n"sDataHOST);
    
socket_send(socketsDatastrlen(sData));

php file:
PHP Code:
<?php
    $link 
mysqli_connect(hostuserpassdb);

    
$name $_GET['name'];
    
$authid $_GET['authid'];
    
$ip $_GET['ip'];
    
$server $_GET['server'];

    
mysqli_query($link"INSERT `sockets_test` (name, authid, ip, server) VALUES ('$name', '$authid', '$ip', '$server')");
?>
when go in from the www is a query to the mysql database be execute
where is the mistake in the plugin?
OnePL is offline
Send a message via ICQ to OnePL Send a message via AIM to OnePL Send a message via Yahoo to OnePL Send a message via Skype™ to OnePL
claudiuhks
Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
Old 05-20-2014 , 01:21   Re: Sockets does not send data to php file
Reply With Quote #2

PHP Code:
#define SOCK_STREAM 1 // good you use this one, but better to use the definition
#define SOCK_DGRAM 2 
I believe you have to replace HTTP/1.0^r^n with HTTP/1.1^n and no empty space after Host:.

The characters like !@#$%^&*()_+| and so on, must be replaced with their HEX values.

PHP Code:
        /*
            ** Uses HEX instead of characters.
        */
        
static PCHAR HEXTable[256U] =
        {
            
"00""01""02""03""04""05""06""07""08""09""0a""0b""0c""0d""0e""0f""10""11",
            
"12""13""14""15""16""17""18""19""1a""1b""1c""1d""1e""1f""20""21""22""23",
            
"24""25""26""27""28""29""2a""2b""2c""2d""2e""2f""30""31""32""33""34""35",
            
"36""37""38""39""3a""3b""3c""3d""3e""3f""40""41""42""43""44""45""46""47",
            
"48""49""4a""4b""4c""4d""4e""4f""50""51""52""53""54""55""56""57""58""59",
            
"5a""5b""5c""5d""5e""5f""60""61""62""63""64""65""66""67""68""69""6a""6b",
            
"6c""6d""6e""6f""70""71""72""73""74""75""76""77""78""79""7a""7b""7c""7d",
            
"7e""7f""80""81""82""83""84""85""86""87""88""89""8a""8b""8c""8d""8e""8f",
            
"90""91""92""93""94""95""96""97""98""99""9a""9b""9c""9d""9e""9f""a0""a1",
            
"a2""a3""a4""a5""a6""a7""a8""a9""aa""ab""ac""ad""ae""af""b0""b1""b2""b3",
            
"b4""b5""b6""b7""b8""b9""ba""bb""bc""bd""be""bf""c0""c1""c2""c3""c4""c5",
            
"c6""c7""c8""c9""ca""cb""cc""cd""ce""cf""d0""d1""d2""d3""d4""d5""d6""d7",
            
"d8""d9""da""db""dc""dd""de""df""e0""e1""e2""e3""e4""e5""e6""e7""e8""e9",
            
"ea""eb""ec""ed""ee""ef""f0""f1""f2""f3""f4""f5""f6""f7""f8""f9""fa""fb",
            
"fc""fd""fe""ff"
        
}; 
Like %dc, %fd, %d0 and so on...
Keep in mind that a valid normal character is between -2 and 255 inclusive. Do not consider -2 and -1, they're MOUSE1 and MOUSE2 buttons AFAIK. You got much work to do if you're dealing with unicode characters.
__________________

Last edited by claudiuhks; 05-20-2014 at 01:27.
claudiuhks is offline
Send a message via MSN to claudiuhks Send a message via Yahoo to claudiuhks Send a message via Skype™ to claudiuhks
OnePL
BANNED
Join Date: May 2012
Location: GB
Old 05-20-2014 , 08:50   Re: Sockets does not send data to php file
Reply With Quote #3

eh .. I do not understand. Would you mind show it on the code from the first post?
OnePL is offline
Send a message via ICQ to OnePL Send a message via AIM to OnePL Send a message via Yahoo to OnePL Send a message via Skype™ to OnePL
claudiuhks
Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
Old 05-21-2014 , 09:21   Re: Sockets does not send data to php file
Reply With Quote #4

Quote:
Originally Posted by OnePL View Post
eh .. I do not understand. Would you mind show it on the code from the first post?
That's a kind of a private work, anyways, not tested.

PHP Code:
safeStr(const myStr[], outStr[], const outStrLen)
{
 static const 
charsTbl[256][3] =
 {
  
"%00""%01""%02""%03""%04""%05""%06""%07""%08""%09""%0a""%0b""%0c""%0d""%0e""%0f""%10""%11",
  
"%12""%13""%14""%15""%16""%17""%18""%19""%1a""%1b""%1c""%1d""%1e""%1f""%20""%21""%22""%23",
  
"%24""%25""%26""%27""%28""%29""%2a""%2b""%2c""%2d""%2e""%2f""%30""%31""%32""%33""%34""%35",
  
"%36""%37""%38""%39""%3a""%3b""%3c""%3d""%3e""%3f""%40""%41""%42""%43""%44""%45""%46""%47",
  
"%48""%49""%4a""%4b""%4c""%4d""%4e""%4f""%50""%51""%52""%53""%54""%55""%56""%57""%58""%59",
  
"%5a""%5b""%5c""%5d""%5e""%5f""%60""%61""%62""%63""%64""%65""%66""%67""%68""%69""%6a""%6b",
  
"%6c""%6d""%6e""%6f""%70""%71""%72""%73""%74""%75""%76""%77""%78""%79""%7a""%7b""%7c""%7d",
  
"%7e""%7f""%80""%81""%82""%83""%84""%85""%86""%87""%88""%89""%8a""%8b""%8c""%8d""%8e""%8f",
  
"%90""%91""%92""%93""%94""%95""%96""%97""%98""%99""%9a""%9b""%9c""%9d""%9e""%9f""%a0""%a1",
  
"%a2""%a3""%a4""%a5""%a6""%a7""%a8""%a9""%aa""%ab""%ac""%ad""%ae""%af""%b0""%b1""%b2""%b3",
  
"%b4""%b5""%b6""%b7""%b8""%b9""%ba""%bb""%bc""%bd""%be""%bf""%c0""%c1""%c2""%c3""%c4""%c5",
  
"%c6""%c7""%c8""%c9""%ca""%cb""%cc""%cd""%ce""%cf""%d0""%d1""%d2""%d3""%d4""%d5""%d6""%d7",
  
"%d8""%d9""%da""%db""%dc""%dd""%de""%df""%e0""%e1""%e2""%e3""%e4""%e5""%e6""%e7""%e8""%e9",
  
"%ea""%eb""%ec""%ed""%ee""%ef""%f0""%f1""%f2""%f3""%f4""%f5""%f6""%f7""%f8""%f9""%fa""%fb",
  
"%fc""%fd""%fe""%ff"
 
};
 static 
iterVar;
 
outStr[0] = '^0';
 for (
iterVar 0iterVar strlen(myStr); iterVar++)
 {
  if (!(
<= myStr[iterVar] <= charsmax(charsTbl)))
   continue;
  
add(outStroutStrLencharsTbl[myStr[iterVar]]);
 }
}
public 
client_putinserver(clId)
{
 static 
svName[256], svNewName[512], clName[64], clNewName[256], clSteam[64], clNewSteam[256], \
  
clAddr[64], clNewAddr[256], svNameCVarIdclUserIdsockIderrIdtmpBuffer[1024], bufferLen;
 if (!
svNameCVarId)
  
svNameCVarId get_cvar_pointer("hostname");
 
get_pcvar_string(svNameCVarIdsvNamecharsmax(svName));
 
get_user_name(clIdclNamecharsmax(clName));
 
get_user_authid(clIdclSteamcharsmax(clSteam));
 
get_user_ip(clIdclIpcharsmax(clIp), 1);
 
clUserId get_user_userid(clId);
 
sockId socket_open("127.0.0.1"80SOCKET_TCPerrId);
 if (!
errId)
 {
  
safeStr(clNameclNewNamecharsmax(clNewName));
  
safeStr(clSteamclNewSteamcharsmax(clNewSteam));
  
safeStr(clIpclNewIpcharsmax(clNewIp));
  
safeStr(svNamesvNewNamecharsmax(svNewName));
  
bufferLen formatex(tmpBuffercharsmax(tmpBuffer), "GET /index.php?cl_name=%s&cl_steam=%s&cl_ip=%s&sv_name=%s&cl_id=%d&cl_userid=%d HTTP/1.1^nHost:127.0.0.1^r^n^r^n", \
   
clNewNameclNewSteamclNewAddrsvNewNameclIdclUserId);
  
socket_send(sockIdtmpBufferbufferLen);
  
socket_close(sockId);
 }

Now the problem are the Unicode characters. I've never worked with them and Sockets simultaneously.
__________________

Last edited by claudiuhks; 05-21-2014 at 09:27.
claudiuhks is offline
Send a message via MSN to claudiuhks Send a message via Yahoo to claudiuhks Send a message via Skype™ to claudiuhks
OnePL
BANNED
Join Date: May 2012
Location: GB
Old 05-21-2014 , 16:11   Re: Sockets does not send data to php file
Reply With Quote #5

PHP Code:
#include <amxmodx>
#include <sockets>

new HOST[] = "127.0.0.1";
new 
FILE[] = "test.php";

new 
Server[64];
new 
nick[33][32], ip[33][23], sid[33][35];
new 
socketerror;

public 
plugin_cfg() {
    new 
swName[64]; get_cvar_string("hostname"swName63);
    
safeStr(swNameServer63);
    
socket socket_open(HOST801error);
}

public 
client_putinserver(id) {
    static 
nick[32], ip[23], sid[35];
    
get_user_name(idnick31);
    
get_user_ip(idip221);
    
get_user_authid(idsid34);

    
safeStr(nicknick[id], 31);
    
safeStr(ipip[id], 22);
    
safeStr(sidsid[id], 34);

    
set_task(2.0"test"id+101);
}

public 
test(id) {
    
id -= 101;

    new 
sData[256];
    
formatex(sData255"GET /%s?name=%s&authid=%s&ip=%s&server=%s HTTP/1.1^nHost:%s^r^n^r^n", \
    
FILEnick[id], sid[id], ip[id], ServerHOST);
    
socket_send(socketsDatastrlen(sData));
}

safeStr(const myStr[], outStr[], const outStrLen) {
    static const 
charsTbl[256][4] = {
        
"%00""%01""%02""%03""%04""%05""%06""%07""%08""%09""%0a""%0b""%0c""%0d""%0e""%0f""%10""%11",
        
"%12""%13""%14""%15""%16""%17""%18""%19""%1a""%1b""%1c""%1d""%1e""%1f""%20""%21""%22""%23",
        
"%24""%25""%26""%27""%28""%29""%2a""%2b""%2c""%2d""%2e""%2f""%30""%31""%32""%33""%34""%35",
        
"%36""%37""%38""%39""%3a""%3b""%3c""%3d""%3e""%3f""%40""%41""%42""%43""%44""%45""%46""%47",
        
"%48""%49""%4a""%4b""%4c""%4d""%4e""%4f""%50""%51""%52""%53""%54""%55""%56""%57""%58""%59",
        
"%5a""%5b""%5c""%5d""%5e""%5f""%60""%61""%62""%63""%64""%65""%66""%67""%68""%69""%6a""%6b",
        
"%6c""%6d""%6e""%6f""%70""%71""%72""%73""%74""%75""%76""%77""%78""%79""%7a""%7b""%7c""%7d",
        
"%7e""%7f""%80""%81""%82""%83""%84""%85""%86""%87""%88""%89""%8a""%8b""%8c""%8d""%8e""%8f",
        
"%90""%91""%92""%93""%94""%95""%96""%97""%98""%99""%9a""%9b""%9c""%9d""%9e""%9f""%a0""%a1",
        
"%a2""%a3""%a4""%a5""%a6""%a7""%a8""%a9""%aa""%ab""%ac""%ad""%ae""%af""%b0""%b1""%b2""%b3",
        
"%b4""%b5""%b6""%b7""%b8""%b9""%ba""%bb""%bc""%bd""%be""%bf""%c0""%c1""%c2""%c3""%c4""%c5",
        
"%c6""%c7""%c8""%c9""%ca""%cb""%cc""%cd""%ce""%cf""%d0""%d1""%d2""%d3""%d4""%d5""%d6""%d7",
        
"%d8""%d9""%da""%db""%dc""%dd""%de""%df""%e0""%e1""%e2""%e3""%e4""%e5""%e6""%e7""%e8""%e9",
        
"%ea""%eb""%ec""%ed""%ee""%ef""%f0""%f1""%f2""%f3""%f4""%f5""%f6""%f7""%f8""%f9""%fa""%fb",
        
"%fc""%fd""%fe""%ff"
    
};
    static 
iterVar;
    
outStr[0] = '^0';

    for(
iterVar 0iterVar strlen(myStr); iterVar++) {
        if(!(
<= myStr[iterVar] <= charsmax(charsTbl))) continue;

        
add(outStroutStrLencharsTbl[myStr[iterVar]]);
    }

1. not get nickname
2. not get authid
3. not get ip address
4. not get server name
5. not send data to php file
OnePL is offline
Send a message via ICQ to OnePL Send a message via AIM to OnePL Send a message via Yahoo to OnePL Send a message via Skype™ to OnePL
Black Rose
Veteran Member
Join Date: Feb 2011
Location: Stockholm, Sweden
Old 05-21-2014 , 18:00   Re: Sockets does not send data to php file
Reply With Quote #6

I tried your first code without any problems.
I just wrote to a file instead of SQL and replaced some special characters with URL encoded versions. Other than that, no changes. You're testing it wrong. Probably an SQL problem.
DEBUG!
__________________
Black Rose is offline
OnePL
BANNED
Join Date: May 2012
Location: GB
Old 05-22-2014 , 04:14   Re: Sockets does not send data to php file
Reply With Quote #7

solved
not read socket when I opened it in plugin_cfg()
I moved to the plugin_init() and works

I have the next problem, code:

PHP Code:
public Message(id) {
    new 
reason[64], sData[256];
    
read_args(reason63);
    
remove_quotes(reason);
    
trim(reason);
    
ucfirst(reason);

    
formatex(sData255"GET /%s?name=%s&authid=%s&ip=%s&server=%s&reason=%s HTTP/1.1^nHost:%s^r^n^r^n", \
    
FILEnick[id], sid[id], ip[id], ServerreasonHOST);
    
socket_send(socketsDatastrlen(sData));

I have this function under the command /send, I type a reason, but that reason does not send

Last edited by OnePL; 05-22-2014 at 05:10.
OnePL is offline
Send a message via ICQ to OnePL Send a message via AIM to OnePL Send a message via Yahoo to OnePL Send a message via Skype™ to OnePL
claudiuhks
Yam Inside®™℠
Join Date: Jan 2010
Location: Living Randomly
Old 05-22-2014 , 07:13   Re: Sockets does not send data to php file
Reply With Quote #8

Quote:
Originally Posted by OnePL View Post
solved
not read socket when I opened it in plugin_cfg()
I moved to the plugin_init() and works

I have the next problem, code:

PHP Code:
public Message(id) {
    new 
reason[64], sData[256];
    
read_args(reason63);
    
remove_quotes(reason);
    
trim(reason);
    
ucfirst(reason);

    
formatex(sData255"GET /%s?name=%s&authid=%s&ip=%s&server=%s&reason=%s HTTP/1.1^nHost:%s^r^n^r^n", \
    
FILEnick[id], sid[id], ip[id], ServerreasonHOST);
    
socket_send(socketsDatastrlen(sData));

I have this function under the command /send, I type a reason, but that reason does not send
You're code seems fine. But the code amount is not enough.
__________________
claudiuhks is offline
Send a message via MSN to claudiuhks Send a message via Yahoo to claudiuhks Send a message via Skype™ to claudiuhks
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:39.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode