为什么我的php登录页面不起作用

时间:2017-01-04 06:07:23

标签: php html mysql login

我的代码有问题。当我点击提交按钮时没有任何反应。 虽然我之前在另一个项目中使用过代码,但它运行正常。 我不知道问题出在哪里

html表格:

<form role="form" action="login.php" method="POST" class="login-form">
    <div class="form-group">
        <label class="sr-only" for="form-username">Username</label>
        <input type="text" name="username" placeholder="Username..." class="form-username form-control" id="form-username">
   </div>
   <div class="form-group">
       <label class="sr-only" for="form-password">Password</label>
       <input type="password" name="password" placeholder="Password..." class="form-password form-control" id="form-password">
   </div>
   <div class="form-group">
       <input id="check" type="checkbox" class="check" checked>
       <label for="check"><span class="icon"></span> Keep me Signed in</label>
   </div>
       <button type="submit" name="login_submit" class="btn">Sign in!</button>
</form>

config.php文件

<?php
define('DBHOST', 'localhost'); 
define('DBNAME', 'projectdb'); 
define('DBUSER', 'root'); 
define('DBPASS', ''); 
define('DBCONNSTRING','mysql:host=localhost;dbname=projectdb'); // the connection string
?>

的login.php

<?php
if (isset($_POST['login_submit'])) {
    $id = $_POST["username"];
    $pass = $_POST["password"];

    try {
        require_once('config.php');
        $pdo = new PDO(DBCONNSTRING,DBUSER,DBPASS);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Exception handling Mode
        $sql="SELECT * FROM login WHERE username='$id' AND password='$pass'";
        $result=$pdo->query($sql);
        $count=$result->rowCount();

        if ($count=="0") {
            echo "invalid username and/or password";
            echo '<p> <a href="index.html"> GO TO HOME PAGE </a> </p>';
        } else {
            setcookie("UserName", $id,time()+60*60*24);
            echo "check cookie " .$_COOKIE["id"];
            session_start();
            $_SESSION["id"] = $id;
            $_SESSION["loginTime"] = time();
            header('Location: StudentHome.html');
        }
    } catch (PDOException $e) {
        echo "Connection Error! <br>".$e->getMessage();
    }
}
?>

1 个答案:

答案 0 :(得分:0)

首先以FireBug为例调试你的html。你会发现你有很多错误的东西。

有些东西:

session_start()位置错误。您需要将它放在文件的开头。 &#34;所需的所有文件&#34;

<?php session_start() 

?>

按钮非常适合onclick事件并使用javascript提交。如果您没有javascript检查,请使用<input type='submit' name='login_submit'>

使用input_filter()进行保存。您的代码目前很容易注入。您可以在此处阅读更多内容ivorysmoker MySQL injection and some stuff

$id = $_POST["username"];
$pass = $_POST["password"];

存在Attribut角色dosnt表单。当我错了时纠正我。

那么您的表单操作路径是否正确?你的文件在同一个目录中吗?

小问题为什么使用Cookie和会话?