یک وبلاگ دیگر از یک برنامه نویس دیگر
نوشتههایی با برچسب فایرباگ
ایجاد مکرر کلید جلسه
شهریور ۱۴م
در مورد جلسات این چند روزه زیاد نوشتم. تو آخرین نوشته، یه دوستی کامنت گذاشتن که استفاده از تابع session_regenerate_id میتونه کمک کنه برای جلوگیری از دزدیدن جلسه ؟ برای تست به این چیزها احتیاج هست :
اول از همه فایرفاکس
دوم فایرباگ
سوم FireCookie
چهارم یک بروزر دیگه غیر از فایرفاکس، مثلا Opera .
کدی مثل این رو ایجاد کنید :
<?php
session_start();
session_regenerate_id();
if (isset($_SESSION['test'])){
echo $_SESSION['test'];
echo "<br />";
echo session_id();
}else{
$_SESSION['test']=$_SERVER['HTTP_USER_AGENT'];
echo "First time";
}
این کد، رشته مربوط به User Agent رو توی جلسه ذخیره میکنه. بعد از دفعه اول که جلسه ایجاد بشه هر بار کلید جلسه هم نمایش داده میشه و همون رشته ذخیره شده، نمایش کلید جلسه فقط برای اینه که دسترسی به کلید جلسه یک کمی راحت شه :D
اول این کد رو توی Opera یا هر بروزری غیر از فایرفاکس اجرا کنید. البته یه Refresh نیازه که کلید و محتوا رو نشون بده.
حالا همون صفحه رو توی فایرفاکس باز کنید. دوبار هم Refresh کنید که هم کلید جلسه رو ببینید هم محتوا رو، این یکی با اون یکی فرق میکنه (طبیعیه دیگه!) حالا توو همین صفحه فایرباگ رو فعال کنید، اگه FireCookie نصب باشه یه تب داره به اسم Cookies اونجا برید، روی PHPSESSID کلیک راست کنید و گزینه Edit رو بزنید:
بعد تو دیالوگ زیر توی قسمت Value مقداری که الان توی Opera (یا هر Browser دیگه که دوست دارید) نمایش داده میشه رو کپی کنید.قبل از اینکه این مقدار کپی شده رو توی فایرفاکس بگذارید، چند بار Opera رو Refresh کنید که یه کلید جدید ساخته بشه (با کمک اون تابع session_regenerate_id ) بعد اون کلیدی که مربوط به جلسه قبل بود و کپی کردید رو توی دیالوگ زیر قسمت Value بگذارید (این دیالوگ رو گفتم، با کلیک راست روی کلمه PHPSESSID و انتخاب گزینه Edit میتونید ببینید، قسمت Host و زمان و … مهم نیست و برای هر کس متفاوته و بستگی داره به هاستی که دارید این کد رو اجرا میکنید ) اینطوری مطمئن میشید که دیگه اون کلید جلسه برای Opera از بین رفته (که البته نرفته !) :
تایید کنید و بعد یه Refresh و اونوقته که اینو میبینید :
یه مشکل دیگه این تابع، اینه که دو بار کوکی مربوط به جلسه رو توی Header میفرسته، Browser های جدید و مدرن مشکلی ندارن با این قضیه ولی مثلا روی بعضی گوشیها قاطی میکنه :)
اگر هم با آرگومان true این تابع رو فراخوانی کنیم، ممکنه مشکل از دست دادن جلسه رو داشته باشیم(توی تست من با Refresh های سریع)، بعلاوه اینکه سرعت رو هم کم میکنه، البته نسبتا.
ممنون از پیام واسه اینکه این تابع رو هم گوشزد کردن.
FireBug
بهمن ۱۱م
شاید اگر FireBug نبود اینقدر FireFox رو دوست نداشتم. سالهاست که از فایرفاکس استفاده میکنم و بارها افرادی را دیدم که میگفتند مثلا فلان مرورگر (Browser)،از فایرفاکس سریعتره، یا استاندارد تره. منتها هیچ وقت هیچکس رو ندیدم که بگه برای یهWeb Developer مرورگر بهتری از فایرفاکس هست، و اگر هم گفته چرت و پرت بوده.
یکی از دلایل من همین فایرباگه. اگه برای یه کار کوچک هم دم دستم نباشه،کلا احساس میکنم که فلجم! یعنی وقتی نصب نیست و جایی هستم که امکان نصبش هم نیست،کلا بیخیال کار میشم و میشینم فیلم میبینم یا میرم یه گوشه کتاب میخونم. چرا؟ سادست نصبش کنید (از اینجا برای نصبش اقدام کنید)بعد متوجه خواهید شد.
فایرباگ از چند قسمت تشکیل شده، اولیش کنسول هست که از خطاهای جاوا اسکریپت، تا درخواستهای آژاکس (یه دوستی میگفت بنویس ایجکس) و اگه یه سری افزونه دیگه هم نصب باشه پیغامهای اون افزونه ها همه رو نشون میده.
ادامه مطلب







