指导php表单的问题
我想你搞错了,action标签是表单发送请求的地方,而不是表单发送请求后的去向 尝试在用户验证后立即使用以重定向页面指导php表单的问题,php,html,sql,forms,function,Php,Html,Sql,Forms,Function,我想你搞错了,action标签是表单发送请求的地方,而不是表单发送请求后的去向 尝试在用户验证后立即使用以重定向页面 编辑:同时删除表单的操作标记。通过删除它,请求将被发送到您正在处理的同一个文件。嗯,为什么要对HTML上下文中使用的值执行SQL转义?您仍然没有纠正代码中的基本问题,即您使用的两个查询完全错误(您将字符串与结果句柄进行比较),您的代码没有考虑多个用户帐户,只会根据从db检索到的第一个帐户进行验证,等等。。。自从您开始重复提出这些问题以来,您并没有从根本上改变代码中的任何内容。为了
编辑:同时删除表单的操作标记。通过删除它,请求将被发送到您正在处理的同一个文件。
嗯,为什么要对HTML上下文中使用的值执行SQL转义?您仍然没有纠正代码中的基本问题,即您使用的两个查询完全错误(您将字符串与结果句柄进行比较),您的代码没有考虑多个用户帐户,只会根据从db检索到的第一个帐户进行验证,等等。。。自从您开始重复提出这些问题以来,您并没有从根本上改变代码中的任何内容。为了启动,尽管你一直在谈论重定向,但在你的代码中没有任何地方你真正重定向。请先修复你的缩进。
<?php
if ($_POST['submit'] == "submit")
{
$userName = $_POST['username'];
$passWord = $_POST['password'];
$db= mysql_connect("localhost", "root", "root");
if(!$db) die("Error connecting to MySQL database.");
mysql_select_db("onlineform", $db);
$checkUserNameQuery = "SELECT username FROM onlineformdata ORDER BY id DESC LIMIT 1";
$checkUserName = mysql_query($checkUserNameQuery);
$checkPassWordQuery = "SELECT password FROM onlineformdata ORDER BY id DESC LIMIT 1";
$checkPassWord = mysql_query($checkPassWordQuery);
$AdminChanges = "";
if (($userName == $checkUserName) && ($passWord == $checkPassWord))
{
$AdminChanges = "AdminChanges.php";
}
else
{
$AdminChanges = "InvalidLogin.html";
}
}
function PrepSQL($value)
{
// Stripslashes
if(get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Quote
$value = "'" . mysql_real_escape_string($value) . "'";
return($value);
}
?>
<html>
<head>
<title>Admin Login</title>
</head>
<body>
<form action = <?php echo PrepSQL($AdminChanges); ?> method="post">
username: <input type="text" name="username" />
password: <input type="text" name="password" /> <br/>
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
<?php
if($_POST['username'] && $_POST['password']){
$username = $_POST['username']; // Escape this
$password = $_POST['password']; // Escape this
$searchQuery = mysql_query("SELECT id FROM onlineformdata WHERE username = '$userName' AND password = '$password' ORDER BY id DESC LIMIT 1");
if(mysql_num_rows($searchQuery)){
header('location:/adminPage.php'); // Go to this page if row exists in DB
}
else{
header('location:/invalidLoginPage.html'); //Go to this page if row doesn't exist in DB
}
exit; // So that it quite this page and goes to the desired one set in the "headers"
}
else{
//Not strictly needed... But you could be useful in some circumstances
}
?>
<html>
<head>
<title>Admin Login</title>
</head>
<body>
<form action='' method="post">
username: <input type="text" name="username" />
password: <input type="text" name="password" /> <br/>
<input type="submit" value="submit" />
</form>
</body>
</html>