PHP表单:调用未定义的函数:str_ireplace()
我的php表单有问题,在您填写表单并单击提交按钮后,您会收到一个错误 --->致命错误:调用未定义的函数:str_ireplace() 我不知道是怎么回事:(非常感谢你的帮助 这是代码的一部分:PHP表单:调用未定义的函数:str_ireplace(),php,forms,undefined,fatal-error,Php,Forms,Undefined,Fatal Error,我的php表单有问题,在您填写表单并单击提交按钮后,您会收到一个错误 --->致命错误:调用未定义的函数:str_ireplace() 我不知道是怎么回事:(非常感谢你的帮助 这是代码的一部分: <?php $headers = 'Content-type: text/html; charset=UTF-8' . "\r\n" . // Set email variables $email_to = 'office@victum.sk'; $email_
<?php
$headers = 'Content-type: text/html; charset=UTF-8' . "\r\n" .
// Set email variables
$email_to = 'office@victum.sk';
$email_subject = 'Form submission';
// Set required fields
$required_fields = array('fullname','firma','telefon','email','comment');
// set error messages
$error_messages = array(
'fullname' => 'Prosím zadajte krstné meno.',
'firma' => 'Prosím zadajte názov firmy.',
'telefon' => 'Prosím zadajte kontakt.',
'email' => 'Prosím zadajte správnu formu email adresy.',
'comment' => 'Prosím zadajte poznámku pre pokračovanie.'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= htmlspecialchars($key) . ': ' . htmlspecialchars($value) . "<br>\n";
}
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content, $headers);
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
?>
str_ireplace
是在PHP5中实现的。如果您使用的版本早于5,这将解释您尝试调用的函数不存在的原因。您遇到此类错误的原因确实没有任何其他可解释的原因
如果您仍停留在PHP 3.x或4.x上,您可以使用preg_replace
而不是str_ireplace
,并稍微修改定义:
function remove_email_injection($field = FALSE) {
return preg_replace(array("/\r/", "/\n/", "/%0a/", "/%0d/", "/Content-Type:/", "/bcc:/","/to:/","/cc:/"), '', $field);
}
实际上,唯一需要的更改是围绕每个要用斜杠删除的值进行更改。
str\u ireplace
是在PHP5中实现的。如果您使用的版本早于5,这将解释为什么您尝试调用的函数不存在。确实没有任何其他可以解释的原因导致您遇到这是一个错误
如果您仍停留在PHP 3.x或4.x上,您可以使用preg_replace
而不是str_ireplace
,并稍微修改定义:
function remove_email_injection($field = FALSE) {
return preg_replace(array("/\r/", "/\n/", "/%0a/", "/%0d/", "/Content-Type:/", "/bcc:/","/to:/","/cc:/"), '', $field);
}
实际上,唯一需要做的更改是围绕每个要用斜杠删除的值进行更改。您使用哪个PHP版本?我忘了->这是表单->请尝试一下,亲自查看支持哪个PHP版本的手册。然后切换提供程序。关于您的电子邮件验证正则表达式:这是PHP Im版本你使用哪个PHP版本?我忘了->这是表单->请试用并亲自查看支持哪个PHP版本的手册。然后切换提供商。关于你的电子邮件验证regex:这是PHP Im版本Joshua Burns非常感谢你!很高兴我能帮上忙。:)约书亚·伯恩斯非常感谢你,伙计!很高兴我能帮忙。:)