使用 XAMPP 和 MySQL 的 PHP 登录脚本

标签 php mysql authentication xampp

Note: I am German. So some irrelevant text is in german like e.g. some php echo messages.

这可能只是初学者的错误。但我搜索了一整夜,并没有找到解决我问题的答案。我希望你能帮助我。

我想使用 XXAMP 及其 mysql 数据库创建一个 php 登录脚本。 我通过 phpmyadmin 创建了一个数据库。

[这里可能是该数据库的图像] - 但是:“您需要至少 10 个声誉才能发布图像。” 抱歉。

然后我开始编写login.php 脚本。看起来是这样的:

<?php
session_start();
?>

<?php
$verbindung = mysql_connect("127.0.0.1", "myname" , "mypassword")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$password = md5($_POST["password"]);

$abfrage = "SELECT username, password FROM access WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

// $count = mysql_num_rows($ergebnis);

if($row->password == $password) {
    $_SESSION["username"] = $username;
    echo "Login erfolgreich. <br> <a href=\"home.php\">Weiter</a>";
    }
else {
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.htm\">Login</a>";
    }
?>

我已经在单独的 php 文件中测试了与数据库的连接。 它有效。

但是当我尝试登录我的index.htm时:

<html>
<head>
         <title>Login</title>
</head>
<body>

         <form action="login.php" method="post">
                 <input type="text" size="24" maxlength="50" name="username"<br>
                 <input type="password" size="24" maxlength="50" name="password"<br>
                 <input type="submit" value="Login">
         </form>

</body>
</html>

我在login.php上得到了答案:

password == $password) { $_SESSION["username"] = $username; echo "Login erfolgreich. Weiter"; } else { echo "Benutzername und/oder Passwort waren falsch. Login"; } ?>

我尝试了很多方法,但没有任何帮助。 也许您知道为什么它不起作用?
我将非常感激。

最佳答案

试试这个 索引.html

<html>
<head>
         <title>Login</title>
</head>
<body>

         <form action="login.php" method="post">
                 <input type="text" size="24" maxlength="50" name="username"<br>
                 <input type="password" size="24" maxlength="50" name="password"<br>
                 <input type="submit" value="Login">
         </form>

</body>
</html>

和login.php

<?php
session_start();

$verbindung = mysql_connect("127.0.0.1", "myname" , "mypassword")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("project") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$password = md5($_POST["password"]);

$abfrage = "SELECT username, password FROM user WHERE username LIKE '".$username."' LIMIT 1";
$ergebnis = mysql_query($abfrage);
if (!$ergebnis)
{
 die("mySQL error: ". mysql_error());  

 }
$row = mysql_fetch_object($ergebnis);

// $count = mysql_num_rows($ergebnis);

if($row->password == $password) {
    $_SESSION["username"] = $username;
    echo "Login erfolgreich. <br> <a href=\"home.php\">Weiter</a>";
    }
else {
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.htm\">Login</a>";
    }

?>

注意::mysql 扩展已弃用。如果您正在做新项目,请使用 mysqli

关于使用 XAMPP 和 MySQL 的 PHP 登录脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714150/

相关文章:

php - 使用类和 DAO 显示数据库中的数据

python - Ansible mysql_user 与 Percona 57 和 RHEL7

php - 将 Symfony 项目部署到 App Engine - 错误 : Too many files

php - 获取当前运行版本的 PHP 版本

php - 将日期时间插入 codeigniter

MYSQL,从具有多个相同值行的列中仅获取具有唯一 id 的第一行?

php - 触发器 x PHP Controller

asp.net - 编写我自己的自定义 OAuth 外部登录提供程序

php - Symfony2 一种API两种认证方式

http - 如何在 Active Directory 中使用 NTLM 身份验证