- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近几天,我一直在尝试修改我在Internet上找到的PHP表单(并且我看到它很流行,因为我已经看到了很多有关该表单的帖子)。
提交表单后,会给我发送电子邮件-非常棒。但是还有其他事情我一直在尝试更改,根本找不到正确/可行的解决方案。
我想要实现的是:
1)提交表单后接收电子邮件(我认为此操作已完成)
2)验证
3)在同一页面上显示错误消息,例如
名称 *
(您的姓名为必填项)
[.......这是文本字段.......]
4)仅在纠正了所有错误或首次正确输入所有数据后才提交表格一次。
5)在验证数据时出现错误消息(之前)时,我的页脚未显示。这是什么原因呢?提交表单时,它显示良好。
这是我一直在尝试修改的代码(我复制了“原始”代码,因为我的代码可能太乱了,并且在我玩了之后也改变了)
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "you@yourdomain.com";
$email_subject = "Your email subject line";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Thank you for contacting us. We will be in touch with you very soon.
<?php
}
?>
<form name="contactform" method="post" action="submit_form.php">
<div class="left_form">
<label for="name" class="label">your name</label>
(this is the code that was suppose to display error message within the same page
<?php if($errors['name'] = "") echo $errors['name']; ?>)
<input type="text" class="inputtext" name="name" value="" />
最佳答案
在这样的函数中处理帖子,并生成一个单独的数组来保存错误的字段。如果您有错误,请输出错误,或者,如果字段验证为OK,则处理该帖子。永远不要相信用户输入。
if(isset($_POST['submit']))
{
if(!ctype_alpha($_POST['fieldname'])) //or other validation type you prefer
{
$errors[] ='<p>problem with fieldname</p>';
}
... repeat above for each field
if(count($errors))
{
//output error message using foreach from
}
else
{
//process the post
}
}
关于php - PHP表格: validation, submission, displaying content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519201/
这是我第一次尝试处理表单,我遵循官方documentation for Symfony 2.3 。显示表单已经成功,但我无法处理它。 我收到以下错误: Catchable Fatal Error: A
第一次尝试处理表单,关注官方documentation for Symfony 2.3 .显示表单已经成功,但我无法处理它。 我收到以下错误: Catchable Fatal Error: Argum
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: PHP: “Notice: Undefined variable” and “Notice: Undefined i
我正在尝试使用 jquery 对话框做一个搜索表单。请参阅下面的完整程序。我的电脑上确实有一个服务器在运行,并且 http://localhost/search .几乎没有疑问 ajax 调用出了点问
当我的应用程序状态为“准备提交”时,我是否可以转移应用程序帐户......? 我的帐户中存在 2 个构建版本一个准备出售(1.0.3)即在苹果商店有售另一个我最近创建的,状态为“准备提交” 我无法在
我对 braintree 完全陌生,只是在尝试教程(客户端的 javascript 和服务器端的 JAVA) 我创建了一个简单的 HTML 文件,基本上只是包装了“Hello Client”examp
我正在尝试使用 PRAW 从最新到最旧迭代某个 subreddit 的提交。我以前是这样做的: subreddit = reddit.subreddit('LandscapePhotography')
最近几天,我一直在尝试修改我在Internet上找到的PHP表单(并且我看到它很流行,因为我已经看到了很多有关该表单的帖子)。 提交表单后,会给我发送电子邮件-非常棒。但是还有其他事情我一直在尝试更改
我昨晚升级到 Xcode 6 GM。所以我有一个 mac 应用程序,其中包含一个辅助应用程序。我知道包中应该只有一个配置文件,所以我将它排除在帮助应用程序中。如果我查看产品的 .xarchive,它从
我有一个表单,上面写着 Form_ID=9。我想编辑特定提交的 Field_id:50(标签:状态),比如 Sub_id:160。 我可以在自定义模板页面(前端)上使用自定义代码访问该信息,但找不到更
我上载了版本号为 1.2 的应用程序,该应用程序已获批准发布,因此其状态从“等待审核”更改为“为开发人员准备发布”。但是由于某些原因,我想使用 1.3而不是1.2 发布应用程序,并且我不想再次执行整个
问题: 在考虑安全性的同时提交表单的最佳做法是什么? 这可能是一个棘手的问题,但我担心人们可能能够在提交数据时更改某些数据。以我为例: 我有一个表单,其中包含一个隐藏输入,用于存储用户的唯一 Face
我正在使用 onsen-ui 框架和 phonegap 创建一个移动应用程序。我想添加一个应用内“联系我们”表单,用户可以在其中提交表单,成功提交后,表单将发送至 email@domain.com。
正在开发的应用程序是在 iOS 和 Android 上开发的。 iOS版先创建Facebook app id,只要求email, fb user id, full name,不需要审核。 然后出现了
我正在用 HTML 构建一个网站表单,我想从用户那里收集信息,并将其存储在 MySQL 中。但是,当我输入信息后提交表单时,PHP 脚本没有执行。它只是以原始形式显示 PHP 脚本。在浏览器中,它会下
有没有办法在不使用 PRAW 的函数 submissions() 的情况下从 subreddit 获取所有提交?通过提交,我能够在两个时间戳之间搜索来自给定 subreddit 的所有提交。但现在 R
经过几个小时的研究,我不知道为什么我不能从 xCode (6.1) 提交我的申请。 提交结束返回错误: ERROR ITMS-90072: "The IPA is invalid It does no
环顾四周只需要快速了解一下应用程序本身是如何加密的。 默认情况下,在构建应用程序时,它在测试设备上加载时都是未加密的,等等。 所以当我们提交应用程序并构建它以进行分发时,它什么时候被加密以便当它部署在
我正在编写一个小实用程序来帮助每晚处理一些 MySQL 任务,如果它失败了,它会通过电子邮件发送给我的个人电子邮件(这是一个个人项目,所以没有公司 smtp 服务器或任何东西,电子邮件通过公共(pub
这个 html 元标记的目的是什么? 我在这个 list 上找到了它, 但没有任何解释。 谷歌也没有帮助 我的猜测: 与网站文件的目录布局有关 可能托管/开发站点的目录列表 最佳答案 很多元数据起源
我是一名优秀的程序员,十分优秀!