molana_rumy

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

5 پست در این موضوع

سلام خدمت دوستان

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

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

اما اینکه چطوری بفهمیم کاربری که روی باتن کلیک کرده کدوم یکی از کاربران وارد شده هست رو نمیدونم.

تمام مشکل من همین کدی هست که این شناسایی رو انجام میده.(شاید با استفاده از sessionID هست ولی کد اون رو نمیدونم)

در ضمن میخواستم بدونم جوملا اجازه ساخت جدول و تغییر مقادیر اون رو بدون استفاده از متدهای خودش میده یا نه؟ و اینکه وقتی این کد نوشته شد در بین کدام کدهای فرم لاگین باید قرار بگیره تا اعمال بشه؟ مثلا بعد از کد زیر برای زمان logout کردن؟؟

<?php if($type == 'logout') : ?>

اصلا هم نمیخوایم از متدهای آماده جوملا استفاده کنیم.

با تشکر

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

برای اینکار باید از فریم ورک جوملا استفاده کنید که ارتباطی به session و cookie نداره

باید از متد getUser استفاده کنید که نمونه کدهاش رو براتون قرار میدم:

<?php

// این خط اطلاعات کابر لاگین شده رو داخل متغییر میریزه
 $userinfo =& JFactory::getUser();

 // این خط شناسه کاربر لاگین شده رو داخل متغیر میریزه
 $user_id = $userinfo->id;

 // این خط چک میکنه کابر لاگین شده یا نه اگر لاگین نباشه کاربر رو به صفحه لاگین جوملا هدایت میکنه

 if($user->id == 0)
       $app->Redirect(JRoute::_('index.php?option=com_users&view=login', false));

?>

Share this post


Link to post
Share on other sites

ارسال شده در (ویرایش شده)

ممنونم دوست عزیز

من همه کدی رو که میخواستم نوشتم. فقط یه مشکل کوچیک دارم. وقتی میخوام در دیتابیس یه جدول بسازم, اول پیشوند جداول رو میگیرم و بعد نام جدولی که میخوام بسازم (tch) رو بهش اضافه میکنم و میدمش به کوئری, ولی جدول ساخته نمیشه اما اگه نام جدول رو مستقیم بدم ساخته میشه!! ممنون میشم کسی بگه کد رو به چه صورت باید بنویسم.

$db = &JFactory::getDBO();
	$pre_Tb=$db->getPrefix();
	$Tname=$pre_Tb."tch";
	$query = "CREATE TABLE '$Tname' (`username` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, `ch` MEDIUMINT(6) NOT NULL, `tch` MEDIUMINT(10) NOT NULL,PRIMARY KEY (username)) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_persian_ci;";
	$db->setQuery($query);
	if (!$db->query())
           return 0;
	else return 1;

یه سوال دیگه هم دارم:

اگه یه ماژول بنویسیم که یه فرم داشته باشه مقدار action در فرم چی میشه؟ خود جوملا index.php رو بهش میده ولی من نمیدونم اطلاعات با این آدرس کجا میره؟

با تشکر از دوستان

ویرایش شده در توسط molana_rumy

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری