بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

Login شدن به وبسایت Wordpress (حل شد)

مدیریت گفتگو
Vahid 11 سال پیش
آخرین تغییر: 11 سال پیش

باسلام

اول بگم که فکر می کنم 2 یا 3 هفته است که دنبال این موضوع هستم و هنوز به نتیجه نرسیدم.

من یک سایت ورد پرس دارم و می خوام یک برنامه اندرویدی براش بنویسم. و می خوام کاربرای سایتم با همون یوزر و پسورد سایت بتونن به نرم افزار هم دسترسی داشته باشن. می تونم به دیتابیس دسترسی داشته باشم و یوزر و پسورد کاربر رو داشته باشم اما مشکل اینه که ورد پرس پسورد ها رو با الگوریتم md5 رمزنگاری می کنه و نمی تونم یوزر و پسورد کاربر رو موقع ورود چک کنم. کسی می تونه کمکم کنه؟ البته یکسری فایل php داخل پوشه wp-admin و همچنین فولدر اصلی سایت هست فقط نمی دونم کمدومش رو باید استفاده کنم و به چه صورت.

نمی دونم جای درستی سوالم رو پرسیدم یا نه؟ ولی واقعا گیر کردم و چون اینجا عضو بودم مطرحش کردم. لطفا راهنمایی کنید.

با تشکر

نظرات

Vahid 11 سال پیش
هیچکس نیست؟؟؟ واقعا درگیر این داستانم.
Vahid 11 سال پیش
حداقل یکی بگه اینجا جاش نیست!!!
amin2525 11 سال پیش
دوست عزیز سوالی که شما پرسیدید از موضوعه این انجمن خارجه
Vampire 11 سال پیش
اتفاقا این سوال منم هست و بنده هم بعد از حدود 1 ماه، تقریباً به نتیجه خاصی نرسیدم از انجمن! کاملاً هم جاش توی انجمنه چون اینجا پاتوق اندروید کارهاست!
Vampire 11 سال پیش
البته مهم ترین بحث امنیت این سیستم لوگین و جلوگیری از دسترسی غیر مجاز هست، وگرنه نوشتن یک سیستم کاربری چندان پیچیده نیست.
Vahid 11 سال پیش
دوست عزیز Corssis : شما با توابع ورد پرس کار کردی؟ من که هر کار می کنم یه اروری میده اگه نمونه کار بزاری خیلی ممنون می شم.
Vahid 11 سال پیش
farzad اگه از توابع خود ورد پرس و یا پلاگین های موجود استفاده کنی بخث امنیت هم حل می شه.
hamcalas 11 سال پیش
قبلا یک نرم ازار ساخته شده ، می توانید روش کارش را ببینید لینک
Mseif 11 سال پیش
خب دوست عزیز بنده یه لینک به شما دادم که دقیقا به کار شما مربوط میشه ...!!! شما واسه اینکه کاربرای سایت بتونن با برنامه اندروید لاگین کنن بایدبه صورت دستی یه اسکریپت php بنویسی چون نمی تونی با جاوا و اندروید مستقیم به دیتابیس وردپرس وصل بشی پس یه اسکریپت واسه اتصال نیازه که همراه فایل های وردپرس رو سرور باشه . حالا شما پسورد هایی رو که از کاربر میگیری رو باید به سمت اسکریپتی که نوشتین انتقال بدین و داخل اسکریپت از توابع هش پسورد لینک استفاده کنی هم واسه قبت نام هم لاگین کردن کاربرد داره

پاسخ‌ها 3

MyNewName 11 سال پیش

دوست عزیز جواب شمارو خود وردپرس داده :

https://codex.wordpress.org/Resetting_Your_Password

فقط یکبار md5 میشه

"UPDATE (name-of-table-you-found) SET user_pass = MD5('"(new-password)"') WHERE ID = (id#-of-account-you-are-reseting-password-for);"

برای ثبت نام و ایجاد پسورد هم این موضوع :

http://codex.wordpress.org/Function_Reference/wp_generate_password

نظرات

Vahid 11 سال پیش
خیلی ممنون از توجه شما. این مطلب در مورد ریست کردن پسورده. وقتی کاربر تو وب سایت ثبت نام می کنه پسورد کاربر با الگوریتم md5 کد گذری می شه و همینطور که می دونید این الگوریتم غیر قابل بازگشت هست یعنی مثلا اگه کاربر پسوردش رو 123 وارد کنه تو دیتا بیس به صورت یک کارکتر 128 بیتی ذخیره می شه. من می خوام کاربر سایتم وقتی وارد نرم افزار می شه همون پسورد 123 رو وارد کنه ولی نمی تونم چک کنم پسورد درسته یا نه چون تو دیتا بیس با مقداری غیر از 123 ذخیره شده و چون پسورد به صورت یکطرفه کد شده قابل بازگشت نیست و باید حتما از توابع خود ورد پرس استفاده بشه و یا Api هایی که به این منظور توسعه داده شده.
zobair 11 سال پیش
این لینک رو ببینید شاید کمکی کرد لینک
Vahid 11 سال پیش
خیلی ممنون از همه من همه اینها رو دیدم قط تو هاست لوکال مشکل دارم. فعلا دارم تو یه هاست رایگان چک می کنم.
Vahid 11 سال پیش
نتیجه رو به زودی میزارم. ولی اگه کسی تجربه ای دارم ممنون می شم فایل php نمونه بزاره.
Mseif 11 سال پیش
iebu عزیز واسه تشکر از دوستانی که راهنماییت کردن لایک کنی بهتره تا دفعه بعد هم رقبتی باشه به سوالات پاسخ بدن
MyNewName 11 سال پیش
دوست عزیز شما هم پسورد ارسالی رو MD5 کن بعدش بررسی کن ! مثال : $pass = md5($_POST['password']); "SELECT FROM * table WHERE password='$pass'"
Vahid 11 سال پیش
MyNewName همین طور که مستحضرید این الگوریتم برگشت پذیر نیست. الگوریتم MD5 برای هر رشته یک رشته 128 بیتی منحصر به فرد تولید می کنه که قابل برگشت نیست هر چند سایت هایی هستند که پسورد های MD5 شده رو کرک می کنند ولی به طور کلی قابل بازیابی نمی باشد.
saeed_435 11 سال پیش
خوب پسوردی که کاربر میفرسته رو md5 کن با md5 دیتابیس مقایسه کن اگه برابر بود لاگین شه
Vahid 11 سال پیش
به این راحتی نیست. md5 که من می کنم با md5 که تو دیتا بیس ذخیره شده برابر نیست. چیزی که تا الان دستگیر من شده اینه که برای کد کردن با md5 معمولا از یک هش هم استفاده می کنند که نقش کلید رو داره و فقط با این هش می شه md5 ذخیره شده در دیتا بیس رو تولید کرد. برای همین باید از توابع php داخل خود ورد پرس استفاده بشه.
MyNewName 11 سال پیش
دوست عزیز اصلا نیازی به دیکد نیست ! من نمونه کد رو دادم بهتون شما پسورد کاربر رو بگیرید و md5 کنید بعدش با پسورد موجود در دیتابیس وردپرس مطابقت بدید اینم کد برگشت پسورد هش شده : $hash = wp_hash_password( $password ) کافیه $hash رو با پسورد موجود در دیتابیس بررسی کنید
Vahid 11 سال پیش

با سلام مجدد

من یک فایل PHP درست کردم به صورت زیر

 <?php
$pass='123';

$hash = wp_hash_password( $pass );
echo $pass;
echo $hash;
?>

اما موقع اجرا ارور زیر رو می ده:

Fatal error: Call to undefined function wp_hash_password() in /home3/MySite/public_html/test_service3.php on line 4

کسی می تونه کمکم کنه؟ اگه ممکنه فایل PHP نمونه بزارین .

خیلی ممنون

نظرات

Vahid 11 سال پیش
کسی می تونه مشکل کد php فوق رو بگه؟ البته از دستور include , require il hsjthni ;vnl ولی باز هم خروجی نداد.
MyNewName 11 سال پیش
تابع wp_hash_password در کدهای وردپرس هست شما اول باید فایل config وردپرس رو include کنید
Vahid 11 سال پیش
با تشکر از همه دوستان. به زودی فایل php که تست کردم و نتیجه گرفتم رو می زارم.
Vahid 11 سال پیش

با تشکر از همه دوستان

من از فایل زیر استفاده کردم و جواب گرفتم.

 <?php
require_once("wp-load.php");

$userName=$_REQUEST['username'];
$password=$_REQUEST['password'];

if(wp_check_password( $password, savedPassword($userName) )){
echo "true";
}else{
echo "false";
}

function savedPassword($userName){
$sql = "SELECT * FROM wp_users WHERE user_login LIKE '$userName'";
$conn=connectTODataBase();

$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
$row = mysqli_fetch_assoc($result);
$savedPassword=$row["user_pass"];
return $savedPassword;
} else {
// echo "false";
}

mysqli_close($conn);
}

function connectTODataBase(){
$servername = "localhost";
$username = "UserName";
$password = "Password";
$dbname = "DatabaseNamet";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection

mysqli_query($conn,"SET NAMES 'utf8'");
mysqli_set_charset($conn,"UTF8");

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
return $conn;
}
?>

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .