EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Database Queries w/ World HTTP Server (https://www.eqemulator.org/forums/showthread.php?t=24661)

AndMetal 03-17-2008 03:32 AM

Database Queries w/ World HTTP Server
 
So, I was going to try & convert my profile viewer (in PHP) into Perl so that it can be incorporated into the World HTTP Server, but I'm a little stuck.

When I query the character_ table with the following:
Code:

my $q = "SELECT name, profile, level, extprofile FROM character_ WHERE id=".$request->getInt("charid", 0);
my $res = $EQDB->query($q);
if ($res) {
        my $row = $res->fetch_row_hash;
}

and try to access the profile blob via $row->{profile} (as advised in the Wiki), it only returns the first few characters of the blob.

After checking the profile itself, it seems to stop at the first null character (0x00). I guess the question then becomes, what's causing it to stop there? Once I can get that figured out, dissecting the blob will be easy.

Any thoughts?

Theeper 03-29-2008 11:10 AM

Is it stopping before unpacking, or are you saying it fails to unpack ?

AndMetal 03-30-2008 10:17 PM

As far as I can tell, it starts to unpack, but doesn't complete. It stops when it hits the first null character, so I can usually get the first name, but that's about it, since it's padded with nulls.

Theeper 03-31-2008 06:56 PM

If you use the 'A' flag instead of the 'a' flag in your pack template, ascii strings should be space padded (0x20) instead of null padded. I don't know if that will help or not though.

I can't imagine it will be easy to unpack that data correctly. I certainly wouldn't want to write the template by hand.

I thought about using something like this module to convert the profile struct for use in PERL, but I haven't attempted it yet.


All times are GMT -4. The time now is 05:30 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.