PDA

View Full Version : چک کردن پسورد



benyamin_pc
پنج شنبه 16 فروردین 1386, 03:08 صبح
با سلام این برنامه ای که به تعریف از جاوا اسکریپ می گم رو میشه به زبان php توضیح بدین؟
می خواهیم یه تکس باکس ایجاد کنیم و یه دکمه
هر زمان که داخل تکس باکس تایپ شد A و روی دکمه Click شد اتفاقی بیافتد
با جاوا اسکریپت


function s(){
var p=prompt("enter number",**)
if(p=="a"){alert("Ok")}
}
<input type="button" OnClick="s">

peyman1987
پنج شنبه 16 فروردین 1386, 06:58 صبح
یعنی شما میخواین همین کار با PHP انجام بشه؟
نمیشه دوست عزیز PHP نمیتونه تحت کلاینت کار کنه یعنی وقتی صفحه لود شد دیگه کنترل اون از دست PHP خارجه برای همین اینجور کارها رو با زبونهای تحت کلاینت مثل همین جاوااسکریپت انجام میدن.

benyamin_pc
پنج شنبه 16 فروردین 1386, 07:23 صبح
پس چرا با Asp میشه؟
پس وقتی کی خواهیم رو یه دکمه کلیک شه تا یه تابع Php انجام شه باید چی کار کنیم؟بالاخره باید با یه Eventi کار کنه یا نه؟مثلا" طرف User و پسورد رو وارد کرد حالا می خواهیم بعد از Click رو یه دکمه این داده ها با اطلاعات تو بانک چک شن پس این چک شدن کی رخ بده؟

moslem-visual
پنج شنبه 16 فروردین 1386, 15:38 عصر
خب اینی که شما گفتید باید اول فرستاده بشه به سرور، پردازش بشه و بعد جوابش پس از دوباره لود شدن صفحه به کاربر اونهم با استفاده از تکست و یا یک عملیات نه مسیج باکس نمایش داده بشه، پی اچ پی رویدادها رو به اون معنی معروف نداره چون اصلا رویدادی رو توی مرورگر شما تشخیص نمیده.

benyamin_pc
پنج شنبه 16 فروردین 1386, 17:20 عصر
کلا" پس برنامه های php در چه زمانی اجرا می شوند؟وقتی بخواهیم از صحت کلمه عبور اطمینان حاصل کنیم به همین نحوی که شما گفتین چجوری میشه؟
وقتی بخواهیم یه تیکه کد php اجرا شه وقتی روی دکمه کلیک شه پس چجوری این امکان داره؟اصلا" چجوری میشه یه تیکه کد رو فرا خواند تا اجرا شه؟
اگر ممکنه کمی در این باره توضیح بدین ممنون میشم

moslem-visual
پنج شنبه 16 فروردین 1386, 22:20 عصر
ببینید، جوااسکریپت، وی بی اسکریپت و زبانهایی از این قبیل یک ساختار درختی یا DOM دارن به این معنی که اگه شما الان گفتی فلان تابع اجرا شو بلافاصله بوسیله ی تجزیه کننده ی اون زبان که اکثرا Microsoft DOM هست برداشته میشه و در خط اجرای سیستم قرار میگیره، یعنی به عبارتی وقتی شما اون برنامه رو اجرا میکنید همه ی برنامه توی حافظه آدرس دهی و تقسیم بندی میشه چون سیستم شما داره اون رو اجرا میکنه و پردازش میکنه.

اما حالا در پی اچ پی، سیستم شما به عنوان گیرنده عمل میکنه، یعنی سیستم شما (کامپیوتری که با استفاده ازش یک صفحه ی پی اچ پی رو "درخواست" میکنید) هیچ کنترلی روی برنامه نداره مگر با ارسال "درخواست" و دریافت "پاسخ" از "سرور". چیزی که حاصل از یک برنامه ی پی اچ پی است تنها کد HTML برگشتی در پاسخ درخواست شماست که توسط "سرور" پردازش و تولید شده در واقع در همه ی زبانهای "طرف سرویس دهنده" همینطور است.

پی اچ پی از مفاهیم جدید برنامه نویسی استفاده نمیکنه، ساختار برنامه های پی اچ پی همون از اول تا آخر خواندن یا به اصطلاح روش اجرای "آبشاری" است یعنی وقتی یک صفحه ی پی اچ پی به شما ارسال شد اگر خواستید حتی حتی یک نقطه به انتهای خروجی اضافه شود باید :

1- به نحوی درخواست خود را به سرور اعلام کنید: ما در پی اچ پی مفهم رویداد را به شکل معمول هرگز نداریم، به جای اینکه برنامه بفهمد چه اتفاقی افتاده (مثل کلیک کردن در ویژوال بیسیک) شما باید به پی اچ پی اطلاع بدید که چه اتفاقی افتاده !

2- پی اچ پی باید خبر و یا درخواست شما را بفهمد: همونطور که شما در ویژوال بیسیک برای یک رویداد مثل کلیک کردن یک دکمه یه بلوک کد در نظر میگیرید در اینجا هم باید در برنامه پی اچ پی خودتون این کار رو بکنید اما نه به اون صورت، شما یک سری شرط و شروط در برنامه خودتون تعریف می کنید که میگه اگه خبری رسید ببین خبر چیه؟ مثلا این یک خبره که به برنامه ی شما ارسال شده : "command=delete_user&user_id=8" در اینجا ما یک شرط در برنامه ی خودمون از قبل داریم که اگه command برابر با delete_user بود اونوقت ببین user_id چیه حالا این بررسی میتونه گشتن توی یک بانک اطلاعاتی یا یه شرط ساده باشه، اگه command برابر با add_user بود مثلا برو فلان کار رو انجام بده، اگه چیز دیگه بود این کار رو بکن و الی آخر.

ما برای اعلام درخواستون به پی اچ پی یا از آدرسها استفاده میکنیم و یا از پست کردن اونها مثلا من میخوام با کلیک کردن روی لینک زیر ، برنامه ی main.php باز بشه و بهش گفته بشه که دستور اینه، مقدارها اینه و اون برنامه هم از قبل توش پیش بینی کردم که اگه دستور این بود مقادیر همراهشو بگیر و باهاش یک سری کارها رو انجام بده، توجه کنید:


<a href="main.php?dastoor=khorooj&id_karbar=268"> خروج از سیستم</a>

من اینجا دقیقا از یک لینک معمولی استفاده کردم که این دستورها و مقادیری که بعد از ؟ گذاشتم رو به برنامه ی main.php اعلام کن، حالا برنامه ی main.php با استفاده از یک دستور مقادیر ارسالی رو میخونه:


<?php
$dastoor=$_GER['dastoor'];

if($dastoor=='khorooj'){
....
....
}
elseif($dastoor=='vorood'){
.....
.....
}
else{
....
....
}

?>

خب تا اینجا شما فهمیدید که چطور یک عمل توسط پی اچ پی تشخیص داده میشه، ادامه دارد! مشکلتون رو هم اگه بود بفرمایید.

benyamin_pc
جمعه 17 فروردین 1386, 03:46 صبح
آقا واقعا" دستت درد نکنه خیلی مفهوم توضیح دادین تا همینجا تقریبا" تمام مشکلام حل شد و هر کار بخوام انجام بدم با همین یه دستور میشه:لبخند: البته شما ادامه بدین ممنون میشم اما من دقیقا" لنگه همین بودم که یه جوری بالاخره باید با صفحه فعلی ارتباط داشت یا نه ! :تشویق:

benyamin_pc
جمعه 17 فروردین 1386, 04:18 صبح
<html>
<head>
<title>Test Script</title>
</head>
<body>
<input type="text" name="k">
<?php
print('<a href="main.php?k.value">sss</a>')
?>
</body>
</html>

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

moslem-visual
جمعه 17 فروردین 1386, 08:04 صبح
خوشحالم که از حرفهای درهم من چیزی فهمیدید! راستی من در کد بالا باید به جای $_GER از $_GET استفاده میکردم. همونطور که قبلا عرض کردم برای ارسال مقادیر از یک صفحه ی PHP به صفحه ی دیگه و یا به خودش ما از دو روش استفاده میکنیم:

1- روش ارسال مخفی (POST) : در این روش داده های ارسالی بین مرورگر و برنامه به طور مخفی منتقل میشن و امکان تغییر دادنشون نیست، این برای جایی خوبه که شما میخواهید مقادیر یک فرم رو مثلا فرم ثبت نام رو به برنامه ارسال کنید.

2- روش ارسال از طریق آدرس (GET) : در این روش مثل مثالی که توی پست قبل زدم مقادیر از طریق چسبیدن به انتهای URL مورد نظر به اون صفحه ارسال میشن، این روش عمدتا برای ارتباط بین صفحه ها و توابع خود برنامه ی شما مورد استفاده قرار میگیره مثل همون مصال بالا که برای اجرای بخش خروج کاربر ما دستور و شماره ی کاربر رو به انتهای URL اضافه کردیم، خیلی کم پیش میاد که از این روش برای ارسال مقادیر فرمها و ی مقادیر سنگین استفاده بشه چون هم امنیت کمی داره و هم مقدار داده ی کمی قابل انتقال است. در مقابل از روش POST تنها میتوان در فرمها استفاده کرد.

کلیه ی مقادیری که با روش پست فرستاده میشه در برنامه ی مقصد در شبه آرایه ای به نام $_POST و کلیه مقادیری که با روش GET فرستاده میشه در شبه آرایه ی $_GET نگهداری میشه یعنی شما برای دسترسی به مقادیر ارسالی باید کلید که همون نام آپشن هست رو به این آرایه بدید و مقدارش رو تحویل بگیرید برای مثال میخواهیم مقدار username که از طریق روش پست به این صفحه ارسال میشه رو بگیریم:


$username=$_GET['user_name'];

اما همونوطور که میدونید فرمها از طریق مشخصه ی Method روش ارسال داده ها که همون get و post باشه رو میفهمن و آدرسی که میخواهید مقادیر به اون ارسال بشه رو در مشخصه ی Action فرمتون قرار میدید.

حالا با یک مثال بیشتر با نحوه ی کار آشنا میشیم:




<?php
if($_GET['command=='login']){
if(count($_POST)>0){
$username=$_POST['username'];
$password=$_POST['password'];

if($username=='moslem' && $password=='barnamenevis'){
$text="You Are Online Now, ".$usename;
}
else{
$text="Your Username or Password is not Valid!";
}
}
else{
$text="<center><form method='post' action='main.php'>
<input type='text' name='username'/><br/>
<input type='password' name='password'/><br/>
<input type='submit' value='LogIn'/></form></center>";
}
}
elseif($_GET['command']=='register'){
.......
.......
}

?>



<html>
<head>
<title>MySite</title>
</head>
<body>
<div style='width: 80%; color: black;'>

<?php
echo $text;
?>

</div>
</body>
</html>

امیدوارم که کامل بوده باشه! برای انجام کار عملی باید حتما یک کتاب PHP تهیه کنید که من خودآموز PHP از انتشارات ناقوس رو توصیه میکنم. موفق باشید...

benyamin_pc
جمعه 17 فروردین 1386, 08:17 صبح
واقعا" دیگه شرمنده کردین
من روی این مطالب کار می کنم و فکر می کنم دیگه مشکلی با این قسمت نداشته باشم
توصیه شما رو هم در اولین فرصت عملی می کنم

moslem-visual
جمعه 17 فروردین 1386, 08:28 صبح
خواهش میکنم، قابلی نداشت!