یک سوال در مورد لاگین موندن همیشه

Goroop.ir

Member
با سلام
من دوباره اومدم داخل برنامه نویسی php خدایی تمام برنامه هایی که نوشته بودم همشون پاک شدند الان دارم از نوع شروع میکنم پاک شدن برنامه هام بخاطر تعویض ویندوزم بود که پارتیشن کردم و ....

خلاصه اقا من تا حالا با سشن کار نکردم یعنی بلدم سشن رو ولی اصلا توی برنامه هام ازش استفاده نکردم و فقط کوکی
بیشتر اطلاعاتم در مورد php از بین رفته

حالا من میخام که یک فرم لاگین داشته باشم که دارای :
-------------------------------------------
نام کاربری
پسورد
و یک input radio که نوشته ورود برای همیشه
submit
--------------------------------------------

خوب حالا این ورود برای همیشه چطوری هست ؟ با کوکی یا سشن ؟

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

راستی کوکی بهتره یا سشن توضیح نمیخام فقط بگید کدوم بهتره



قربون هرچی ایرانیه نه بخاطر اینکه به سوالم جواب بدن بخاطر ایرانی بودنشون
 

I.NoBody

Active Member
کار خاصی نمی خواد.
فقط با کوکی میشه.
شما باید به کوکی زمان ندی.
 

yakoza

Well-Known Member
کار خاصی نمی خواد.
فقط با کوکی میشه.
شما باید به کوکی زمان ندی.

نه دوست من اشتباه نکن
اگه برای کوکی expire تعیین نکنیم مثل سشن وقتی مرورگر رو ببندی کوکی هم از بین میره

HTML:
If not set, the cookie will expire at the end of the session (when the browser closes).

برای این کار میتونی زمان expire رو برای 100 سال دیگه بدی

PHP:
setcookie ("TestCookie", "",time()+60*60*24*30 );

کد بالا یک کوکی با اسم TestCookie و مقدار خالی و زمان expire ( زمان مردن ) 30 روز ایجاد میکنه

امیدوارم موفق باشی
 

Goroop.ir

Member
یعنی با ید اینطوری عمل کنیم :
if ($_POST['radiobox'])
{
setcookie ("TestCookie", "",time()+60*60*24*30 );
}
درسته ؟

راستی برای اینکه تغلب در سیستم های کلیکی نشه از چی استفاده میکنن ؟
کوکی یا سشن ؟
من از کوکی استفاده کردم و در if قرار دادم که این if ها برای هر چیزی بود ولی باز هم تغلب میشد
 

yakoza

Well-Known Member
یعنی با ید اینطوری عمل کنیم :
if ($_POST['radiobox'])
{
setcookie ("TestCookie", "",time()+60*60*24*30 );
}
درسته ؟

راستی برای اینکه تغلب در سیستم های کلیکی نشه از چی استفاده میکنن ؟
کوکی یا سشن ؟
من از کوکی استفاده کردم و در if قرار دادم که این if ها برای هر چیزی بود ولی باز هم تغلب میشد

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

amirkhoshhal گفت:
سلام .
و چه جوری باید کوکی رو پاک کرد ؟
ممنون

برای این کار میتونی اون رو unset کنی

PHP:
unset($_COOKIE['TestCookie'])

قربانت ناصر
 
سلام . یه سئوالی دارم :
من از Session واسه Login کردن استفاده می کنم و مشکلی ندارم ، زمانی هم که چک باکس "Remember Me" فعال می شه یه کوکی می سازم .
کد من هم اینه :

Log in.php
PHP:
if( $_POST['remember'] )
{
	setcookie("user",$user,time()+60*60*24*30);
}



Admin.php
PHP:
if( isset($_SESSION['username']) AND isset($_GET['logout']) )
{
	session_destroy();
	setcookie("user","",time()-86400);
	//unset($_COOKIE['user']);
	error("<p align=\"center\">شما با موفقیت از کنترل پنل خارج شده اید ! لطفا چند لحظه صبر نمایید</p>","#000000",-1);
	redirect("?reload",3500);
	exit;
}
if( !isset($_SESSION['username']) && !isset($_COOKIE['user']) )
{
	include("login.php");
}
else
{
	echo	"Welcome To Admin";
	echo	"<a href=\"?logout\">Log Out</a>";
}
وقتی هم کاربر "Remember Me" رو انتخاب می کنه و Log In می کنه به راحتی می تونی از پنل Admin خارج شه ( Log Out کنه )
اما وقتی مرورگر بسته می شه و دوباره باز میشه ( توسط کاربر ) ، مرورگر می ره به پنل Admin ( بدون Log In ) ولی نمی شه Log Out کرد .
دلیلش هم اینه که ما تو شرط گفتیم که اگر Session و کوکی (هر دو تا ) وجود نداشتند برو به صفحه Log In
وقتی هم که مرورگر بسته شه Session هم پاک می شه ، در نتیجه شرط ما مقدارش False می شه !
حالا من هر چقدر فکر کردم نمی دونم چه شرطی جاش بذارم ؟ هر شرطی که گذاشتم اونطرف زمانی که کاربر بدون فعال کردن چک باکس "Remember Me" لاگین کنه ( بدون کوکی ) نمی تونه Log Out کنه !
ممنون می شم اگه دوستان راهنمایی کنند .
 

saidshp

Member
برای لاگین موندن بعد از بسته شدن مرورگر فقط کافیه کد زیر رو اجرا کنید نیازی به کوکی هم نیست.
PHP:
ini_set('session.cookie_lifetime', 86400 );
session_start();
$_SESSION['user']=$username;
سشن کاربر برای 24 ساعت فعال هست.
 

irp30net

Member
کد رو به صورت زیر نوشتم.فکر کنم همه چیز مشخص باشه
PHP:
// REMEMBER ME
if(isset($remember) AND $remember == "true") {
setcookie("username", "$user", time()+60*60*24*30, "/");
setcookie("password", "$pass", time()+60*60*24*30, "/");
setcookie("userid", "$userid", time()+60*60*24*30, "/");
} 
// DONT REMEMBER ME
else {
setcookie("username", "$user", 0, "/");
setcookie("password", "$pass", 0, "/");
setcookie("userid", "$userid", 0, "/");
}
توجه کن که هرگز نام کاربری و کلمه کاربر رو به طور خام در کوکی ذخیره نکنی.در ضمن برای هش کردن از ترکیب دو یا چند تابع استفاده کن
اگه می خوای اطلاعات کاملی در رابطه با لوگین داشته باشی به سایت ایران پی اچ پی برو و در بخش امنییت انجمن ها تاپیک امنیت در تابع لوگین رو مطالعه کن
برای اطلاعات تکمیلی عبارات زیر رو در گوگل جست جو کن
login tutorial
USER AUTHORIZATION
موفقیت روزافزون هر ایرانی آرزوی دیرینه ماست...
 

جدیدترین ارسال ها

بالا