2010-11-21 18 views
0

benim Kodunuzunasıl gerçekleşmemiş verilere

$order[$j][1]=$q16; 
<input type="hidden" name="hdnOrder" value="<?php echo htmlentities(serialize($order)); ?>"> 

gelen dizisini almak için benim sonraki sayfa-

$order = array_map('mysql_real_escape_string', unserialize($_REQUEST['hdnOrder'])); 

bana aşağıdaki hata- Warning: array_map() [function.array-map]: Argument #2 should be an array

istediğim sipariş değeri verir dizi biçimi nedeniyle of-

foreach($order as $row) 
+0

'$ _REQUEST ['hdnOrder']' neye benziyor? – deceze

+2

Belki de tam olarak sizin sorunuz değil, ama neden bir hdnOrder'ı bir oturumda veya veritabanında saklamıyorsunuz ve sonra formdan sonra getiriyorsunuz? Kullanıcı, sahip olduğunuz şekilde kurcalayabilir ve daha sonra hatalı bir dosya gönderebilir – Fanis

+0

Başlığınıza "gerçekleşmemiş" ifadesini koyarsınız. – greg0ire

cevap

1

Sorununuz, veri üzerinde yaptığınız htmlentities().

Kullanım htmlspecialchars(serialize($order), ENT_QUOTES) yerine ve daha sonra bir htmlspecialchars_decode() yok.

$order = array_map('mysql_real_escape_string', 
unserialize(htmlspecialchars_decode($_REQUEST['hdnOrder'], ENT_QUOTES))); 
0

htmlentities yerine urldecode/urlencode kullanmalısınız.

İlgili konular