当前位置: 首页 > 知识库问答 >
问题:

PHP登录脚本显示不正确[重复]

左丘善
2023-03-14

因此,我创建了一个user_login.php页面(由html组成,一个登录表单),表单是:

<form method="post" action="scripts/login.php">

<p>Username: <input type="text" name="Username" /></p>

<p>Password: <input type="password" name="Password" /></p>

<p><input type="submit" value="Sign In" /></p>

</form>

除此之外,我还有一个login.php脚本(见下文)

<?php
   include "scripts/connection.php";
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($link,$_POST['Username']);
      $mypassword = mysqli_real_escape_string($link,$_POST['Password']); 

      $sql = "SELECT * FROM Customer WHERE Customer_Username = '$myusername' and Customer_Password = '$mypassword'";
      $result = mysqli_query($link,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

      if($count == 1) {
         $_SESSION['Username'] = $myusername;

         header("location: Welcome.php");
      }else {
         $error = "Your Username or Password is invalid";
      }
   }
?>

现在我知道我的connection.php可以工作了,因为我在网站的其他地方使用它。

我的问题是,当我在浏览器中浏览用户_login.php页面时,当我单击“登录”按钮时,它会将我带到www.website.com/login.php文件,但整个页面是空白的(白色)。无论我在用户名和密码字段中输入什么或将其留空,都会发生这种情况。

显然,我需要的是,如果字段为空或与数据库中的记录不匹配,则显示错误消息。如果登录确实匹配,则将它们重定向到Welcome.php文件。

不是100%,如果login.php脚本缺少任何东西,所以任何帮助都将不胜感激。

使现代化

添加后:

session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
include "scripts/connection.php";  

在我的代码顶部,我现在收到一条很长的错误消息,而不是一个纯白的屏幕:

警告:include(scripts/connection.php):无法打开流:第5行的scripts/login.php中没有这样的文件或目录

警告:include():无法在第5行的scripts/login.php中打开“scripts/connection.php”以包含(include_path='。:/usr/share/php:/usr/share/pear')

注意:未定义变量:第10行scripts/login.php中的链接

警告:mysqli_real_escape_string()要求参数1为mysqli,第10行的/scripts/login.php中给出了null

注意:未定义的变量:第11行 /scripts/login.php中的链接

警告:mysqli_real_escape_string()期望参数1为mysqli,在第11行的 /scripts/login.php中为空

注意:未定义的变量:第14行的/scripts/login.php中的链接

警告:mysqli_query()期望参数1为mysqli,在第14行的 /scripts/login.php中为空

警告:mysqli_fetch_array()希望参数1是mysqli_result,在第15行的/scripts/login.php中给出空值

警告:mysqli_num_rows()期望参数1是mysqli_result,第18行的/scripts/login.php中给出的null

共有1个答案

桑思远
2023-03-14

如果您的scripts/connection.php与login.php位于同一文件夹中,那么include只应为

include "connection.php";

一件事,你的session_start() 必须是php中的第一行。这可能是抛出了一个错误(你看不到),所以页面是白色的空白。

会话_start()之后添加此内容,然后重新加载页面。因此,顶部的完整代码如下所示

session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
include "scripts/connection.php";

使现代化

要排除故障,请拆下此部件

if($count == 1) {
     $_SESSION['Username'] = $myusername;

     header("location: Welcome.php");
  }

试试这个

if($count == 1) {
     echo "It WORKS";
  }

这将允许您查看是否满足此条件,如果满足,则重定向就是问题所在

 类似资料:
  • 问题内容: 这里的另一个新手..我正在尝试修复以下代码,以防止sql注入,并学习编写php和sql的新方法。 您的建议将不胜感激。 我修改了这个 为此,我没有得到相同的结果。 问题答案: 您不能将mysql与mysqli或PDO混合使用。您需要查看错误日志,因为这不可能实现-您应该看到大量致命错误。

  • 嗯,我在linux系统上安装时遇到问题。我遵循了digital ocean的所有指示。之后,我在浏览器中验证它,然后它显示这种。我在安装过程中遗漏了什么吗?我的php版本是7,我使用的是ubuntu 14.04。

  • 有人能告诉我代码有什么问题吗?它只显示第一行和表头information.thks

  • 我正在尝试使用一个名为'jQuery.InstagramFeed'的库,它允许我在不使用访问令牌的情况下显示用户feed中的图像。所以,我一直在尝试使用它,但是,出于某种原因,它并没有向我展示任何东西。 我已经研究了几个星期了,我已经尝试了在这里的很多帖子(以及其他论坛)中提出的很多解决方案,比如下面这些: TypeError:$不是函数调用jQuery函数 “未捕获的TypeError:$不是函

  • 我现在正在编写一个基本的PhP登录脚本,以便以后开发,我已经掌握了登录工具。php文件,但当我使用错误的详细信息登录(检查登录工具是否正常工作)时,我会出现以下错误: “PHP语法检查:解析错误:语法错误,第27行代码中出现意外的'$un'(T_变量)$q=”从username='$un'和pass=SHA1('$p')的用户中选择用户id、用户名“;” 任何关于为什么我得到这个错误的帮助都将不胜

  • 我有一个基本的Groovy脚本,我希望尽可能简单地创建日志。我希望消息转到标准输出,以及一个日志文件,日志文件中的每个条目都有一个时间戳。 我不能使用@Log符号,因为它是一个脚本,我没有要注入的类。否则我认为这将是理想的。