Ich habe Code, der auf einer Handvoll von Servern funktioniert, aber nicht andere, die mit serialisierten Daten kommt. Ich nenne eine Seite wie diese:PHP unserialize Fehler bei Offset, funktioniert auf einigen Servern, nicht andere
http://domain/index.php/sales/Drilldowns?params=a:12:{s:13:"selectionType";s:8:"facility";s:8:"dateType";s:5:"daily";s:10:"dateOption";s:9:"drilldown";s:6:"metric";s:13:"bookingAmount";s:9:"companyFK";s:2:"11";s:10:"facilityFK";s:0:"";s:7:"classFK";s:0:"";s:15:"customDateStart";s:4:"null";s:7:"newDate";s:10:"2010-11-01";s:10:"metricName";s:10:"Bookings%20$";s:16:"currentDateRange";s:10:"11/01/2010";s:23:"currentMetricNavigation";s:8:"DELDELTE";}&getExcel=0
Dies ist der Code Ich verwende:
protected function getRequestVariables(){
if(isset($_REQUEST['params'])){
var_dump($_REQUEST['params']);
echo 'length:'.strlen($_REQUEST['params']);
$vars = unserialize($_REQUEST['params']);
var_dump($vars);
} else {
$vars = $_REQUEST;
// unset saved drilldown options
$this->ci->session->svar_set('postVars', null);
}
Dies ist ein var_dump
Ausgang:
string(447) "a:12:{s:13:\"selectionType\";s:8:\"facility\";s:8:\"dateType\";s:5:\"daily\";s:10:\"dateOption\";s:9:\"drilldown\";s:6:\"metric\";s:13:\"bookingAmount\";s:9:\"companyFK\";s:2:\"11\";s:10:\"facilityFK\";s:0:\"\";s:7:\"classFK\";s:0:\"\";s:15:\"customDateStart\";s:4:\"null\";s:7:\"newDate\";s:10:\"2010-11-01\";s:10:\"metricName\";s:10:\"Bookings $\";s:16:\"currentDateRange\";s:10:\"11/01/2010\";s:23:\"currentMetricNavigation\";s:8:\"DELDELTE\";}"
Wenn das verarbeitet wird ich das bekommen folgender Fehler:
A PHP Error was encountered
Severity: Notice Message: unserialize() [function.unserialize]: Error at offset 6 of 447 bytes
Filename: plugins/Drilldowns.php
Line Number: 93
Ich versuche das auf 5.2.13 - funktioniert auf einigen Linux, einigen OS X, nicht anderen. Habe php.ini, charset (denke ich) überprüft - ich kann es nicht für mein Leben herausfinden. Ich habe die Dinge so einfach wie
string(18) "a:1:{s:3:\"sam\";}" length:18
und es noch Fehler versucht. Irgendeine Ahnung warum?
Können Sie den genauen unserialize Code zeigen, den Sie verwenden? –
Wir brauchen den Code. Es ist wahrscheinlich etwas plattform- oder versionsspezifisch, wenn es nur auf einigen Servern funktioniert. –
Es funktioniert auf 5.2 Linux (Centos), aber nicht 5.3 - schlägt auf einigen Macs aber nicht –