با سلام سال نو مبارک
این کد های مربوط به بررسی نام کاربری و مرز عبور در ربات من هست
function bot($method, $datas=[])
{
$url = "https://api.telegram.org/bot" . API_KEY . "/" . $method;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datas);
$res = curl_exec($ch);
if(curl_error($ch))
{
var_dump(curl_error($ch));
}
else
{
return json_decode($res);
}
}
function makeKeyboard(array $opt)
{
$key = array(
'keyboard' => $opt,
'resize_keyboard' => true,
'one_time_keyboard' => true,
'selective' => true
);
return json_encode($key, TRUE);
}
function inline(array $opt)
{
$key = array(
'inline_keyboard' => $opt
);
return json_encode($key, TRUE);
}
function inlinebtn($text)
{
$opt = array(
array(
array(
'text' => $text,
'callback_data' =>$text
)
)
);
return $opt;
}
$menu = array(array("ورود"));
$update = file_get_contents('php://input');
file_put_contents('bot.txt', $update);
$update = json_decode($update, TRUE);
$chat_id = $update['message']['from']['id'];
$message = $update['message']['text'];
$return_message = urlencode($message);
$btn = makeKeyboard($menu);
if($message == '/start')
{
bot('sendMessage', "chat_id=$chat_id&text=به ربات سیوان مال خوش آمدید!&reply_markup=$btn");
}
if($message == "ورود")
{
bot('sendMessage', "chat_id=$chat_id&text=نام کاربری خود در سایت را وارد نمایید&reply_markup=$btn");
}
if (in_array($message, $userEmailValid))
{
bot('sendMessage', "chat_id=$chat_id&text=رمز عبور خود را وارد نمایید&reply_markup=$btn");
}
$currentUsers = App\User::where("email", $message)->get();
$user_entered_password = '';
foreach($currentUsers as $currentUser)
{
$user_entered_password = $currentUser->password;
}
if (password_verify($message, $user_entered_password))
{
bot('sendMessage', "chat_id=$chat_id&text=شما وارد شدید&reply_markup=$btn");
}
else
{
bot('sendMessage', "chat_id=$chat_id&text=نام کاربری یا رمز عبور اشتباه است&reply_markup=$btn");
}
ولی زمانی که رمز رو وارد می کنم میدونم درست هست رمز ، اما باز هم مقدار false بر میگردونه در قسمت
if (passwordverify($message, $userenteredpassword))
{
bot('sendMessage', "chatid=$chatid&text=شما وارد شدید&replymarkup=$btn");
}
else
{
bot('sendMessage', "chatid=$chatid&text=نام کاربری یا رمز عبور اشتباه است&replymarkup=$btn");
}
ممنون میشم راهنمایی بفرمایید.
سلام روز بخیر
به نظر میرسه مشکلی که در کد شما وجود دارد مربوط به تفاوت میان دو نوع هش کردن پسورد هست.
در صورتی که شما در دیتابیس از تابع passwordhash برای هش کردن پسورد استفاده کردید، باید در کد خود از تابع passwordverify استفاده کنید تا بتونید پسورد ورودی کاربر را با پسورد هش شده در دیتابیس چک کنید.
در صورتی که در دیتابیس از تابع دیگری برای هش کردن پسورد استفاده کردید، باید از همان تابع در کد خود استفاده کنید.
در هر صورت، با توجه به کدی که دارید، احتمالاً تابع passwordverify کار نمیکنه چون پسورد شما با نوع هش کردن پسورد در دیتابیس مطابقت ندارد.
ممنون از جوابتون دوست من
من از این تابع برای هش کردن پسورد استفاده کردم موقع ثبت نام در سایت
$inputs['password'] = password_hash($request->password, PASSWORD_DEFAULT);
و وقتی از password_verify استفاده میکنم مقدار false بر میگردونه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟