指导php表单的问题

指导php表单的问题,php,html,sql,forms,function,Php,Html,Sql,Forms,Function,我想你搞错了,action标签是表单发送请求的地方,而不是表单发送请求后的去向 尝试在用户验证后立即使用以重定向页面 编辑:同时删除表单的操作标记。通过删除它,请求将被发送到您正在处理的同一个文件。嗯,为什么要对HTML上下文中使用的值执行SQL转义?您仍然没有纠正代码中的基本问题,即您使用的两个查询完全错误(您将字符串与结果句柄进行比较),您的代码没有考虑多个用户帐户,只会根据从db检索到的第一个帐户进行验证,等等。。。自从您开始重复提出这些问题以来,您并没有从根本上改变代码中的任何内容。为了

我想你搞错了,action标签是表单发送请求的地方,而不是表单发送请求后的去向

尝试在用户验证后立即使用以重定向页面


编辑:同时删除表单的操作标记。通过删除它,请求将被发送到您正在处理的同一个文件。

嗯,为什么要对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>