/
  • چگونگی شناسایی کاربران

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی چگونگی شناسایی کاربران
    نویسنده پیام
    molana_rumy آفلاین
    عضو
    ***

    ارسال‌ها: 50
    تاریخ عضویت: ۱۳۸۹ بهمن ۳۰
    اعتبار: 1
    تشکرها : 39
    ( 8 تشکر در 5 ارسال )
    ارسال: #1
    چگونگی شناسایی کاربران
    سلام خدمت دوستان

    فرض کنید یه کاربر قبلا عضو سایت شده و حالا با پر کردن فرم لاگین وارد سایت میشه و اطلاعاتش توی دیتابیس ذخیره میشه (session و cookie)

    حالا فرض کنید که میخوایم یه ماژول بنویسیم با یک باتن که وقتی کاربر اون رو کلیک کرد, یه سری اطلاعات در جدول دیگه ای برای اون کاربر ذخیره بشه و وقتی خارج شد, اطلاعات جدول تغییر بکنه.

    اما اینکه چطوری بفهمیم اون کاربری که روی باتن کلیک کرده کدوم یکی از کاربران وارد شده هست رو نمیدونم.
    تمام مشکل من همین کدی هست که این شناسایی رو انجام میده.(شاید با استفاده از کوکی و اطلاعات داخل جدول session هست ولی کد اون رو نمیدونم).

    ممنون میشم دوستان راهنمایی کنن
    با تشکر
    __________________________________________________________________________
    کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
    تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
    باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
    مولانا جلال الدین محمد
    ۱۳۹۱ آبان ۵ ۱۲:۰۳ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,510
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #2
    RE: چگونگی شناسایی کاربران
    ببینید شما باید وقتی یه کاربر لاگین میکنه، آیدی اون کاربر رو تو یه سشن ذخیره کنید که این جور جاها ازش استفاده کنید

    وقتی کاربر روی باتن کلیک کرد، آیدی کاربر از سشن گرفته میشه و به فانکشن ارسال میشه، به همین راحتی Rolleyes
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۱ آبان ۵ ۱۲:۳۱ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : molana_rumy
    molana_rumy آفلاین
    عضو
    ***

    ارسال‌ها: 50
    تاریخ عضویت: ۱۳۸۹ بهمن ۳۰
    اعتبار: 1
    تشکرها : 39
    ( 8 تشکر در 5 ارسال )
    ارسال: #3
    RE: چگونگی شناسایی کاربران
    ممنون

    بله, ولی وقتی چند کاربر وارد سایت شده باشن, از کجا بدونیم کدومشون رو باتن کلیک کرده تا اطلاعات رو برای اون کاربر تغییر بدیم؟؟

    با تشکر
    __________________________________________________________________________
    کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
    تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
    باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
    مولانا جلال الدین محمد
    ۱۳۹۱ آبان ۵ ۱۰:۴۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,510
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #4
    RE: چگونگی شناسایی کاربران
    ببینید سشن یعنی همین

    هر کاربری وقتی روی باتن کلیک کنه، سشن خودش ارسال میشه به تابع Wink
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۱ آبان ۵ ۱۲:۴۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : molana_rumy
    masoud1990 آفلاین
    مسعود گودرزی
    ***

    ارسال‌ها: 225
    تاریخ عضویت: ۱۳۸۹ اسفند ۴
    اعتبار: 5
    تشکرها : 379
    ( 200 تشکر در 123 ارسال )
    ارسال: #5
    RE: چگونگی شناسایی کاربران
    ببین تو وقتی لاگین میکنی یه همچین چیزی رو استفاده میکنه حالا من شبه کدش رو برات مینویسم
    کد:
    if($login=="ok"){
    $_SESSION['u_id']=$user->id;
    }
    برای زمانی هم که میخوای اطلاعاتت رو چک کنی اینطوری الان مثلا من مثال زدم که میخوای وارد بانک کنی
    کد:
    if(isset($_POST['button'])){
        $user_id=$_SESSION['u_id'];
        $sql="INSERT INTO 'table' WHERE id='".$user_id."';";
        
    }
    __________________________________________________________________________
    تونل ها مي گويند : راه هست؛ حتي در دل سنگ ها.Wink
    استفاده از دکمه تشکر(Heart) نشان شخصیت شماست;
    درگاه پرداخت 724
    ۱۳۹۱ آبان ۵ ۰۳:۴۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : molana_rumy hamid_80386 miladr24
    molana_rumy آفلاین
    عضو
    ***

    ارسال‌ها: 50
    تاریخ عضویت: ۱۳۸۹ بهمن ۳۰
    اعتبار: 1
    تشکرها : 39
    ( 8 تشکر در 5 ارسال )
    ارسال: #6
    RE: چگونگی شناسایی کاربران
    ممنون از راهنماییتون

    من میخوام این ماژول رو برای جوملا بنویسم. یه خرده گیج شدم, یعنی وقتی یه باتن بزاریم و کاربر روش کلیک کنه بطور خودکار session اون کاربر ارسال میشه به تابعی که برای رخداد کلیک در فرم قرار دادیم؟ یا باید کدی برای اینکار بنویسیم؟ اگه بله اون کد چیه؟
    این کدی که شما فرمودید یک کد مستقل هست یا اینکه user قبلا تعریف شده؟

    کد PHP:
    $_SESSION['u_id']=$user->id
    میشه id کاربر رو در کوکی ذخیره کنیم و با کلیک بفرستیم تا با id موجود در دیتابیس مقایسه بشه و برای اون کاربر تغییرات رو اعمال کنیم؟

    البته تا مقدار زیادی متوجه شدم چی شد. ممنون از دوستان

    با تشکر
    __________________________________________________________________________
    کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
    تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
    باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
    مولانا جلال الدین محمد
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۵ ۰۴:۰۱ عصر، توسط molana_rumy.)
    ۱۳۹۱ آبان ۵ ۰۳:۵۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,510
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #7
    RE: چگونگی شناسایی کاربران
    ببینید شما باید سشن آیدی رو بعنوان متغیر به تابع ارسال کنید
    خود تابع متوجه نمیشه...
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۱ آبان ۵ ۰۴:۱۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : molana_rumy
    masoud1990 آفلاین
    مسعود گودرزی
    ***

    ارسال‌ها: 225
    تاریخ عضویت: ۱۳۸۹ اسفند ۴
    اعتبار: 5
    تشکرها : 379
    ( 200 تشکر در 123 ارسال )
    ارسال: #8
    RE: چگونگی شناسایی کاربران
    ببین session ها cookie ها روی مرورگر کاربر سیو میشن
    و تو میتونی هر وقت توی برنامه نیاز داشتی استفادشون کنی سشن ها تا زمانی که مرورگر بسته نشده یا اینکه تا اون زمانی که براشون تعریف میکنی معتبر هستن ولی کوکی ها روی سیستم کاربر ذخیره میشن و حتی اگر مرورگر رو هم ببندن تا زمانی که براشون تعریف کردی باز هستن
    در ضمن جوملا برای استفاده از سشن ها ساختار خواص خودش رو داره
    این رو اول میزاری
    کد PHP:
    $session =& JFactory::getSession(); 
    برای ست کردن
    کد PHP:
    //$session->set('نام سشن',"مقدار سشن","فلگ","زمان به میلی ثانیه");
    $session->set('msgjson',$msgjson); 
    برای دریافت مقدار
    کد PHP:
    //$msgjson = $session->get('نام سشن');
    $msgjson $session->get('msgjson'); 
    برای پاک کردن
    کد PHP:
    //$session->clear('نام سشتن');
    $session->clear('msgjson'); 
    __________________________________________________________________________
    تونل ها مي گويند : راه هست؛ حتي در دل سنگ ها.Wink
    استفاده از دکمه تشکر(Heart) نشان شخصیت شماست;
    درگاه پرداخت 724
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۵ ۰۵:۲۴ عصر، توسط masoud1990.)
    ۱۳۹۱ آبان ۵ ۰۵:۱۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : molana_rumy Reza
    molana_rumy آفلاین
    عضو
    ***

    ارسال‌ها: 50
    تاریخ عضویت: ۱۳۸۹ بهمن ۳۰
    اعتبار: 1
    تشکرها : 39
    ( 8 تشکر در 5 ارسال )
    ارسال: #9
    RE: چگونگی شناسایی کاربران
    از راهنماییتون ممنونم
    من تونستم ورود یا عدم ورود کاربر رو تشخیص بدم و پیغام مناسب رو بهش بدم ولی الان چند تا مشکل دیگه دارم.

    1- وقتی کد زیر رو در helper.php برای دریافت sessionId مینویسم
    کد PHP:
    $userid $session->get('userid');
    return 
    $userid
    بهم خطای زیر رو میده.
    
    Notice: Undefined variable: session in ...\helper.php

    Fatal error: Call to a member function get() on a non-object in ...\helper.php
    من دارم کد رو اشتباه مینویسم یا این کد پیش زمینه ای داره که من ننوشتم؟

    2- وقتی کد زیر رو برای خواندن از دیتابیس مینویسم, خروجی "array" بهم میده.
    کد PHP:
    $db = &JFactory::getDBO();
    $query "SELECT `userid` FROM `joom`.`jos_session` WHERE `username`='admin'";
    $db->setQuery($query);
    $items = ($items $db->loadObjectList())?$items:array();
    return 
    $items
    وقتی هم که اون رو مثلا به شکل
    کد PHP:
    $items[0
    مینویسم خطای زیر ایجاد میشه.
    Catchable fatal error: Object of class stdClass could not be converted to string
    ]

    3- مشکل آخر اینه که من در فایل default.php وقتی میخوام فرم ایجاد کنم, داده ها رو باید به کدام آدرس بفرستم و کجا پردازش کنم؟ خود جوملا بصورت index.php آدرس میده ولی من نمیدونم اطلاعات فرم کجا پردازش میشه!!
    کد PHP:
    <form action="index.php" method="post" name="form" id="form-b"
    اگه من آدرس رو بصورت زیر بنویسم (از لحاظ امنیتی یا هر چیز دیگه) مشکل داره؟
    کد PHP:
    <form action="modules/mod_name/filename.php" method="post" name="form" id="form-b"

    با تشکر فراوان
    __________________________________________________________________________
    کار من این است که کاریم نیست,عاشقم از عشق تو عاریم نیست
    تا که مرا شیر غمت صید کرد,جز که همین شیر شکاریم نیست
    باده ات از کوه سکونت بَرَد,عیب مکن زان که وقاریم نیست
    مولانا جلال الدین محمد
    ۱۳۹۱ آبان ۷ ۱۱:۵۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    masoud1990 آفلاین
    مسعود گودرزی
    ***

    ارسال‌ها: 225
    تاریخ عضویت: ۱۳۸۹ اسفند ۴
    اعتبار: 5
    تشکرها : 379
    ( 200 تشکر در 123 ارسال )
    ارسال: #10
    RE: چگونگی شناسایی کاربران
    من راهنماییتون میکنم به داکیومنت های خود جوملا:دی
    http://docs.joomla.org/JSession
    __________________________________________________________________________
    تونل ها مي گويند : راه هست؛ حتي در دل سنگ ها.Wink
    استفاده از دکمه تشکر(Heart) نشان شخصیت شماست;
    درگاه پرداخت 724
    ۱۳۹۱ آبان ۸ ۱۲:۲۶ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Reza molana_rumy
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS