آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

Vahid  11 سال پیش  11 سال پیش
+3 0

باسلام

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

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

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

با تشکر

+1 0
هیچکس نیست؟؟؟ واقعا درگیر این داستانم. (11 سال پیش)
0 0
حداقل یکی بگه اینجا جاش نیست!!! (11 سال پیش)
0 0
دوست عزیز سوالی که شما پرسیدید از موضوعه این انجمن خارجه (11 سال پیش)
+1 0
لینک (11 سال پیش)
+1 0
اتفاقا این سوال منم هست و بنده هم بعد از حدود 1 ماه، تقریباً به نتیجه خاصی نرسیدم از انجمن! کاملاً هم جاش توی انجمنه چون اینجا پاتوق اندروید کارهاست! (11 سال پیش)
0 0
البته مهم ترین بحث امنیت این سیستم لوگین و جلوگیری از دسترسی غیر مجاز هست، وگرنه نوشتن یک سیستم کاربری چندان پیچیده نیست. (11 سال پیش)
0 0
دوست عزیز Corssis : شما با توابع ورد پرس کار کردی؟ من که هر کار می کنم یه اروری میده اگه نمونه کار بزاری خیلی ممنون می شم. (11 سال پیش)
0 0
farzad اگه از توابع خود ورد پرس و یا پلاگین های موجود استفاده کنی بخث امنیت هم حل می شه. (11 سال پیش)
+1 0
قبلا یک نرم ازار ساخته شده ، می توانید روش کارش را ببینید لینک (11 سال پیش)
+1 0
خب دوست عزیز بنده یه لینک به شما دادم که دقیقا به کار شما مربوط میشه ...!!! شما واسه اینکه کاربرای سایت بتونن با برنامه اندروید لاگین کنن بایدبه صورت دستی یه اسکریپت php بنویسی چون نمی تونی با جاوا و اندروید مستقیم به دیتابیس وردپرس وصل بشی پس یه اسکریپت واسه اتصال نیازه که همراه فایل های وردپرس رو سرور باشه . حالا شما پسورد هایی رو که از کاربر میگیری رو باید به سمت اسکریپتی که نوشتین انتقال بدین و داخل اسکریپت از توابع هش پسورد لینک استفاده کنی هم واسه قبت نام هم لاگین کردن کاربرد داره (11 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
MyNewName  11 سال پیش
+2 0

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

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

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

با سلام مجدد

من یک فایل 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 نمونه بزارین .

خیلی ممنون

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

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

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

 <?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;
}
?>

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