var_dump returns null.The 登录页面出现空白

var_dump returns null.The login page gives a blank page

登录页面不工作。即使使用正确的电子邮件和密码,用户单击登录按钮后也会出现空白页面。 var_dump[$_POST] returns array(10) { ["email"]=> string(0) "" ["password"]=> string(0) "" ["login"] => string(0) "" ["uname"]=> string(0) "" ["name"]=> 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>
                                   

你的代码看起来没问题,其实输出是这样的输出:

array(3) { ["email"]=> string(4) "test" ["password"]=> string(4) "test" ["login"]=> string(0) "" }

我猜你的 config.php 出问题了。

试试这个,注释掉 include 并注释掉 var_dump 之后的所有内容,如果你看到输出,那么就是那个文件给你带来了问题。

编辑: 尝试调试您的 HTTP 调用,您可以使用 chrome 调试器(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

回复: array(3) { ["email"]=> string(15) "email@email.com" ["password"]=> string(8) "password" ["login"]=> string(0) "" }

没有重定向或类似的东西。

您运行是在 http 还是 https 上进行此操作? posting 时呼叫是否转移到 https? http 日志上的任何其他重定向?

此外,检查你的 .htaccess,也许你的 htaccess 正在重写一些东西,添加斜线,一些东西,删除它进行测试,确保你有一些与代码无关的东西。

你的问题有误吗?

有区别:

  • NULL 返回
  • 什么都没有返回

由此产生的几个问题:

  1. 谁在运行设置网络服务器?
  2. 您确定您也有权设置error_reporting(E_ALL);ini_set('display_errors', 1);?

删除数据库查询代码和密码比较代码,再运行程序。

//$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";
}

程序现在应该 运行ning。 您可以通过 if(1)if(0) 手动 control/emulate 无论用户是否登录。

如果你的程序现在是运行ning,错误不在这个程序,而是:

  • 存在 SQL 错误
  • 或者你的密码比较有问题

我假设 Named Parameter 是错误,$stmt->bind_param('s', $id);:因为它在查询中仅指定为 ?

您没有收到错误的原因是您无权通过 PHP-脚本设置 Error Reporting


为问题编辑 1:

您没有回答我的问题:谁托管网络服务器?如果是您,则必须更改 php.ini 并启用 error_reporting.

否则你得看看你的虚拟主机的配置,如何启用它,或者问他!

你的问题是错误的!你应该问,我如何激活 error_reporting 并提供必要的信息,托管位置,哪个 php- 版本,如果是 apache 网络服务器或其他!