2

PHPserializeunserialize関数に問題があります。を使用してMySQL DBに配列を挿入していますserialize(array)。これはDBでの私の値です

a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}

私がこのようなことをしたら

$images = unserialize( $apartment->images );

エラーが発生します: ErrorException [ Notice ]: unserialize() [function.unserialize]: Error at offset 9 of 208 bytes$apartmentは私のDB ORMオブジェクトであり、そのようなecho $apartment->imagesことをすると、上記のシリアル化された文字列が出力されます。

しかし、私がこのようなことをしたら

$images = unserialize( 'a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}' );

それは動作します... え?$apartment->images の var_dump() が返す

string(208) "a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}"
4

1 に答える 1

1

FuelPHP の担当者がこのhttp://docs.fuelphp.com/general/views.html#/securityについて指摘したので、これは私の問題でした。

セキュリティ
デフォルトでは、ビューは出力エンコーディングを使用して、Security::htmlentities() を使用して渡されたものをサニタイズします。フィルタリングされていないものを渡したい場合は、メソッド set($name, $value, false) を使用できます。

于 2012-01-13T15:00:39.087 に答える