راهنمای ساخت یک سیستم کاربری کوچک با SQLite

spsgorgan

Active Member
با سلام
بنده پلاگین SQLite رو دیدم و واقعا از این شاهکار خوشم اومد و تبریک میگم. خسته نباشید
من میخوام یک سیستم نام کاربری با SQLite بسازم . کاربران رو از قبل وارد بانک اطلاعاتی کردم و فقط میخوام Select کنم. با sql اشنایی دارم اما MMB خیر. مرحمت کنند دوستان یک راهنمایی کوچک کنند ممنون میشم
 

spsgorgan

Active Member
بنده مشاهده کردم ام خب چیزی دستگیرم نشد که ایجا گفتم مطرح کنم
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
مدتی قبل روی یک پروژه ای کار میکردم که به دلایلی رهاش کردم، این مثال که براتون گزاشتم قسمت ورود و ثبت نام کاربران هست که قسمتی از اون پروژه هست و با استفاده از پلاگین SQLite طراحی شده.
پسوردها در این مثال توسط متد MD5 کدگزاری میشن؛ در اینصورت اگه کسی دیتابیستون رو باز کنه نمیتونه پسوردهای مربوط به یوزرها رو ببینه.

آها، فراموش کردم بگم که برای تست یک یوزر در دیتابیس وجود داره، Username و Password نام کاربریتون هست (spsgorgan).
 

پیوست ها

  • User Login.rar
    179.1 کیلوبایت · بازدیدها: 245
آخرین ویرایش:

OMiD

Well-Known Member
سلام دوست عزيز با اجازه جناب nevercom بايد به عرضتون برسونم كه من قبلا همچين چيزي ساختم و ارائه كردم اين لينك تاپيكش هست و جالب اينجاست كه از هيچ پلاگيني توش استفاده نكردم:
http://forum.majidonline.com/showthread.php?t=116847
و برنامه رو هم از همين جا ميتونيد دانلود كنيد:
 

پیوست ها

  • Login-Maker-by-SilverLight.zip
    70.3 کیلوبایت · بازدیدها: 124

spsgorgan

Active Member
با مدل جناب سیلور آشنایی داشتم . باید تبریک عرض کنم به دوستان با ذوقم .
دوستان آیا امکانش هست که به این احراز هویت رو در برنامه توسط اینترنت داشت ؟ یعنی نام کاربری و رمز عبور از طریق وب چک بشه و پس از تائید به صفحه مناسب ارجاع داده بشه ؟
 

nevercom

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

spsgorgan

Active Member
در مورد متدهای دیگه هم هیچی نشد نداره !!!

میشه بفرمایید به چه صورت ؟ دیتابیس مورد استفاده ما MYSQL هست. آیا امکان ارتباط از آبجکت HTML در mmb با آن هست ؟ یعنی بشه آرگومان هایی رو انتقال داد ؟
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
شما میتونید آرگومان هاتون رو به یک فایل php در سرورتون پاس بدید (فکر کنم یه مثال هم برای استفاده از متد post در یک فایل html وجود داشت)
پس قطعاً میشه آرگومانها رو به یه فایل php (مثلاً) پاس داد و اون فایل عملیات چک کردن یوزر و پسورد رو در دیتابیس انجام بده و نتیجه رو اعلام کنه،
حالا میمونه دریافت اون اطلاعات توسط mmb که آیا یوزرنیم و پسورد معتبر هست یا نه...!
شاید بشه که برنامه ی تحت وب شما نتیجه رو بصورت کاراکتر 0 (عدم تایید) و 1 (تایید اطلاعات) رو نمایش بده و ما در mmb اون کاراکتر رو بخونیم و تفسیر کنیم.
متاسفانه من در زمینه ی وب اطلاعات زیادی ندارم، شاید با کمک دوستان دیگه به نتیجه ی دلخواه برسید.
 

silvercover

کاربر متخصص
پلاگین SQLite تحت وب کار نمیکنه و اصلا هم با MySQL سازگار نیست. در مورد احراز هویت و ورود به سیستم همونطور که Nevercom گفت می تونین از یه فرم HTML استفاده کنید. برای ارسال مقادیر با استفاده از متد Post هم این مثالی که ضمیمه شده میتونه برای شما الهام بخش باشه:
 

پیوست ها

  • HTMLPostVar.zip
    1.3 کیلوبایت · بازدیدها: 68

spsgorgan

Active Member
سیلور جان من از مثال شما چیزی سردرنیاوردم :( ممکنه یک نمونه که به یک فایل php ارسال کنه و در صورت احراز هویت به صفحه بعدی بره رو بفرمایید
 

silvercover

کاربر متخصص
سیلور جان من از مثال شما چیزی سردرنیاوردم :( ممکنه یک نمونه که به یک فایل php ارسال کنه و در صورت احراز هویت به صفحه بعدی بره رو بفرمایید

باید ساختار احراز هویت سایت مورد نظر رو ببینم تابتونم براش این کد رو بنویسم. چون روش های مختلفی رو میشه استفاده کرد.
 

spsgorgan

Active Member
والا ساختار خاصی نداره . یک دیتابیس ساده که نام کاربری و رمز عبور توشه و میخوام اگر احراز هویت صحیح بود به صفحه مورد نظر از mmb بریم
 

silvercover

کاربر متخصص
خب ما که توی بیلدر هیچ راهی برای وصل شدن مستقیم به بانک اطلاعاتی روی سرور نداریم. از طرفی با هدر ها هم نمی تونیم کار کنیم. پس راه هایی که به ذهن من میاد این ها هستن:


- استفاده از جاوا اسکریپت

توی بیلدر نسخه آخر این امکان قرار داده شده که از طریق کد های جاوا اسکریپت و بر حسب رویداد ها یک شی اسکریپ داخل بیلدر رو فراخوانی کرد. حالا شما می تونین کاری کنید که وقتی فرم لاگین به سرور ارسال شد بر حسب نتیجه کار به یک صفحه کاربر رو هدایت کنه و متناسبش کد مربوطه اجرا بشه. برای این کار باید مکانیرمی (منظورم صفحات مذکور که گفتم کار فراخوانی رو به وسیله جاوا اسکریپت انجام میدن) رو داشته باشین روی سرور.


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

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

مثالی که بنده در نوشته های قبلی ارائه کردم کارش این هست که مقادیر فرم رو با استفاده از متد Post به سرور ارسال می کنه. همون طور که می دونید استفاده از این متد برای احراز هویت ضروری هست. از سوی دیگه چون فرم های داخل بیلدر نمی تونن مقادیر رو مستقیما به سرور Post کنن باید از روش هایی این چنینی استفاده کنیم. و گر نه شما می تونین یه فرم HTML رو از نو مختص این کار بسازید و توسط شی HTML توی بیلدر قرارش بدین و باقی ماجرا.
 

kogo

New Member
سلا ببخشيد اقاي silvercover تشكر از شما و ببخشيد ميدونم اين تاپيك براي خيلي وقت پيشه اما ميخواستم بدونم هوز هم نميشه به mysql با استفاده از php ......با پلاگيني چيزي يا كدي وصل شد و يوزر و پسورد رو چك كرد....

چطوري ميتونم mmb رو متصل كنيم به دیتابیس mysql با استفاده از php ...................

اگه ميشه يه مثال واضح بفرستيد.............

فقط لطفا جواب بديد.................................
 

ansoft

Active Member
خيلي راحت ميشه اين كار رو كرد فقط بايد يه كم php بلد باشيد.

تو سايتتون يك فايل به نام server.php ايجاد كنيد كه در اون يك فرم html هم قرار دهيد كه اطلاعاتي كه از طريق mmb ارسال كرده رو از mysql بگيره.
بعد از اون كار با يك كد متن (source code) فايل Server.php رو لگيريد كه مثلا اگه 1 باشه كار درست انجام شده و اگه 0 باشه ناموفق بوده.


اگه متوجه نشدي به يك برنامه نويس php بده تا برات اين كار هارو انجام بده.
 

kogo

New Member
خيلي راحت ميشه اين كار رو كرد فقط بايد يه كم php بلد باشيد.

تو سايتتون يك فايل به نام server.php ايجاد كنيد كه در اون يك فرم html هم قرار دهيد كه اطلاعاتي كه از طريق mmb ارسال كرده رو از mysql بگيره.
بعد از اون كار با يك كد متن (source code) فايل Server.php رو لگيريد كه مثلا اگه 1 باشه كار درست انجام شده و اگه 0 باشه ناموفق بوده.


اگه متوجه نشدي به يك برنامه نويس php بده تا برات اين كار هارو انجام بده.


دستت درد نكنه داداش.....

فقط من از php زياد سر در نميارم ...............داداش اگه ميشه يكي درست كن اينجا پيوست كن....دستت درد نكنه.....

فقط شما اين حرفو نزن : : : (وقت ندارم.....بيكار نيستم برات بسازم ) تو اين انجمن از هر كي درخواست كمك ميكني يا ميگن نميتونم يا وقت ندارم انگاغر كه رييس سازمان ناسا هستن... ولي تو انجمن آشيانه وقتي ميگي ميبيني دهتا دهتا برات سورس ميزارن البته براي vb نه براي mmb..

...ساختن سورسش بيشتر از ده دقيقه وقتتونو نميگيره .......

خب من اين قسمتشو بلد نيستم كه از شماها كمك خواستم........
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
به این نمونه کد PHP توجه کنید:
[PHPS]<?php

if (!isset($_GET['user']) || !isset($_GET['pass'])) {
// Insofficient input parameters
die('-2');
}
$user = base64_decode($_GET['user']);
$pass = base64_decode($_GET['pass']);
if (login($user, $pass)) {
echo '1';
} else {
echo '0';
}


function login ($user, $pass) {
$DB_HOST = 'localhost';
$DB_USER = '------'; // نام کاربری برای اتصال به دیتابیس
$DB_PASSWORD = '------'; // پسورد برای اتصال به دیتابیس
$DATABASE = '-------'; // نام دیتابیس موردنظر
/** @var mysqli MySQLi object */
$mysqli;


$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DATABASE);
if ($mysqli->connect_errno) {
// Connection error
die('-1');
}


$query = "SELECT `password` FROM members WHERE `username` = '{$user}'";
/* @var $result mysqli_result */
$result = $mysqli->query($query);
if ($result) {
$row = $result->fetch_assoc();
$result->free();
if ($row['password'] == $pass) {
return TRUE;
}
}
return FALSE;
}


?>


[/PHPS]
یک نمونه ی ساده هست که نام کاربری و پسورد رو براش ارسال میکنید، چک میکنه اگر نام کاربری وجود داشت و پسوردش با پسورد ارسالی مطابقت داشت، عدد 1 رو در صفحه چاپ میکنه، در غیر اینصورت عدد 0 و کمتر از اون (اعداد منفی برای خطا ها)

در این نمونه کد پارامترهای ورودی با الگوریتم Base64 دیکد میشن، فرض رو بر این گرفتم که قبل از ارسال داده ها رو با این الگوریتم کد میکنید. که البته اون قسمت رو می تونید حذف کنید.
هنگام ارسال پسورد حتماً با الگوریتمی مثل SHA1 (که در پلاگین SQLite موجود هست، بهمراه الگوریتم Base64) کدش کنید و در دیتابیس هم پسورد ها رو با همون الگوریتم کد کنید.

داده ها رو به این شکل ارسال کنید:
کد:
http://www.yoursite.ir/server.php?user=kogo&pass=g4sf35g4sgfs53g4fg4f35g4dfg5d

حالا باید اون عددی که در صفحه چاپ میشه رو بخونید و چک کنید که مثلاً اگر محتویاتش عدد 1 بود یعنی لاگین صورت گرفته. که اینکار رو هم خیلی راحت با پلاگین هایی مثل MiscY یا کلاً پلاگین هایی که قابلیت کار با اینترنت و دانلود فایل رو دارن انجام بدید
 

kogo

New Member
به این نمونه کد PHP توجه کنید:
PHP Code:

<?php if (!isset($_GET['user']) || !isset($_GET['pass'])) { // Insofficient input parameters die('-2');}$user = base64_decode($_GET['user']);$pass = base64_decode($_GET['pass']);if (login($user, $pass)) { echo '1';} else { echo '0';} function login ($user, $pass) { $DB_HOST = 'localhost'; $DB_USER = '------'; // نام کاربری برای اتصال به دیتابیس $DB_PASSWORD = '------'; // پسورد برای اتصال به دیتابیس $DATABASE = '-------'; // نام دیتابیس موردنظر /** @var mysqli MySQLi object */ $mysqli; $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DATABASE); if ($mysqli->connect_errno) { // Connection error die('-1'); } $query = "SELECT `password` FROM members WHERE `username` = '{$user}'"; /* @var $result mysqli_result */ $result = $mysqli->query($query); if ($result) { $row = $result->fetch_assoc(); $result->free(); if ($row['password'] == $pass) { return TRUE; } } return FALSE;} ?>داداش دستت درد نكنه.....ولي هر كاري كردم عدد 1 نيومد....


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

در این نمونه کد پارامترهای ورودی با الگوریتم Base64 دیکد میشن، فرض رو بر این گرفتم که قبل از ارسال داده ها رو با این الگوریتم کد میکنید. که البته اون قسمت رو می تونید حذف کنید.
هنگام ارسال پسورد حتماً با الگوریتمی مثل SHA1 (که در پلاگین SQLite موجود هست، بهمراه الگوریتم Base64) کدش کنید و در دیتابیس هم پسورد ها رو با همون الگوریتم کد کنید.

داده ها رو به این شکل ارسال کنید:
کد:
http://www.yoursite.ir/server.php?user=kogo&pass=g4sf35g4sgfs53g4fg4f35g4dfg5d

حالا باید اون عددی که در صفحه چاپ میشه رو بخونید و چک کنید که مثلاً اگر محتویاتش عدد 1 بود یعنی لاگین صورت گرفته. که اینکار رو هم خیلی راحت با پلاگین هایی مثل MiscY یا کلاً پلاگین هایی که قابلیت کار با اینترنت و دانلود فایل رو دارن انجام بدید
داداش دستت درد نكنه اما هر كاري كردم عدد 1 نيومد......
من از locallhost دارم امتحان ميكنم...عدد 0 مياد اما 1 نه.... اينم محتويات فايل index.php سايت منه....

[PHPS]<?php
session_start();
if (isset($_POST["submit"])) {
if ($_POST["user"] == "kogo" && $_POST["pass"] == "5684") {
$_SESSION["loginOk"] = 'yes';
} else {
$_SESSION["loginFailed"] = 'yes';
}
}
?>
<html>
<head>
<title>KoGo MeysaM Karamati</title>
</head>
<body>
<?php
if (isset($_GET["logout"]) && $_GET["logout"] == 'yes') {
unset($_SESSION['loginOk']);
echo 'Successfully Logouted !';
}


if (isset($_SESSION["loginOk"])) {
echo(" You are logged in! (<a href='?logout=yes'>Logout</a>)");
echo(" =============================================================================================================== You are ALL Password's in! (<a href='hackpassword5684/index.html'>ALL Password's</a>)");
echo(" ========================================================================================================================================================= kogo (<a href='http://www.kogo.ir'>KOGO.IR</a>)");
} else {
if (isset($_SESSION["loginFailed"])) {
echo 'Incorrect Username Or Password , Try Again :';
unset($_SESSION['loginFailed']);
}


?>


<!DOCTYPE HTML>
<html dir="rtl">
<head>
<h1>Login to Panel</h1>
<img src="lock.gif"></img>
<title>Login</title>
<meta charset="utf-8" />
<meta name="persianscript" content="iehsan" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
</head>
<body>
<form action="index.php" method="POST">
Username: <input type="text" name="user"/><br/>
Password: <input type="password" name="pass"/><br/>


<input type="submit" name="submit" value="Login To Control Panel MeysaM Karamati"/>
</form>
<?php } ?>
</body>
</html>


[/PHPS]

ببينم تو اين پروژه چيكار ميكني....
دارم رو يه پروژه كه به ديتابيس سايت وصل ميشه كار ميكنم اگه درست بشه قول ميدم تو برنامه ازت تشكر فراواني كنم....يه برنامه جالبه كه بعدا به بازار مياد....

مرسي
مرسي...
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
نیاز به راهنمایی برای اتصال به پایگاه داده ی MySQL توسط PHP و ارتباط اون با MMB داشتید دیگه ؟
کد PHPی که نوشتم نحوه ی اتصال به پایگاه داده رو توضیح میده، شما باید کد رو بر اساس ساختار دیتابیس خودتون ویرایش کنید.
برای ارتباط با MMB هو توضیح دادم.

فکر نمیکنم ابهامی وجود داشته باشه
 

جدیدترین ارسال ها

بالا