PDA

View Full Version : قرار دادن کوکی در آرایه



alasht
سه شنبه 11 آبان 1389, 10:53 صبح
با سلام خدمت دوستان
من یه مشکل دارم اوم اینه که من یه کوکی دارم با نام row و value اون به این صورت ذخیره میشه

row2,row1,row3,row5,row4من چطور میتونم این کوکی رو تو ارایه قرار بدم
به این صورت

array('row2','row1','row3','row5','row4');یعنی هر row داخل یک ' قرار بگیره
این هم ذکر کنم که من به کوکی مورد نظر دسترسی ندارم که بتونم از اول همینطوری ذخیره کنم .
چیکار کنم که این کوکی در ارایه قرار بگیره ؟
ایا راهی هست ؟
با تشکر

alasht
سه شنبه 11 آبان 1389, 11:16 صبح
مشکلم حل شد :لبخند:
دوستانی که مشکل منو دارن باید از تابع explode استفاده کنند
به این صورت



$myrow = "row2,row1,row3,row5,row4";
list($row1, $row2, $row3, $row4, $row5) = explode(",", $myrow);
array($row1, $row2, $row3, $row4, $row5);

binyaft
سه شنبه 11 آبان 1389, 12:20 عصر
شما فقط explode کنی خودش به ارایه تبدیل میکنه

alasht
سه شنبه 11 آبان 1389, 13:40 عصر
سلام مجدد
من اون قبلی مشکلم حل شد اما یه کوکی سختر هست که هر کار میکنم ست نمیشه
کوکی من اینه و میخوام مثل قبلی تو ارایه بزارم

{"myrow":["row1","row2","row3"]}من میخوام همه کارکتر ها برداشته بشه و فقط این قسمت بمونه

"row1","row2","row3"چطوری میتونم این کار رو بکنم من با explode هر کاری کردم نشد
لطفا یک راهنمایی کنید
با تشکر

mehdi.mousavi
سه شنبه 11 آبان 1389, 14:44 عصر
یه کوکی سختر هست که هر کار میکنم ست نمیشه کوکی من اینه و میخوام مثل قبلی تو ارایه بزارم
{"myrow":["row1","row2","row3"]}

سلام.
این داده شما در حقیقت یک رشته JSON هستش و نباید با اون به شکل یه string برخورد کنید! برای decode کردن یه رشته JSON می تونید از json_decode (http://www.php.net/manual/en/function.json-decode.php) استفاده کنید.

موفق باشید.

alasht
سه شنبه 11 آبان 1389, 16:32 عصر
سلام
ممنون از پاسختون
من این کار رو کردم و کد بالا رو قرار دادم اما تو خروجی این رو چاپ میکنه

Arrayقضیش چیه ؟

اینم کد منه



<?php
$json = '{"myrow":["row1","row2","row3"]}';
$obj = json_decode($json);
print $obj->{'myrow'};
?>

mehdi.mousavi
سه شنبه 11 آبان 1389, 18:41 عصر
سلام.
خوب کافیه تا به اون اندیس مورد نظرتون دسترسی پیدا کنید:

print $obj->{'myrow'}[0]

یا میتونید Element ها رو با هم Join کنید:

<?php
$json = '{"myrow":["row1","row2","row3"]}';
$obj = json_decode($json);
$array = $obj->{'myrow'};
print join(',', $array);
?>

که نتیجه این دومی میشه این:

row1,row2,row3

موفق باشید.

alasht
چهارشنبه 12 آبان 1389, 10:48 صبح
سلام مجدد خدمت دوستان
اقا من این کد رو استفاده کردم و خیلی بدردم خورد
اما امروز وقتی خواستم کاری کنم که از کوکی بخونه نمیشه
خروجی هیچی نمیده
به نظر شما مشکل کجاست
اینم کد منه

$json = $_COOKIE['myjsoncookie'];
$obj = json_decode($json);
$array = $obj->{'myrow'}[0];

echo $array;من همه چیزا رو درست ست کردم اما خروجی نداره

وقتی json رو برابر این کد قرار میدم خروجی میده

$json = '{"myrow":["row1","row2","row3"]}';
اما وقتی مقدارش رو میگم از کوکی بخونه خروجی نداره ارور هم نمیده
کوکی مورد نظر هم وجود داره
خواهش میکنم یه راهنمایی کنید
با تشکر

mehdi.mousavi
چهارشنبه 12 آبان 1389, 11:00 صبح
سلام مجدد خدمت دوستان اقا من این کد رو استفاده کردم و خیلی بدردم خورد اما امروز وقتی خواستم کاری کنم که از کوکی بخونه نمیشه خروجی هیچی نمیده
به نظر شما مشکل کجاست؟

سلام.
لطفا ابتدا FireCookie (https://addons.mozilla.org/en-US/firefox/addon/6683/) رو نصب کنید تا از محتویات Cookie ی مورد نظر مطمئن بشید. من حدس میزنم بر خلاف انتظار شما، Cookie ی مورد نظر null هستش، یا JSON String نیستش! برای بررسی این موضوع نیر FireCookie ابزار بسیار مناسبی هستش. اگر محتوای Cookie ی شما null نبود، لطفا یه Snapshot از پنجره FireCookie اینجا قرار بدید تا ببینم چه چیزی در Cookie قرار گرفته تا بتونم مشکلتون رو رفع کنم.

موفق باشید.

alasht
چهارشنبه 12 آبان 1389, 11:52 صبح
سلام
ممنون از پاسختون
من از وجود کوکی مطمئن هستم چون با مرورگرم کوکی موزد نظرم رو دیدم که وجود داره
برای اطمینان بیشتر این دستور رو نوشتم echo $json کاملا مطمئن شدم کوکی وجود داره
کوکی من همونه که بالا نوشتم


name = myjsoncookie
value = {"myrow":["row1","row2","row3"]}
که من این کوکی را با استفاده از تابع setcookie ذخیره کردم

setcookie ('myjsoncookie','{"myrow":["row1","row2","row3"]}');مشکل من اینه که من تو لوکال هاست جواب میگرم اما تو سایتم خروجی نداره (این نکته رو یادم رفته بود بگم )
سایتم کوکی رو میخونه و تابع json هم توش عمل میکنه اما وقتی این دو رو یعنی کوکی و تابع json رو با هم ترکیب میکنم خروجی نمیده
میشه بگید مشکل از کجاست ؟
( ادرس سایت هم نمیتونم بگم چون هنوز راه اندازی نشده و در دست ساخته )

alasht
پنج شنبه 13 آبان 1389, 14:01 عصر
با سلام خدمت دوستان
متاسفانه هنوز مشکلم هنوز حل نشده و همچنان منتظر جوابم
من متوجه شدم مشکل از کجاست
من وقتی این کد رو میزنم که کوکی مورد نظرم چاپ بشه


$json = $_COOKIE['myjsoncookie'];
echo $json;
کوکی من در لوکال هاست به این صورت چاپ میشه (easyphp) :



{\"myrow":["row1","row2","row3"]}
ولی در سایتم به این صورت چاپ میشه

{ \"myrow\":[\"row1\",\"row2\",\"row3\"]}به کدم \ اضافه میشه و به خاطر همین json نمیشناسه این کد رو و خروجی نداره
این \ ها از کجا اومده ؟
چرا فقط تو سایتم اینطوریه ؟
چطوری میتونم حذفشون کنم ؟
با تشکر

binyaft
پنج شنبه 13 آبان 1389, 15:00 عصر
<?php
echo stripslashes('\"\"asdaasas\""""');
?>

mehdi.mousavi
پنج شنبه 13 آبان 1389, 16:24 عصر
سلام.
احتمالا get_magic_quotes_gpc روشن هستش، در نتیجه اون \ ها به Cookie اضافه میشن. شما می تونید این Option رو در php.ini غیر فعال کنید، یا به روش زیر به هدفتون برسید:

setcookie("myCookie", '{"myrow":["row1", "row2", "row3"]}');

if (get_magic_quotes_gpc() === 1) {
foreach($_COOKIE as $k => $v)
$_COOKIE[$k] = stripslashes($v);
}

$cookie = $_COOKIE["myCookie"];

$obj = json_decode($cookie);
echo $obj->{'myrow'}[0];

موفق باشید.