因此,我创建了一个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
如果您的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符号,因为它是一个脚本,我没有要注入的类。否则我认为这将是理想的。