从HTML PHP联系人表单中删除错误字符
PHP新手,但正在取得新进展。我有一个联系人表单,在用户提交后将发送电子邮件。现在,我想通过去掉坏字符或任何可能破坏电子邮件的东西,使这个表单变得更好。电子邮件将由我阅读,所以我可以从技术上浏览所有的垃圾邮件,但我不想。我想一个干净的电子邮件来为文件的目的 我使用的是$\u POST数组,以下是联系人表单的HTML:从HTML PHP联系人表单中删除错误字符,php,html,forms,Php,Html,Forms,PHP新手,但正在取得新进展。我有一个联系人表单,在用户提交后将发送电子邮件。现在,我想通过去掉坏字符或任何可能破坏电子邮件的东西,使这个表单变得更好。电子邮件将由我阅读,所以我可以从技术上浏览所有的垃圾邮件,但我不想。我想一个干净的电子邮件来为文件的目的 我使用的是$\u POST数组,以下是联系人表单的HTML: <form class="form" method="post" action="contact.php"> <p class="name"> <
<form class="form" method="post" action="contact.php">
<p class="name">
<input type="text" name="name" id="name" />
<label for="name">Name</label>
</p>
<p class="email">
<input type="text" name="email" id="email" />
<label for="email">E-mail</label>
</p>
<p class="web">
<input type="text" name="web" id="web" />
<label for="web">Website</label>
</p>
<p class="telephone">
<input type="text" name="telephone" id="telephone" />
<label for="telephone">Telephone</label>
</p>
<p class="question">Preferred Contact Method</p>
<p id="preferred_question">
<input type="radio" name="contact_option" class="telephone_opt" value="Telephone" />
<label for="telephone_opt">Telephone</label><br />
<input type="radio" name="contact_option" class="email_opt" value="Email" />
<label for="email_opt">Email</label></p>
<p class="question">Describe what you need..</p>
<p class="text">
<textarea name="text"></textarea>
</p>
<p class="submit">
<input type="submit" value="Send" />
</p>
</form>
名称
电子邮件
网站
电话
首选联系方式
电话
电子邮件
描述您需要什么
这是我的contact.php(表单操作文件)
首先,您可能需要考虑使用filter\u输入函数()过滤这些数据。一点安全更新;) 您可以使用striptags()只允许需要的标记,也可以考虑使用addSlaches()或stripSlaches()来删除或添加“\”。最后,您可能希望正确编码文本(utf-8?),以便使用htmlentities()查看所有特殊字符。我自己使用htmlentities(utf-8)和strip_tags()发送自定义电子邮件!
希望这对你有所帮助首先,你可以考虑用filter_输入函数()过滤这些数据。一点安全更新;) 您可以使用striptags()只允许需要的标记,也可以考虑使用addSlaches()或stripSlaches()来删除或添加“\”。最后,您可能希望正确编码文本(utf-8?),以便使用htmlentities()查看所有特殊字符。我自己使用htmlentities(utf-8)和strip_tags()发送自定义电子邮件!
希望这对你有所帮助当然可以,看看这个简单的小教程: 修改此选项以替换所需的任何字符。老实说,我尽我所能回答了你的问题。但如果不是,只需做一个谷歌搜索,这个问题是相当基本的 如果您的意思是希望字段验证(因此您只接受特定格式的数据),只需对其进行快速搜索,您就会找到大量资源。这里有一个完整的教程,可能正是您所需要的:
这两个解决方案可能已经涵盖了:)当然,请查看以下简单的小教程: 修改此选项以替换所需的任何字符。老实说,我尽我所能回答了你的问题。但如果不是,只需做一个谷歌搜索,这个问题是相当基本的 如果您的意思是希望字段验证(因此您只接受特定格式的数据),只需对其进行快速搜索,您就会找到大量资源。这里有一个完整的教程,可能正是您所需要的:
这两个解决方案可能已经涵盖了:)看起来,除了对所有值进行一揽子筛选之外,您还需要输入验证。这里有一个用于电子邮件验证的函数。它使用正则表达式。我不打算为您的所有需求编写代码,但您可以从这里开始
function checkEmail($email) {
if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/' , $email)) {
return false;
}
return true;
}
除了对所有值进行一揽子筛选外,您还需要进行输入验证。这里有一个用于电子邮件验证的函数。它使用正则表达式。我不打算为您的所有需求编写代码,但您可以从这里开始
function checkEmail($email) {
if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/' , $email)) {
return false;
}
return true;
}
尝试将此功能作为一个良好的起点:
function cleanInput($input) {
// Pass the $_GET, $_POST or $_REQUEST array
$output = array();
foreach ($input as $key=>$value) {
$o = $value;
// Make sure it's within the max length
$o = substr($o,0,256);
// Tidy up line breaks
$o = preg_replace('/\n{2,}/', "\n\n", $o);
$o = nl2br($o,FALSE);
// Strip any odd characters
$o = preg_replace('/[^A-Za-z0-9\. -\!\?\(\)\<\>\@]/', "", $o);
// Put the data back in the array
$output[$key] = $o;
}
// Return the array
return $output;
}
函数cleanInput($input){
//传递$\u GET、$\u POST或$\u请求数组
$output=array();
foreach($key=>$value的输入){
$o=$value;
//确保它在最大长度内
$o=子项($o,0256);
//整理断线
$o=preg_replace('/\n{2,}/',“\n\n”,$o);
$o=nl2br($o,假);
//去掉任何奇数字符
$o=预更换('/[^A-Za-z0-9\.-\!\?\(\)\\@]/','',$o);
//将数据放回数组中
$output[$key]=$o;
}
//返回数组
返回$output;
}
用法:$post=cleanpoint($\u post)代码>
然后将$\u POST
替换为$POST
:$\u POST['name']
将成为$POST['name']
尝试此功能作为一个良好的起点:
function cleanInput($input) {
// Pass the $_GET, $_POST or $_REQUEST array
$output = array();
foreach ($input as $key=>$value) {
$o = $value;
// Make sure it's within the max length
$o = substr($o,0,256);
// Tidy up line breaks
$o = preg_replace('/\n{2,}/', "\n\n", $o);
$o = nl2br($o,FALSE);
// Strip any odd characters
$o = preg_replace('/[^A-Za-z0-9\. -\!\?\(\)\<\>\@]/', "", $o);
// Put the data back in the array
$output[$key] = $o;
}
// Return the array
return $output;
}
函数cleanInput($input){
//传递$\u GET、$\u POST或$\u请求数组
$output=array();
foreach($key=>$value的输入){
$o=$value;
//确保它在最大长度内
$o=子项($o,0256);
//整理断线
$o=preg_replace('/\n{2,}/',“\n\n”,$o);
$o=nl2br($o,假);
//去掉任何奇数字符
$o=预更换('/[^A-Za-z0-9\.-\!\?\(\)\\@]/','',$o);
//将数据放回数组中
$output[$key]=$o;
}
//返回数组
返回$output;
}
用法:$post=cleanpoint($\u post)代码>
然后将$\u POST
替换为$POST
:$\u POST['name']
将变成$POST['name']
您可以使用此功能:
function sanitize($data){
$data= htmlentities(strip_tags(trim($data)));
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments including CDATA
);
$data = preg_replace($search, '', $data);
return $data;
}
函数清理($data){
$data=htmlentities(strip_标签(trim($data));
$search=array('@]*?>.@si',//去掉javascript
“@@si”,//去掉HTML标记
“@]*?>.*?@siU”,//条形样式标记正确
'@@'//带多行注释,包括CDATA
);
$data=preg_replace($search,,$data);
返回$data;
}
您可以使用此功能:
function sanitize($data){
$data= htmlentities(strip_tags(trim($data)));
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments including CDATA
);
$data = preg_replace($search, '', $data);
return $data;
}
函数清理($data){
$data=htmlentities(strip_标签(trim($data));
$search=array('@]*?>.@si',//去掉javascript
“@@si”,//去掉HTML标记
“@]*?>*?”.@siU',//带