🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Mehrjoo
یک سوال از یک مثال زیبا
جامعه پی اچ پی ایجاد شده در ۲۴ فروردین ۱۴۰۰

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

<?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>

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

Mehrjoo ۲۴ فروردین ۱۴۰۰، ۱۲:۴۵

سلام و احترام

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

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

 

امیر صالحی ۲۵ فروردین ۱۴۰۰، ۱۵:۴۵