gpt4 book ai didi

php - 使用 php 创建登录页面 - 看不到错误所在

转载 作者:行者123 更新时间:2023-11-29 00:45:04 25 4
gpt4 key购买 nike

编辑:作业。请不要提及处理安全问题的外部库或复杂程序。

我想实现一个非常基本的登录页面,将用户的用户名和密码与存储在数据库(使用 MySql)中的用户名和密码进行比较,然后重定向到另一个仅供登录用户使用的网页。我看过这两个教程:

http://frozenade.wordpress.com/2007/11/24/how-to-create-login-page-in-php-and-mysql-with-session/

http://www.phpro.org/tutorials/Basic-Login-Authentication-with-PHP-and-MySQL.html

并且我尝试使用这两种技术。第二个一直给我服务器错误,第一个给我登录页面,没有返回任何错误,但是当按下提交按钮时,它什么也没做。我几乎逐字逐句地遵循它,只是更改了文件名和一些数据库列名以适应我预先存在的东西,但无济于事。这个登录页面让我非常头疼,我真的很想现在就解决这个问题。

登录页面

<?php
// Inialize session
session_start();

// Check, if user is already login, then jump to secured page
if (isset($_SESSION['username'])) {
header('Location: RecordEvents.php');
}
?>

...跳过所有不必要的部分

<h1>Login</h1>
<?php
if(!empty($errorMessage))
{
echo("<p>There was a problem with your login:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
?>
<form action="loginscript.php" method="post">
Username:
<input type="text" name="username" /> </br>
Password:
<input type="password" name="password" /> </br>
<p>
<!--the submit button with an altered value. once selected the validation script will run-->
<input type="submit" name="login" value="Allons-y!" />
</p>

</form>

CONFIG.INC(我一开始尝试将文件命名为 .php,但没有任何区别。)

<?php

$hostname = 'localhost';
$dbname = 'clubresults';
$username = 'newuser';
$password = 'password';

// Let's connect to host
mysql_connect($hostname, $username, $password) or DIE('Connection to host is failed, perhaps the service is down!');
// Select the database
mysql_select_db($dbname) or DIE('Database name is not available!');

?>

登录脚本.PHP

<?php

// Inialize session
session_start();

// Include database connection settings
include('Inlcude\config.inc');

// Retrieve username and password from database according to user's input
$login = mysql_query("SELECT * FROM admin_passwords WHERE (Username = '" . mysql_real_escape_string($_POST['username']) . "') and (Password = '" . mysql_real_escape_string(md5($_POST['password'])) . "')");

// Check username and password match
if (mysql_num_rows($login) == 1) {
// Set username session variable
$_SESSION['username'] = $_POST['username'];
// Jump to secured page
header('Location: RecordEvents.php');
}
else {
// Jump to login page
header('Location: Login.php');
}

?>

RECORDEVENTS.PHP

<?php  
// Inialize session
session_start();

// Check, if username session is NOT set then this page will jump to login page
if (!isset($_SESSION['username'])) {
header('Location: Login.php');
}
Include ('Include\eventscript.php');
?>

...等等等等

<?php
if(!empty($errorMessage))
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
?>
<form action="RecordEvents.php" method="post">
Name: <input type="text" name="EventName" value="<?php print $varEventname;?>" /> </br>
Date: <input type="text" name="EventDate" placeholder="yyyy-mm-dd hh:mm:ss" value="<?php print $varEventdate;?>" /> </br>
Location: <input type="text" name="Location" value="<?php print $varLocation;?>" /> </br>
<p>
<!--the submit button with an altered value. once selected the validation script will run-->
<input type="submit" name="formSubmit" value="Allons-y!" />
<!--the reset button to empty the form and start again-->
<input type="reset" name="formReset" value="Try Again" />
</p>
</form>

数据库名为 clubresults,我使用的表是 admin_passwords,列名是:用户名、密码。

谁能发现我明显犯的错误?

最佳答案

检查你的拼写。

include('Inlcude\config.inc');

请看这个。

$login = mysql_query("SELECT * FROM admin_passwords WHERE username = '" .mysql_real_escape_string($_POST['username']) . "' and password = '" .mysql_real_escape_string($_POST['password']) . "'");

我删除了 md5() 函数。

http://php.net/manual/en/function.md5.php

这就是当您的查询中有 md5 时真正发生的情况。假设您输入了 ff。

用户名=用户名密码=密码

您的查询将像这样,在您的 $_POST['password'] 中使用 md5()。

SELECT * FROM admin_passwords WHERE username = 'username' and password = '5f4dcc3b5aa765d61d8327deb882cf99'

请查看上面的链接以获取更多信息!

关于php - 使用 php 创建登录页面 - 看不到错误所在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com