0

我想为网站制作一个简单的登录表单

    <form action="ContactFormHandler.php" method="post">
        <table>
            <tr>
                <td>
                    Username:
                </td>
                <td>
                    <input type="text" id="username" name="username" />
                </td>
            </tr>
            <tr>
                <td>
                    Password:
                </td>
                <td>
                    <input type="text" id="password" name="password" />
                </td>
            </tr>
            <tr>
                <td>
                    Your Email:
                </td>
                <td>
                    <input type="text" id="Email" name="Email" />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center;">
                    <input type="submit" id="submit" value="Submit" />
                    <input type="reset" id="reset" value="Reset" />
                </td>
            </tr>
        </table>
    </form>
</body>

你看到它说联系表单处理程序的地方了吗?我希望表单和处理表单的文件是同一个文件。2 合 1。

如何将此联系人处理程序包含在联系表单的同一文件中?

<?php
$contactName = $_POST["ContactName"];
$contactEmail = $_POST["ContactEmail"];
$contactPassword = $_POST["ContactLeastFavoriteColor"];
$sql_connection = mysql_connect("localhost", "root", "root");
mysql_select_db("MyRadContactForm", $sql_connection);
$sql = "INSERT INTO MyRadContacts (
            ContactName,
            ContactEmail,
            ContactPassword,
            ContactDateCreated
        )
        VALUES (
            '$contactName',
            '$contactEmail',
            '$contactPassword',
            NOW()
        )";

mysql_query($sql, $sql_connection);
mysql_close($sql_connection);
?>
4

4 回答 4

1

您需要对.php文件使用扩展名以将所有代码包含在 1 个文件中,原因是:

login.php可以同时包含htmlphp

login.html可以包含html但不能包含php代码

因此您可以通过创建login.php文件一次完成所有操作:

<?php
$contactName = $_POST["ContactName"];
$contactEmail = $_POST["ContactEmail"];
$contactPassword = $_POST["ContactLeastFavoriteColor"];
$sql_connection = mysql_connect("localhost", "root", "root");
mysql_select_db("MyRadContactForm", $sql_connection);
$sql = "INSERT INTO MyRadContacts (
            ContactName,
            ContactEmail,
            ContactPassword,
            ContactDateCreated
        )
        VALUES (
            '$contactName',
            '$contactEmail',
            '$contactPassword',
            NOW()
        )";

mysql_query($sql, $sql_connection);
mysql_close($sql_connection);
?>


<!--your html code here -->

还请检查您的代码以确保安全SQLinjection,如果您想获得一些提示,请在谷歌上查看,对不起我的英语不好

于 2012-11-24T10:38:05.517 回答
1

命名您的提交按钮,以便您可以检查它是否存在于请求中。如果没有,请显示表单,如果它在请求中,那么您是从表单中调用的 - 将您的数据存储在数据库中。

更多/更少您的代码应如下所示:

<?php

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

   $contactName = $_POST["ContactName"];
   $contactEmail = $_POST["ContactEmail"];
   $contactPassword = $_POST["ContactLeastFavoriteColor"];
   $sql_connection = mysql_connect("localhost", "root", "root");
   mysql_select_db("MyRadContactForm", $sql_connection);
   $sql = "INSERT INTO MyRadContacts (
               ContactName,
               ContactEmail,
               ContactPassword,
               ContactDateCreated
           )
           VALUES (
               '$contactName',
               '$contactEmail',
               '$contactPassword',
               NOW()
           )";

   mysql_query($sql, $sql_connection);
   mysql_close($sql_connection);

} else {

?>

   <form action="ContactFormHandler.php" method="post">
     <table>
         <tr>
             <td>Username:</td>
             <td><input type="text" id="username" name="username" /></td>
         </tr>
         <tr>
             <td>Password:</td>
             <td><input type="text" id="password" name="password" /></td>
         </tr>
         <tr>
             <td>Your Email:</td>
             <td><input type="text" id="Email" name="Email" /></td>
         </tr>
         <tr>
             <td colspan="2" style="text-align: center;">
                 <input name="submit" type="submit" id="submit" value="Submit" />
                 <input type="reset" id="reset" value="Reset" />
             </td>
         </tr>
     </table>
   </form>

<?php

} // end of else

?>

您仍然对 SQL 注入持开放态度,并且您的代码似乎没有处理任何错误(既没有来自空字段等表单的数据也没有代码故障),但这超出了您的问题范围。

于 2012-11-24T11:27:34.180 回答
0

使用这种方法

检查表单提交

<?php
if($_POST['login_submit'] ==1){
    //process your logic here
}
?>

修改您的表格

<form action="" method="post">
<input type="hidden" name="login_submit" value="1">
....
.....
</form>
于 2012-11-24T10:37:28.717 回答
0

使表单提交到自己的页面

将表单更改actionaction="<?php echo $_SERVER['PHP_SELF'] ?>"以使表单提交到同一页面

处理页面内的表单

检查您的 PHP 代码以查看表单是否已提交:

if (isset($_POST['submit'])) {
    [your processing code here]
} else {
    [display form]
}

(请务必添加name="submit"到您的提交按钮)

于 2012-11-24T10:37:46.093 回答