یک سوال از یک مثال زیبا

پرسیده شده
فعالیت 1111 روز پیش
دیده شده 653 بار
0

با سلام و احترام . یک مثال جالب دیدم ولی یه سوال دارم که در لاین ۵ مقدار داده میشه به کوکی چرا لاین ۶ دوباره اومده مقدار داده به کوکی . البته یک چیزی که فهمیدم اینه که اگر اون لاین نباشه : دفعه اول که دکمه ارسال رو بزنید اطلاعات در کوکی ذخیره میشه و اگر دفعه دوم دکمه ارسال رو بزنید خالی اونوقت کوکی بهم نمایش داده میشه .

<?php
if (isset ($_POST["username"]) && !empty ($_POST["username"])){
    $username = $_POST["username"];
    $expire = time() + 10;
    setcookie("username" , $username, $expire);
    $_COOKIE["username"] = $username;
}
if (isset ($_COOKIE["username"])){
    $username = $_COOKIE["username"];
    $returning = true;
} else {
    $username = "";
    $returning = false;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>COOKIE</title>
</head>
<body>
   <?php if ($returning) { ?>
         <p>Welcome <?php echo $username; ?></p>
    <?php } else { ?>

        <p>Welcome to WebSite .</p>
        <p>Please Enter your name : </p>
        <form action="#" method="POST">

            <input type="text" name="username" value="" placeholder="Your Name" />
            <input type="submit" value="submit" />
        
        </form>
    <?php } ?>
    
</body>
</html>
فایل پیوست

mostafa mehrjoo
mostafa mehrjoo

24 فروردین 00

0
حذف شده

یک سوال دیگه هم راجب به این مثال دارم اینه که چرا وقتی رفرش میکنم صفحه رو بازم کوکی ذخیره داره و قسمت Welcome اول رو همش نشونم میده با اون اسمی که زدم . ولی وقتی برنامه رو میبندم و زمان کوکی ام تمام شده فرم رو نشون میده . توی prinrr هم نشون میده که کوکی هنوز هست با هر رفرش ولی وقتی برنامه بسته بشه و زمان کوکی میگذره دیگه نشون نمیده توی print_r

فایل پیوست

mostafa mehrjoo

توسط

mostafa mehrjoo

24 فروردین 00

0
حذف شده

سلام و احترام

درباره سوال اول باید بهتون بگم که شما با $_COOKIE["username"]  هیچ کوکی ست نمیکنید بلکه بهش مقدار جدید میدید، اگه میخواید کوکی ست کنید از همون متد setcookie استفاده کنید

در کل کوکی ها تا زمانی که شما مشخص میکنید زنده میمونند داخل مرورگر کاربر و فرقی نمیکنه شما مرورگر رو ببندید یا کامپیوتر رو خاموش کنید، پس تا اون زمانی که مشخص کردید شما کوکی خودتون رو توی مرورگر دارید

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

25 فروردین 00

حذف شده
در مورد توضیح اول متوجه هستم که دارم مقدار میدم ولی وقتی ست میکنم کوکی رو مگه مقدار بهش نمیدم . منظور از سوال اول این بود چرا اینجا اومده ست کرده بعد مقدار داده . درحالی که توی همون ست هم بهش مقدار داده
mostafa mehrjoo

25 فروردین 00

حذف شده
اما اگ خط شش مقدار نذارید برنامه که اجرا بشه دفعه اول فقط اطلاعات ارسال میشه ولی فرم رو نشون میده که خالیه و این درحالی هست که اگر خالی فرم رو بزنم داره کوکی رو بهم نشون میده
mostafa mehrjoo

25 فروردین 00

حذف شده
اما در مورد سوال دوم بله باز هم شما درست میگید تا زمانی که من مشخص میکنم کوکی باقی می مونه اما اینجا شما کافیه یه پرینت ار بزنید و ببیند که هر بار رفرش که میزنید کوکی هنوز هم هست . حتی زمانی که کوکی زمانش تمام شده
mostafa mehrjoo

25 فروردین 00

حذف شده
اگه توی مروگر خودتون inspect بگیرید میبینید که توی بخش cookie ها کوکی شما طبیعتا هستش و اگه بخش session ها رو هم نگاه بندازید میبیند که همراه با کوکی شما یه session هم ثبت شده که با بستن مرورگرتون اگه کوکیتون زمانش تموم شده باشه میبینید که هم کوکی میپره و هم sessionش
امیر صالحی

26 فروردین 00

حذف شده
مشکل منم همینه که اطلاعات بعد از اتمام کوکی داخل همون قسمتی که شما میگید هم پاک نمیشه
mostafa mehrjoo

26 فروردین 00

حذف شده
ولی مرورگر رو که میبندم و فایل رو دوباره ران میکنم زمان کوکی که تمام میشه فرم رو نشون میده
mostafa mehrjoo

26 فروردین 00

حذف شده
فایل کامل پروژتون رو قرار بدید تا من کامل بررسیش کنم
امیر صالحی

27 فروردین 00