登录页面不工作。即使使用正确的电子邮件和密码,用户单击登录按钮后也会出现空白页。var_dump$_POST返回数组(10){“电子邮件”=> string(0)“=> string(0) "”登录“=> string(0) "uname"=> string(0)”name "“=> string(0) "”=> string(0) "“puname"=> string(0) "pname"=> string(0) "pemail"=> string(0) "Partnerpassword"=> string(0)”
这是我的密码
<?php
require_once("config.php");
error_reporting(E_ALL);
ini_set('display_errors', 1);
$id=$_POST['email'];
$pass=$_POST['password'];
var_dump($_POST);
$stmt = $cn->prepare('SELECT Email,Password FROM register_partneruser WHERE Email = ? ');
$stmt->bind_param('s', $id);
$stmt->execute();
$stmt->bind_result( $a,$Partnerpassword);
if($stmt->fetch())
{
// var_dump($id,$a);
// var_dump($password,$Partnerpassword);
if(password_verify($pass,$Partnerpassword))
{
echo "Login successfull";
}
else
{
echo"Login failed";
}
}
else
{
$error = "Username or Password is incorrect";
}?>
以下是登录表单的HTML代码片段
<form class="js-validate" novalidate="novalidate" method="post">
<!-- Login -->
<div id="login" style="opacity: 1;" data-target-group="idForm" class="animated fadeIn">
<!-- Header -->
<div class="card-header text-center">
<h3 class="h5 mb-0 font-weight-semi-bold">Login</h3>
</div>
<!-- End Header -->
<div class="card-body pt-6 pb-4">
<!-- Form Group -->
<div class="form-group pb-1">
<div class="js-form-message js-focus-state border border-width-2 border-color-8 rounded-sm">
<label class="sr-only" for="signinSrEmail">Email</label>
<div class="input-group input-group-tranparent input-group-borderless input-group-radiusless">
<input type="email" class="form-control" name="email" id="signinSrEmail" placeholder="Email Or Username" aria-label="Email Or Username" aria-describedby="signinEmail" required="" data-msg="Please enter a valid email address." data-error-class="u-has-error" data-success-class="u-has-success">
<div class="input-group-append">
<span class="input-group-text" id="signinEmail">
<span class="far fa-envelope font-size-20"></span>
</span>
</div>
</div>
</div>
</div>
<!-- End Form Group -->
<!-- Form Group -->
<div class="form-group pb-1">
<div class="js-form-message js-focus-state border border-width-2 border-color-8 rounded-sm">
<label class="sr-only" for="signinSrPassword">Password</label>
<div class="input-group input-group-tranparent input-group-borderless input-group-radiusless">
<input type="password" class="form-control" name="password" id="signinSrPassword" placeholder="Password" aria-label="Password" aria-describedby="signinPassword" required="" data-msg="Your password is invalid. Please try again." data-error-class="u-has-error" data-success-class="u-has-success">
<div class="input-group-prepend">
<span class="input-group-text" id="signinPassword">
<span class="flaticon-password font-size-20"></span>
</span>
</div>
</div>
</div>
</div>
<!-- End Form Group -->
<div class="mb-3 pb-1">
<button type="submit" name="login" formaction="../php/login.php" method="post" class="btn btn-md btn-block btn-blue-1 rounded-xs font-weight-bold transition-3d-hover">Login</button>
</div>发布于 2021-01-09 13:19:18
你的问题错了吗?
在以下几个方面存在差异:
NULL被返回,上没有任何返回。
由此产生了几个问题:
运行web服务器的
error_reporting(E_ALL);和error_reporting(E_ALL);吗?删除数据库查询的代码和密码比较的代码,然后再次运行程序。
//$stmt = $cn->prepare('SELECT Email,Password FROM register_partneruser WHERE Email = ? ');
//$stmt->bind_param('s', $id);
//$stmt->execute();
//$stmt->bind_result( $a,$Partnerpassword);
if( 1 ) //if($stmt->fetch())
{
// var_dump($id,$a);
// var_dump($password,$Partnerpassword);
if( 1 ) //if(password_verify($pass,$Partnerpassword))
{
echo "Login successfull";
}
else
{
echo"Login failed";
}
}
else
{
$error = "Username or Password is incorrect";
}程序现在应该在运行。无论用户是否登录,您都可以通过if(1)或if(0)手动控制/仿真。
如果您的程序现在正在运行,错误不在此程序中,但是:
有问题。
我假设Named Parameter是错误的,$stmt->bind_param('s', $id);:,因为它只在查询中被指定为?。
您没有得到错误的原因是您无权通过PHP-script设置该-script。
编辑1以回答问题:
你没有回答我的问题:谁是网络服务器的主机?如果是您,则必须更改php.ini并启用error_reporting。
否则,你必须看看你的网络主机的配置,如何启用它,或问他!
你的问题错了,!您应该问,我如何激活error_reporting,并给出必要的信息,哪里是托管,哪个php-版本,如果apache或其他!
发布于 2021-01-08 18:36:25
您的代码看起来很好,实际上,输出--这是输出:
array(3) { ["email"]=> string(4) "test" ["password"]=> string(4) "test" ["login"]=> string(0) "" }我猜你的config.php是有问题的。
试试这个,注释掉包含,注释掉var_dump之后的所有内容,如果您看到输出,那么该文件就是给您带来问题的文件。
编辑:尝试调试您的HTTP调用,可以使用铬调试器(f12->单击网络->单击保存日志->,打开站点并运行post)
你应该看到这样的东西:
呼叫:
http://127.0.0.1/projects/localweb/so/
GET http://127.0.0.1/projects/localweb/so/
sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
HTTP/1.1 200 OK
Date: Fri, 08 Jan 2021 21:15:42 GMT
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.3.23
Last-Modified: Fri, 08 Jan 2021 21:02:47 GMT
ETag: "11c1-5b869e0e0b909"
Accept-Ranges: bytes
Content-Length: 4545
Content-Type: text/html
http://127.0.0.1/projects/action.php
email: email@email.com
login:
password: password
POST http://127.0.0.1/projects/action.php
sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
HTTP/1.1 200 OK
Date: Fri, 08 Jan 2021 21:15:48 GMT
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.3.23
X-Powered-By: PHP/7.3.23
Content-Length: 127
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8响应:数组(3){“电子邮件”=>字符串(15) "email@email.com“”密码“=>字符串(8)”密码“”登录“=> string(0)”“}
没有重定向或类似的东西。
您是在http或https上运行这个吗?发帖时是否将调用移动到https?http日志上还有其他重定向吗?
另外,检查一下您的.htaccess,也许您的htaccess正在重写某些东西,添加斜杠之类的,删除它以进行测试,以确保您有一些与代码无关的内容。
https://stackoverflow.com/questions/65632941
复制相似问题