The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
unserialize not working correctly
I am trying to use a hack that is no longer supported and the original coder isn't replying even on his own board. I am hoping someone can assist me since I am very confused about what is wrong.
I am using FC4 with updated RPMs, so PHP=5.0.4 & SQL=4.1.20, I also use MYSQLi to connect to the database. The original code is: Code:
$cdfield = "field" . $vbulletin->options["countdownfield"]; $query = $vbulletin->db->query_read( "SELECT $cdfield FROM " . TABLE_PREFIX . "userfield WHERE userid='" . $post["userid"] . "';" ); $result = mysql_fetch_array( $query ); $cddata = unserialize( str_replace( """, '"', $result[$cdfield] ) ); if ( $cddata["enabled"] == "Yes" ) So I made this test code to figure out what is wrong: Code:
<?php $link = mysql_connect('localhost', 'dbname', 'dbpassword'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'.'<br />'; $result = mysql_query("SELECT field10 FROM vbulletin.vb_userfield WHERE userid='3531'"); if (!$result) { die('Invalid query: ' . mysql_error()); } echo 'Query Results'.'<br />'; var_dump ($result); $result2 = str_replace( """, '"', $result['field10'] ); echo '<br/>'.'Replace Results'.'<br />'; var_dump ($result2); $serializedarray = unserialize($result2['field10']); echo '<br/>'.'Unserialized'.'<br />'; var_dump ($serializedarray); echo $result["enabled"]; ?> Code:
Connected successfully Query Results resource(3) of type (mysql result) Replace Results string(0) "" Unserialized bool(false) Code:
a:8:{s:7:"enabled";s:3:"Yes";s:3:"day";s:1:"1";s:5:"month";s:1:"1";s:4:"year";s:4:"2009";s:4:"hour";s:1:"0";s:6:"minute";s:1:"0";s:5:"event";s:14:"Happy New Year";s:7:"overmsg";s:15:"Make Resolution";} |
#2
|
||||
|
||||
Did you try doing an unserialize on the serialized data before other manipulations such as the str_replace?
EDIT: Also, mysql_query returns a MySQL "resource", you should pass it to one of the functions such as mysql_fetch_assoc to return a php array of the data. PHP Code:
|
#3
|
||||
|
||||
Bingo.
Remember that a when you serialize something, PHP records the lengths of all the strings, arrays, etc. Changing things like " to " would muck this up, resulting in an usable data. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|