喜欢为网站制作一个简单的登录表单
<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);
?>
使用文件的.php
扩展名将所有代码包含在 1 个文件中,原因如下:
login.php
可以同时包含html
和php
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
安全,如果您想遵循一些提示,请谷歌,并为我的英语不好而抱歉
命名您的提交按钮,以便您可以检查它是否存在于请求中。如果没有,请显示表单,如果它在请求中,则从表单调用您 - 将数据存储在数据库中。
更多/更少您的代码应如下所示:
<?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注入持开放态度,并且您的代码似乎没有处理任何错误(既没有缺少空字段等表单中的数据,也没有代码失败),但这超出了您的问题范围。
将表单提交到自己的页面
将表单的action
更改为action="<?php echo $_SERVER['PHP_SELF'] ?>"
以使表单提交到同一页面
处理页面中的表单
检查您的 PHP 代码以查看表单是否已提交:
if (isset($_POST['submit'])) {
[your processing code here]
} else {
[display form]
}
(请务必将name="submit"
添加到提交按钮)
使用此方法
检查表单提交
<?php
if($_POST['login_submit'] ==1){
//process your logic here
}
?>
修改表单
<form action="" method="post">
<input type="hidden" name="login_submit" value="1">
....
.....
</form>