برگزیده های پرشین تولز

یک مشکل !

javad409

کاربر تازه وارد
تاریخ عضویت
4 ژانویه 2006
نوشته‌ها
7
لایک‌ها
0
سلام
با عرض پوزش .. ( نمیدونستم Title رو چی بنویسم !)

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

کد:
<?php
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header("WWW-Authenticate: Basic realm=\"Private Area\"");
        header("HTTP/1.0 401 Unauthorized");
        print "Sorry - you need valid credentials to be granted access!\n";
        exit;
    } else {
        if (($_SERVER['PHP_AUTH_USER'] == 'test1') && ($_SERVER['PHP_AUTH_PW'] == 'test1')) {
            print "Welcome to the private area!";
        } else {
            header("WWW-Authenticate: Basic realm=\"Private Area\"");
            header("HTTP/1.0 401 Unauthorized");
            print "Sorry - you need valid credentials to be granted access!\n";
            exit;
        }
    }
?>

زمانی که شما این کد رو در فایلی کپی کنید (login.php ) زمانی در خواست فایل از شما یک Username & password میخواد !
که با توجه به این خط
کد:
        if (($_SERVER['PHP_AUTH_USER'] == [COLOR="Red"]'test1')[/COLOR] && ($_SERVER['PHP_AUTH_PW'] == [COLOR="red"]'test1'[/COLOR])) {
کلمه کاربری و پسورد test1 هست !
حالا مشکل اینجاست که زمانی که این پسورد و یوزر نیم رو وارد میکنم وارد صحفه نمیشه و پیغام رو نشون نمیده !

فکر میکنید مشکل از کجاست !


درضمن این روش امنیت خوبی داره !
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
سلام

بجاي isset از empty استفاده کن ببين درست نمي شه؟
PHP:
if(empty($???)){
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
یه بارم با double کوتیشن تست کن! یعنی از " استفاده کن!
 

vahidrk

کاربر قدیمی پرشین تولز
تاریخ عضویت
2 جولای 2005
نوشته‌ها
3,512
لایک‌ها
561
سن
36
محل سکونت
Home
سالار جون هنوز هم مثل هميشه داري به مشكلات بچه ها جواب مي دي.
اي ول.
ولي نمي دونم چي شده با من قهري؟چرا توي ياهو جواب منو نمي دي؟
39.gif
 

javad409

کاربر تازه وارد
تاریخ عضویت
4 ژانویه 2006
نوشته‌ها
7
لایک‌ها
0
هر دو روش رو تست کردم ولی جواب نمیده !

راستی شما می تونید برم کاری کنید که بجای این روش یک صحفه login ( یک فرم که نام کاربری و پسورد یخواهد ! ) بارم درست کنید ! ( که بجای این روش استفاده کنم ! ( میخواهم این روش رو یاد بگیرم ! )
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
مي توني از session استفاده کني
من تو اين تاپيک روش سادشو توضيح دادم http://forum.persiantools.com/showthread.php?t=35521

و يه تاپيک ديگه هم تو همين صفحه اول فروم هست به اسم فرم ورود و خروج که بچه ها توش توضيح دادن
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
خوب من اصلا این رو روی سرور اپاچی تست کردم بدون مشکل کار می کنه
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
گفتم که رویه آپاچی WIN32 کار نمیکنه !
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
نه نه پدرام برا من هم رو لینوکس کار کرده هم رو ویندوز تو اون کتابه توضیح داده!!!

این روش از همه بهتره!! :lol:
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
خوب اگه با HTAPASSWORD باشه کار نمیکنه
100 بار امتحان کردم
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
نه بابا htpasswd نیست... هدرهای مرورگره:
PHP:
        header("WWW-Authenticate: Basic realm=\"Test\"");
        header("HTTP/1.0 401 Unauthorized");
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
عمو اون فایل آپاچی بود !
الکی پست نده ...
 

phpkar

Registered User
تاریخ عضویت
11 آگوست 2005
نوشته‌ها
387
لایک‌ها
0
سن
42
محل سکونت
Mashhad
به نقل از carp3 :
عمو اون فایل آپاچی بود !
الکی پست نده ...


اتفاقا در هر دو حالت روی WIN32 کار میکنه فقط اگر با روش htacess بخوای بری توی ویندوز به جای SHA کردن پسورد باید پسورد رو به همون صورتی که هست توی یه فایل دیگه مثل htpassword بنویسی اما توی لینوکس باید پسورد رو به صورت user:pass به صورت pass که SHA شده بنویسی
در روش دوم با دستور header در php که همین دوستمون نوشته Login رو انجام میدی ... اما این روش اگر بره user و pass رو از دیتایس بخونه در معرض خطر SQL Injection هست . پس روش اول مطمئن تره ... اما محل اختفای فایل htpassword باید توی یکی از شاخه های قبل از public_html باشه یعنی روی root در FTP ... در این روش 100 درصد امنیت برای سیستم لوگین وجود داره ...
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
ها این همین !
 
بالا