• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل ایجاد خبرنامه
#1
Information 
با سلام خدمت دوستان
من با استفاده از یه ایبوک آموزشی مشغول ساختن یه خبرنامه هستم. اما به مشکل بر خوردم.
یه صفحه فرم خیلی ساده به شکل زیر داریم.
[align=left]
کد:
<html>
<head>
</head>

<body>
<form method="POST" action="login.php">  
<p>User name:  
<input type="text" name="UserName" >  
</p>  
Password: <input type="password" name="Password" >  
<p>  
<input type="submit" name="BtnSubmit" value="Login">  
</p>
</form>
</body>
</html>[/align]

با وجود اینکه در دیتابیس و در جدول admin یوزر و پس رو وارد کردم. بعد از وارد کردن اونا و مراجع به صفحه login.php پیغام بعد از els یعنی 'The specified username and/or password is incorrect! میادش.
محتویات صفحهlogin.php هم این پایین اوردم. config.php هم تابع اتصال به دیتابیس هست.
کد پی‌اچ‌پی:
<?php  
//Starting the session...  
session_start();  
 
//Get The data from form.  
$User $_POST['UserName'];  
$Pass $_POST['Password'];  
 
//Hashing the password...  
$Pass md5($Pass);  
 
//Checking the user and pass...  
$sql "SELECT `pass`  
      FROM `admin`  
      WHERE `user` = '
$User'";  
 
//Connecting to db...  
include('config.php');  
connect();
$Result mysql_query($sql);  
 if(
mysql_num_rows($Result) == && mysql_result($Result0) == $Pass)
{  
   
$_SESSION['UserName'] = $User;  
    
   
$ClientString $_SERVER['HTTP_USER_AGENT'] .
   
$_SERVER['REMOTE_ADDR'];  
   
$_SESSION['ClientStr'] = md5($ClientString);  
    
   
header("Location: admin.php");  
}  
else  
{  
   die(
'The specified username and/or password is incorrect!');  
}  
?>


اینم یه عکس از دیتابیس و جدول هاش
[عکس: 1c23973a376c.jpg]
  پاسخ
تشکر شده توسط :
#2
سلام
admin2 که کد نشده؟!!!
اگه:
کد پی‌اچ‌پی:
$Pass md5($Pass); 
رو واسه admin2 بکار ببری طبیعتاً قبول نمیکنه
گویا یوزر دیگه هم که نداری
در ضمن تو دیتابیست user هات رو uniqe کن
برو تو structure فیلدش رو درست کن
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : takphp
#3
پستتون رو تا اینجا خوندم

(۱۳۹۱ اردیبهشت ۲۷, ۰۲:۳۹ ق.ظ)esak نوشته: من با استفاده از یه ایبوک آموزشی مشغول ساختن یه خبرنامه هستم

یه مثالی هست در رابطه با معمار و دیوار کج و اینا که من الان یادم نمیاد.
  پاسخ
تشکر شده توسط :
#4
خشت اول چون نهد معمار کج --- تا ثریا می رود دیوار کج!!
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : hidensoft Reza
#5
نقل قول:یه مثالی هست در رابطه با معمار و
گفتی معماری ؟ چی ؟ رتبه ؟ نه بابا میخوام نرم افزاری چیزی بیارم . (اسمایلی تو کف کنکور)
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۱ اردیبهشت ۲۷, ۰۲:۵۴ ق.ظ)hamid_80386 نوشته: سلام
admin2 که کد نشده؟!!!
اگه:
کد پی‌اچ‌پی:
$Pass md5($Pass); 
رو واسه admin2 بکار ببری طبیعتاً قبول نمیکنه
گویا یوزر دیگه هم که نداری
در ضمن تو دیتابیست user هات رو uniqe کن
برو تو structure فیلدش رو درست کن

سلام من تابع hash رو پاک کردم و با یوزر admin2 و پسوردش 01234 وارد شد.
اول میخوام بدونم این uniqe که گفتید و انجامش دادم چی کار میکنه و برای چی هست؟
و بعدش اینکه گفتید admin2 کد نشده یعنی چی؟ من حالا اگه بخوام از تابع hash استفاده کنم باید چیکار کنم و یوزر ها رو چطور تو دیتا بیس تعریف کنم ، اگه ممکنه کمی در مورد نحوه کار توضیح بدین. بالای یوزر admin2 هم که میبینید یه چیزی کد شده خودم هم نمیدونم چیکار کردم Big Grin
  پاسخ
تشکر شده توسط :
#7
uniqe میاد چک میکنه اگه قبلا وجود داشته بود دیگه نمیزاره .
مثلا نمیتونی تو جدولت دو تا admin داشته باشی


admin2 گفتن کد نشده فکر میکنم منظور بچه ها پسورد بود که پسوردی که در دیتابیس رفته چرا کد نشده ؟

اون چک کردنت هم چرا لقمه رو پیچوندی ؟
اینجوری بنویس


کد پی‌اچ‌پی:
$sql "SELECT `pass`  
      FROM `admin`  
      WHERE `user` = '
$User' AND `pass` = '$pass'"

بعد این کئوری هر خروجی داشت جوابت میشه دیگه .
یه کار زیادیه که اول یوزر نیم رو چک کنی بعد بیای بگی اگر کئوری مقدار داشت و اون مقداره پسوردش برابر با پسورد وارد شده بود !!!
  پاسخ
تشکر شده توسط : hamid_80386


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان