从HTML PHP联系人表单中删除错误字符

从HTML PHP联系人表单中删除错误字符,php,html,forms,Php,Html,Forms,PHP新手,但正在取得新进展。我有一个联系人表单,在用户提交后将发送电子邮件。现在,我想通过去掉坏字符或任何可能破坏电子邮件的东西,使这个表单变得更好。电子邮件将由我阅读,所以我可以从技术上浏览所有的垃圾邮件,但我不想。我想一个干净的电子邮件来为文件的目的 我使用的是$\u POST数组,以下是联系人表单的HTML: <form class="form" method="post" action="contact.php"> <p class="name"> <

PHP新手,但正在取得新进展。我有一个联系人表单,在用户提交后将发送电子邮件。现在,我想通过去掉坏字符或任何可能破坏电子邮件的东西,使这个表单变得更好。电子邮件将由我阅读,所以我可以从技术上浏览所有的垃圾邮件,但我不想。我想一个干净的电子邮件来为文件的目的

我使用的是$\u POST数组,以下是联系人表单的HTML:

<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',//带