當試圖在Beginner級別的PHP上編寫這個視頻教程時,我遇到了一個問題。我有問題讓它爲我工作。當我嘗試在瀏覽器中加載項目時,出現這個錯誤,指出問題出現在我的代碼的第44行中的mailprocess.php文件中。我錯誤所在的代碼行44是if語句的開頭:if (isset($$item) && !$empty($$item))
致命錯誤:函數名稱必須是字符串
但是,當教師在做視頻教程的時候也做同樣的事,對他來說工作正常。所以我不明白爲什麼它不適合我。我也有問題讓我的複製/粘貼代碼在這裏的代碼塊格式工具正確格式爲了張貼它,所以請耐心與我,如果它不完全對齊,因爲我是新的,真的努力嘗試學習,我發現PHP相當困難。任何幫助,以獲得這個爲我工作將不勝感激。
這裏是我得到的錯誤的瀏覽器輸出:
這是我mailprocess.php文件和代碼:
<?php
$suspect = false;
$pattern = '/Content-Type:|Bcc:|Cc:/i'; //Perl compatible reg-x to filter
$empty = false;
function isSupect($val, $pattern, &$suspect) {
if (is_array($val)) {
foreach ($val as $item) {
isSuspect($item, $pattern, $suspect);
}
}else {
if (preg_match($pattern, $val)) {
$suspect = true;
}
}
isSuspect($_POST, $pattern, $suspect);
}
if (!$suspect) {
foreach ($_POST as $key => $value) {
$temp = is_array($value) ? $value : trim($value); //removes white space
if (empty($temp) && in_array($key, $required)) {
$missing[] = $key;
$$key = '';
} elseif (in_array($key, $expected)) {
$$key = $temp;
}
}
}
if (!$suspect && !$empty['$email']) {
$validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($validemail) {
$headers .= "\r\nReply-to: $validemail";
} else {
$errors['email'] = true;
}
}
if (!$suspect && !$missing && !$errors){
$message = ' ';
foreach ($expected as $item) {
if (isset($$item) && !$empty($$item)){
$val = $$item;
} else {
$val = 'Not selected';
}
if (is_array($val)){
$val = implode(', ', $val);
}
$item = str_replace(array('_', '-'), '', $item);
$message .= ucfirst($item) . ": $val\r\n\r\n";
}
$message = wordwrap($message, 70);
$mailSent = true;
}
這裏是什麼教練有他的代碼:
謝謝matwr,修復它:) – 2014-11-22 12:29:56
不客氣。 – matwr 2014-11-22 15:04:30