是否可以编写一个PHP页面,例如form.php,其中包含能够执行以下场景的php函数generalValidate($ form):
我认为另一种描述我的问题的方法是 - 是否有一种通用方法来迭代客户端发送的HTML表单(可能是php页面本身首先发送给客户端的表单),同时激活一些每个表单值的代码?
如果它是一个糟糕的问题,请不要吃我,我真的只是想学习:)代码例如填补您的便利:
<?php
function generalValidate($form) {
...
}
if (!isset($_SESSION))
session_start();
else if (generalValidate(...)) {
}
?>
<html>
<head>
</head>
<div>
<p>Register</p>
</div>
<form id="regfrm" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" align="center">
<table align="center">
<tr>
<td>First Name :</td>
<td><input name="fname" value="<?php if (isset($_POST["fname"])) {echo v($_POST["fname"]);}?>" required></input></td>
</tr>
<tr>
<td>Last Name :</td>
<td><input name="lname" value="<?php if (isset($_POST["lname"])) {echo v($_POST["lname"]);}?>" required></input></td>
</tr>
<tr>
<td>Email :</td>
<td><input id="email" name="email" value="<?php if (isset($_POST["email"])) {echo v($_POST["email"]);} else {echo "xo@xo.xo";}?>" required></input></td>
</tr>
<tr>
<td>Password :</td>
<td><input name="pw" type="password" value="e" required></input></td>
</tr>
<tr>
<td>Retype password :</td>
<td><input name="pw" type="password" value="e" required></input></td>
</tr>
</table>
<input type="submit" value="Register" ></input>
</form>
</body>
</html>
答案 0 :(得分:2)
是。虽然迭代字段会使您的清晰度降低一些,并且当您想要确定如何验证所述字段时,会使其更加混乱(例如,要知道该值是名称还是数字或者其他),但你可以这样做:
在PHP脚本中,您可以使用以下内容:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Determines if the form was sent through the POST method
foreach ($_POST as $fieldName => $formValue) {
// Validate $formValue
}
}
答案 1 :(得分:1)
我想您想问的是,如果不知道表单的变量名称就可以操作表单数据。我这样说是因为你想要一个通用的功能,代码可以重用于任何形式。由于这可能是当前存在的任何形式或您将来创建的表单,因此您不会知道表单中变量的名称。
此代码捕获表单的输入。您现在要做的就是创建一个函数,在$ name和$ item值循环时执行任何操作。
<?php
foreach($_POST as $name => $item) {
print "name::$name item::$item<br>";
}
?>
<html><title>test</title>
<form method="post">
field one: <input type="text" name="one">
<br>
field two: <input type="text" name="two">
<input type="submit" value="go!">
</form>
</html>
答案 2 :(得分:0)
当然,可以将原始表单所在的页面作为表单对话框的接收者。通过会话变量,但主要通过按钮变量的内容,您可以确定您的表单当前处于哪种状态(在单击提交按钮后,您将获得一个$ _REQUEST数组元素,其中包含保存值的按钮的名称按钮)。
答案 3 :(得分:0)
查看answer here。
这实际上是在PHP中接收表单数据的规范问题。有很多方法可以做到。