-
سلام . بازم اگه هنوز همین مشکل رو دارید. اولین خط برنامه تایپ کنید [PHP]ob_start();[/PHP] خط آخر هم [PHP]ob_end_flush();[/PHP] احتمالا حل میشه مشکلت.
اینطوری:
[PHP]<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>cookie</title>
</head>
<body>
<?
setcookie("test","kami",time()+0,"/","www.localhost",0);
ob_end_flush();
?>
</body>
</html>[/PHP]
-
آقا رسول باز هموون مشکل قدیمی رو دارم.
یعنی با expresion web جواب نمیده ولی با notepad که می نویسمش و save می کنم run می شه.
نمیدونم چرا به یه مشکل دیگه برخوردم.
من یه کوکی با کد زیر درست می کنم.
[PHP]setcookie("test","kami",time()+1000,"/","localhost",0);[/PHP]
ولی وقتی می خوام مقدارشو بگیرم هیچی بر نمی گردونه.یعنی کد صفحه بعدم اینه:
[PHP]<?
if($_COOKIE[test]=="kami")
{
echo "welcome to secret page A";
}
else
{
echo "<script>location.href='3.php';</script>";}
?>
[/PHP]
-
خوب دیگه! باید test رو بین ' ' بذارین در فایل Secret file a! یا حداقل من اینطوری استفاده می کنم!
جای اون echo '<script... '; ه هم میتونین این کد رو بذارین که کاربر با خاموش کردن قابلیت جاوای مرورگرش نتونه بپیچونه سایت رو
[PHP]header("location: 3.php");[/PHP]
-
-
خوب شاید expresion web از یک جای کارتون اشکال میگیره و برای همین هم سیوش نمی کنه یا مثلا یادتون رفته Ctrl+S رو بزنین همون کد قبلی رو هنوز نشون میده.
ارورش همون ارور قبلیَست؟
-
این مشکل انقدر هم پیچیده نیست! اگر جستجو میکردید دو سه تا دلیل میتونه داشته باشه که قبلاً صد مرتبه مشابه این در انجمن حل شده
تنها دلیل این ارور ارسال خروجی قبل از setcookie هست. حالا یا خودتون چیزی پرینت کردید یا اینکه انکودینگ فایل utf-8 هست که باید تبدیلش کنید به utf-8 without bom
-
الان اون مشکل setcookie حل شده.یعنی دیگه ارور نمیده.
الان نمی تونم مقدار cookie را که set کردم را ببینم.
یعنی
$_COOKIE[test]
هیچ مقداری را بهم بر نمیگردونه.
-
این رو بزنید تو آدرس مرورگر نشون میده:
کد:
javascript:alert(document.cookie);
-
ببخشید من فکر کردم هنوز مشکل همون ارور ارسال هدر هست.
شما کوکی رو در چه صفحه ای چک میکنید؟ فکر میکنم در همون اجرای اول که کوکی ست میشه مقدارش رو ندارید درسته؟ متغیر COOKIE_$ قبل از فراخوانی تابع setcookie مقداردهی میشه بنابراین وقتی که کوکی ست میکنید از دفعه بعدی که اسکرپت اجرا میشه میتونید به کوکی در php دسترسی داشته باشید
-
اون دستور را در مرورگر زدم ولی فقط یک کادر محاوره ای سفید باز می شه.