使用PHPmyadmin登录系统无法正常工作

时间:2015-01-04 06:24:22

标签: php mysql wamp

我按照教程使用php创建了一个简单的登录系统。我安装了wampserver并从phpmyadmin面板创建了数据库。它不起作用,我相信这是服务器的问题。当我创建数据库时,出现在那里的服务器为mysql wampserver,在教程中为localhost。我将config.inc.php中的服务器名称更改为localhost,但仍然无效。当我单击登录按钮时,它将返回到wampserver的索引页面。我会分享我的代码,也许有人可以找到这个bug,因为我无法弄清楚我做错了什么。

dbConnect.php

<?php
$dbCon = mysqli_connect("localhost", "root", "", "tests");
?> 

user.php的

<?php
session_start();

if (isset($_SESSION['id'])) {
    // Put stored session variables into local PHP variable
    $uid = $_SESSION['id'];
    $usname = $_SESSION['username'];
    $result = "Test variables: <br /> Username: ".$usname. "<br /> Id: ".$uid;
} else {
    $result = "You are not logged in yet";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $usname ;?> - Test Site</title>
</head>

<body>
<?php
echo $result;
?>
</body>
</html>

first.php

<?php
session_start();

if (isset($_POST['username'])) {

        // Include the databas connection script
    include_once("dbConnect.php");

    $usname = strip_tags($_POST['username']);
    $paswd = strip_tags($_POST['password']);

    //$usname = mysqli_real_escape_string($dbCon, $usname);
    //$paswd = mysqli_real_escape_string($dbCon, $paswd);



    $sql = "SELECT id, username, password FROM members WHERE username = '$usname' AND activated = '1' LIMIT 1";
    $query = mysqli_query($dbCon, $sql);
    $row = mysqli_fetch_row($query);
    $uid = $row[0];
    $dbUsname = $row[1];
    $dbPassword = $row[2];

    // Check if the username and the password they entered was correct
    if ($usname == $dbUsname && $paswd == $dbPassword) {
        // Set session 
        $_SESSION['username'] = $usname;
        $_SESSION['id'] = $uid;
        // Now direct to users feed
        header("Location: user.php");
    } else {
        echo "<h2>Oops that username or password combination was incorrect.
        <br /> Please try again.</h2>";
    }

}
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic login system</title>
</head>

<body>
<div id="wrapper">
<h1>Simple PHP Login</h1>
<form id="form" action="index.php" method="post" enctype="multipart/form-data">
Username: <input type="text" name="username" /> <br />
Password: <input type="password" name="password" /> <br />
<input type="submit" value="Login" name="Submit" />
</form>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

RhapX试图解释的是,您的表单操作告诉表单在何处发布数据。目前,你有

<form id="form" action="index.php" method="post" enctype="multipart/form-data">

这意味着一旦用户点击提交,它就会将它们发送到index.php,并将随之发送$ _POST数据。但是你说first.php是实际完成所有工作的文件,所以你需要将用户和$ _POST数据发送到first.php。将其更改为:

<form id="form" action="first.php" method="post">

(将动作更改为first.php,只是删除了enctype - 它可能是正确的,但它完全没必要,而且我已经看到它会导致某些问题。)