In my particular case, I'm getting this erro开发者_开发知识库r after doing an ExpressionEngine update from 1.x to 2.x. There is a table that manages site preferences, and the data for each field is a serialized PHP array. After the update, any serialized array instead just says czowOiIiOw==
. Googling this string brings up other non-ExpressionEngine-related site forums where end users are reporting seeing this string while being unable to login.
Does anyone have any idea what might be causing this, or have you seen anything like this before?
It's an encoding of a serialization of an empty string.
>>> 'czowOiIiOw=='.decode('base64')
's:0:"";'
Somehow your preferences got wiped.
that is base64 encoded. it's :
s:0:"";
It's a base64-encoded version of s:0:""
, which is a serialized PHP empty string.
Decoding it as base64 it becomes:
s:0:"";
As you can see if you execute the following line, it is a serialized empty string:
echo serialize(""); // Outputs s:0:"";
echo base64_encode(serialize("")); // Outputs czowOiIiOw==
For further information on the serialization spec, see this generous commenter's work, specifically Strings:
Anatomy of a serialize()'ed value:
...
String
s:size:value;
精彩评论