راکت

نشان دادن پیغام سفارشی در PHP

7 پاسخ

دوستان میخوام بعد از این که یک اتفاق در برنامه من افتاد ، کاربر به صفحه دیگری ریدایرکت بشه و یک پیغام موفقیت آمیز (alert) به کاربر نمایش داده بشه.

به نظرتون استفاده از چه روشی استاندارد تر هست؟
با کوکی ها ، سشن ها ، و آدرس GET میشه این کار رو انجام داد.

@milad @mhyeganeh @golshahimohammadreza @endworld

ثبت پرسش جدید

پاسخ‌ها

7
Mohammad reza Golshahi
Mohammad reza Golshahi
@golshahimohammadreza

تخصص: Go - Python

سلام دوست عزیز
@arminamirinasab

برای اینکار باید از event - listener استفاده کنید
و در شروع میتونید از سرویس pusher استفاده کنید

hamed
hamed
@hamedkh72

سلام
@arminamirinasab
معمولا برای چنین کاری از cookie استفاده نمیشه و به نظرم منطقی هم نیست.
در مورد session و GET هم اگر هدفتون این هست که صرفا یه پیغام موفقیت نمایش داده بشه میتونید هم از session استفاده کنید و هم با استفاده از GET اینکار رو میتونید انجام بدید. در غیر اینصورت اگر همزمان یا بعد از پیغام مورد نظر ، تغییراتی در داده ها یا عملیاتی قراره انجام بشه حتما از session باید استفاده کنید.

شاید پاسخ شما همین‌جا باشد

آران عبدی
آران عبدی
@Aranabdi

تخصص: برنامه نویس

سلام، در لاراول این مورد با سشن ها هندل میشه و لاراول مورد مناسبی هست برای الگوبرداری.. من پیشنهاد می کنم که از سشن ها استفاده کنید البته در لاراول پیغام ها یک بار مصرف هستند و به محض اینکه یکبار نشان داده شدند destroy میشن.

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

عملیات خیلی رایجی هست و تا جایی که بنده می‌دونم رایج ترین روشش هم ذخیره این اطلاعات در Session کاربر هست. یعنی:

هر وقت اون اتفاقی که مدنظرتون هست افتاد، یک داده ای همراه با پیام مورد نظرتون داخل session کاربر ذخیره می‌کنید. (می‌دونید که داده ها در session از جنس key-value هستند)

و بعد کاربر رو به صفحه مورد نظر ریدایرکت می‌کنید.

حالا در **** بعدی باید کدی در صفحه تون داشته باشید که با هر بار اجرا شدن اون صفحه چک کنه آیا فلان key مورد نظر در session کاربر وجود داره یا نه و اگر وجود داشت یک عملیاتی رو انجام بدید. مثلا از دستور alert() جاوااسککریپت استفاده کنید. یا یک پیغامی بالای صفحه به نمایش در بیاد و یا در قالب یک popup یا modal مثل sweetalert باشه.

نکته مهم و آخر هم اینکه طبیعتا نمی خواید این اتفاق تا ابد تکرار بشه. پس لازم هست بعد از اینکه مقدار رو از session خوندید و کارهای لازم رو انجام دادید، اون داده رو از session کاربر حذف کنید.

در فریم ورک لاراول هم این قضیه خیلی تمیز در قالب flash data پیاده سازی شده:
https://laravel.com/docs/8.x/session#flash-data

محمد
محمد
@Mohammad79

تخصص: همیشه در حال یادگیری ...

سلام @arminamirinasab
بهترین روش از نظر من استفاده از $_GET هستش. توی صفحه مقصد یه شرط تعریف کنید و از طریق اون پیام مورد نظرتونو نمایش بدید.
پیشنهاد من واسه پیغام استفاده از https://sweetalert2.github.io/ هستش. کارای زیر انجام بدید.
ابتدا sweetalert2 توی پروژه فراخونی کنید.
فانکشن زیر تعریف کنید تا بتونید همه جا ازش استفاده کنید.

function alert($alertMessage,$alertType){
    echo "<script>
    const Toast = Swal.mixin({
    toast: true,
    position: 'bottom-end',
    showConfirmButton: false,
    timer: 3200,
    timerProgressBar: true,
    didOpen: (toast) => {
        toast.addEventListener('mouseenter', Swal.stopTimer);
        toast.addEventListener('mouseleave', Swal.resumeTimer);
    }
    });
    Toast.fire({";
        echo "icon:'" . $alertType . "'";        
        echo ",title:'" . $alertMessage . "'";
    echo "});
    </script>"
    ;
;}

زمانی که میخواید ریدایرکت کنید از کد زیر استفاده کنید.

header('Location: index.php?login=success');

و جایی که میخواید پیام نمایش بدید از کد زیر استفاده کنید.

    if(@$_GET['login'] == "success"){
        alert("شما با موفقیت وارد حساب کاربری خود شدید.", "success");
    };

با تابع alertبه راحتی میتونید پیام هارو نمایش بدید. ورودی اول متن پیامتون هستش و ورودی دوم هم آیکن و یا نوع پیام که میتونید واسه اون از تصویر زیر کمک بگیرید.
توضیح تصویر رو وارد کنید

امیدوارم براتون مفید باشه باز اگه سوالی بود بپرسید خوشحال میشم بتونم کمک کنم. :)

آرمین امیری نسب
آرمین امیری نسب
@arminamirinasab

تخصص: برنامه نویس فرانت اند

@golshahimohammadreza @hamedkh72 @Aranabdi @endworld @mhyeganeh
ممنون از پاسخ هاتون در رابطه با دستور GET یک موردی که وجود داره اینه که دیگه نمیشه دستور GET رو حذف کرد و این همین شکل تکرار میشه.

فکر می کنم سشن راه حل بهتری باشه.

راستی Post چطور به یک صفحه که هدایت می کنیم ازش استفاده کنم البته فقط باید از طریق فرم ارسال بشه.ولی فکر نکنم شدنی باشه شما هم نظرتون رو درباره روش POST بگید

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام