我正在嘗試使用 PHP cURL 將 HTML 表單登錄憑據(電子郵件和密碼)發布到端點,然后在成功登錄后重定向到不同的頁面(admin/index.php)。但是,我不斷{"success":"false","message":"please provide email and password"} 從我的 nodejs 登錄端點收到錯誤。我對 cURL 沒有經驗,因此我沒有注意到我在哪里弄錯了。請幫忙。
<?php
session_start();
// include('includes/config.php');
$error = ''; //Variable to Store error message;
if (isset($_POST['login'])) {
if (empty($_POST['email']) || empty($_POST['password'])) {
$error = "Email or Password is Invalid";
} else {
//Define $user and $pass
$email = ($_POST['email']);
$password = ($_POST['password']);
$url = 'http://localhost:5000/auth/login';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, $email.":".$password);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(['email' => $email, 'password' =>$password]));
$result = curl_exec($curl);
echo $result;
if ($result == 200) {
$_SESSION['alogin'] = $email;
header("Location: admin/index.php"); // Redirecting to other page
} else {
$error = "Try to login.";
}
curl_close($curl);
}
}
?>
這是 HTML 表單。
<div class="panel panel-info">
<div class="panel-heading">
LOGIN FORM
</div>
<div class="panel-body">
<form role="form" method="post" name="login" action="index.php" role="form">
<div class="form-group">
<label>Enter Email</label>
<input class="form-control" type="email" name="email" autocomplete="off" />
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="password" name="password" autocomplete="off" />
</div>
<button type="submit" name="login" class="btn btn-info">LOGIN</button>
</form>
</div>
</div>
uj5u.com熱心網友回復:
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(['email' => $email, 'password' =>$password]));
CURLOPT_POSTFIELDS 兩者都不是 JSON有兩種格式。
$post = 'key1=value1&key2=value2&key3=value3';
$post = array('key1'=>$value1,'key2'=>$value2,'key3'=>'value3');
您可能需要在用戶名和密碼上使用 urlencode()。如果您被告知使用CURLOPT_USERPWD,
那是非常規的。
這是錯誤的。它可能有效,但它仍然是錯誤的。
if ($result == 200) {
利用
$status = curl_getinfo($ch,CURLINFO_HTTP_CODE);
if ($status == 200){...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504597.html
上一篇:JQ中的樣本標準偏差
下一篇:按值獲取JSON字串
