آرمین امیری نسب
3 سال پیش توسط آرمین امیری نسب مطرح شد
7 پاسخ

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

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

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

@milad @mhyeganeh @golshahimohammadreza @endworld


ثبت پرسش جدید
Mohammad reza Golshahi
تخصص : Go - Python
@golshahimohammadreza 3 سال پیش مطرح شد
0

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

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


hamed
@hamedkh72 3 سال پیش آپدیت شد
2

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


آران عبدی
تخصص : برنامه نویس
@Aranabdi 3 سال پیش آپدیت شد
2

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


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 3 سال پیش مطرح شد
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
2

عملیات خیلی رایجی هست و تا جایی که بنده می‌دونم رایج ترین روشش هم ذخیره این اطلاعات در 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 3 سال پیش مطرح شد
0

سلام @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 3 سال پیش مطرح شد
1

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

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

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


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

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