PDA

View Full Version : مبتدی: ساخت فرم لاگین مدیر سایت



abbas3zaar
پنج شنبه 29 فروردین 1392, 05:15 صبح
سلام.
برای ساخت لاگین مدیر چجوری باید از دیتابیس نام کاربری و رمز عبور ادمین رو بخونم و اگه درست باشه بره به صفحه ی admincp.php لطفا راهنماییم کنید.

abbas3zaar
پنج شنبه 29 فروردین 1392, 05:17 صبح
سوال دوم:

توی یک پوشه مثلا 10 تا فایل php داریم چجوری میتونیم تعیین کنیم که وقتی کسی مثلا ادرس www.mysite.com/admin رو زد فایل login.php رو باز کنه.

lordofphp
پنج شنبه 29 فروردین 1392, 08:29 صبح
به نام خدا
سلام ببینید شما باید برای اینکار اول پی اچ پی بلد باشید برای شروع آموزش آقای شهرکی هست و اما برای لوگین شما در یکی از متداول ترین شیوه ها میتونید بعد از بررسی صحت کلمه عبور و نام کاربری
باید سشن ایجاد کنید و بعد برای صفحات دیگه ببینید که اگه فرد لوگین نکرده بره به صفحه لوگین باید یه شرط بذارید بگید اگر سشن لوگینتون وجود نداشت به صفحه لوگین هدایت بکنه
البته این روش مشکلات امنیتی داره در ابتدا که باید کمی برای مقابله مطالب امنیت و ... مطالعه کنید
درپناه وراه حق پیروز و پایدار باشید

abbas3zaar
پنج شنبه 29 فروردین 1392, 18:38 عصر
این کد زیر رو در بالای فایل login.php نوشتم ولی اجرا میکنم این ارور رو میده مشکل کجاست؟

Notice: Undefined index: username in C:\xampp\htdocs\mycms\admin\login.php on line 3

Notice: Undefined index: password in C:\xampp\htdocs\mycms\admin\login.php on line 4
Please enter a username and password




<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];

if ($username && $password)
{
$connect = mysql_connect("localhost","root","") or die("Error Database Connect!");
mysql_select_db("mycms") or die("Error DB.");

$query = mysql_query("SELECT * FROM admin WHERE username = '$username'");
$numrows = mysql_num_rows($query);

if ($numrows !=0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}

if ($username == $dbusername && $password == $dbpassword)
{
echo "Login Successfull.";
$_SESSION['username'] = $dbusername;
}
else
echo"Incorrect Password.";
}
else
die ("That username dosent exist.");
}
else
die ("Please enter a username and password");
?>

mohsen6500
پنج شنبه 29 فروردین 1392, 19:07 عصر
سلام
فکر کنم به خاطر این باشه که شما هنوز مقادیری رو ارسال نکردید
به نظرم بهتره که اون دوتا فیلد رو بذاری پایین دستور if و برای چک کردن هم به این صورت عمل کنی :

session_start();

if (isset($_POST['password'] && $_POST['username']))
{
$username = $_POST['username'];
$password = $_POST['password'];
موفق باشید

Veteran
پنج شنبه 29 فروردین 1392, 20:35 عصر
البته این روش مشکلات امنیتی داره در ابتدا که باید کمی برای مقابله مطالب امنیت و ... مطالعه کنید
میشه توضیحی در مورد مشکل امنیتی این روش بدین :متفکر:

m.m.m5651
پنج شنبه 29 فروردین 1392, 21:09 عصر
یکی از مشکل های امنیتیش اینه که پسورد رو همونی که هست ذخیره کردید چه تو دیتابیس چه تو سشن که باید حتما رمزگذاری بشه. من تو سی ام اسی که واسه خودم نوشته بودم، یه کد رندوم هم گذاشته بودم که با دیتابیس تو هر لاگین هماهنگ میشد تا کسی همین طوری سشن ها رو ست نکنه. شما هم اگه میخواید میتونید این کارو بکنید یا حتی پسورد رو با اون کد رندم رمزگذاری کنید.