我的代码有问题。当我点击提交按钮时没有任何反应。 虽然我之前在另一个项目中使用过代码,但它运行正常。 我不知道问题出在哪里
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();
}
}
?>
答案 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和会话?