HTML示例:
<form method="post" id="form" action="form_action.php">
<input name="email" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
用户填写输入字段:dfg@dfg.com
echo $_POST['email']; //output: dfg@dfg.com
Run Code Online (Sandbox Code Playgroud)
表单中每个输入的名称和值将发送到服务器.有没有办法获得名称属性?所以像..
echo $_POST['email'].name; //output: email
Run Code Online (Sandbox Code Playgroud)
编辑:澄清对我的问题的一些困惑;
我们的想法是使用交换机动态验证每个输入.我使用一个单独的验证类来保持一切清洁.这是我最终结果的一个简短示例:
//Main php page
if (is_validForm()) {
//All input is valid, do something..
}
//Separate validation class
function is_validForm () {
foreach ($_POST as $name => $value) {
if (!is_validInput($name, $value)) return false;
}
return true;
}
function is_validInput($name, $value) {
if (!$this->is_input($value)) return false;
switch($name) {
case email: return $this->is_email($value);
break;
case password: return $this->is_password($value);
break;
//and all …Run Code Online (Sandbox Code Playgroud) 代码示例;
$stmt = $db->prepare('SELECT u.username, u.display_name FROM users u WHERE u.id = :userId');
$stmt->bindValue(':userId', 10);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
使用prepare - > execute.如果您确定查询将返回最多1行; 是否有一种简单的方法来查看查询是否确实返回了一行?我看到每个人都在'rowCount'上验证,但是有没有更清洁的方式?
本文:http://www.christiansouth.com/php/pdo-getting-started-part-2-pdostatement/ states;
如果查询成功则为TRUE,否则为FALSE.如果SQL出错,它只会返回FALSE.因此,如果SQL有效但不返回rowset,您仍将获得TRUE返回值.
这个陈述是否正确?因为php.net只谈到:
成功时返回TRUE,失败时返回FALSE.
所以,再次提出问题:
我尝试在cmd中使用此命令在Windows 7上安装Perl 5.16模块"Template-Toolkit":
C:> ppm安装Template-Toolkit
ppm安装失败:找不到任何提供Template-Toolkit的软件包
我安装的所有其他模块(AppConfig,DBI,DBD-mysql,MailTools,GD,Chart,GDGraph,..)都成功了.
在这个网页作为指南之后,他们提到(在ActivateState Perl部分下)您可能无法将Perl安装到包含空格的目录(例如"C:\ Program Files")中,因为它会破坏Template-Toolkit安装程序.因为我直接在'C:\' - >'C:\ Perl64 \'中安装了Perl,所以情况并非如此.
有这个问题的解决方案吗?或者我应该使用这里提到的旧版Perl ?
我使用这个(几乎)复杂的密码验证:
function is_password($password) {
return preg_match("^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$", $password);
}
Run Code Online (Sandbox Code Playgroud)
所以它必须包含:
这似乎不起作用.每当我键入某些字符,如e,t,o,j,c和b; 如果允许的长度正确,则该函数返回true.所以大写和数字没有被验证..
我究竟做错了什么?