EDIT:
Разработчик нарушил маршрутизацию. Это повлияло на мою страницу таким образом, что это привело к сбою в работе, поэтому она действовала иначе, чем другие серверы, использующие почтовую программу.
Итак, у нас есть массив с именем $ mailSettings. Этот массив обрабатывает значения по умолчанию, если новые значения не передаются почтовой программе. Это настроено здесь:
$mailSettings = array(
"TOADDRESS" => $wuMail_Config->DefaultToAddress,
"TONAME" => $wuMail_Config->DefaultToName,
"CC" => $wuMail_Config->DefaultCC,
"BCC" => $wuMail_Config->DefaultBCC,
"SUBJECT" => $wuMail_Config->DefaultSubject,
"MESSAGE" => $wuMail_Config->DefaultMessage,
"HTML" => $wuMail_Config->DefaultHTML,
"FROMADDRESS" => $wuMail_Config->DefaultFromAddress,
"FROMNAME" => $wuMail_Config->DefaultFromName,
"REPLYADDRESS" => $wuMail_Config->DefaultReplyAddress,
"REPLYNAME" => $wuMail_Config->DefaultReplyName
);
Теперь, в следующей части - мы анализируем представленные данные ... В этом специфическом случае мы представляем только несколько пользовательских полей и полагаемся на значения по умолчанию для остальных.
$mailData = array(
"TOADDRESS" => $email,
"TONAME" => $username,
"SUBJECT" => "Welcome to SiteName! Please verify your email address.",
"MESSAGE" => $message,
"HTML" => $message
);
Итак, мы делаем следующее: мы берем $ mailData и преобразуем каждое имя ключа в заглавную версию. Так что, если они отправят «toAddReSs», он будет оцениваться как «TOADDRESS», все заглавные буквы - в соответствии с массивом $ mailSettings. Мы делаем это здесь ...
foreach($mailData as $submittedOption => $submittedValue){
$submittedOptionUPPER = strtoupper($submittedOption);
$submittedOpts[] = $submittedOptionUPPER;
if(in_array($submittedOptionUPPER, $mailSettings)){
$mailSettings[$submittedOptionUPPER] = $data[$submittedOption];
} else {
echo "Mail Configuration Error";
}
}
Я также пытался, если (isset ($ mailSettings [$ submitOptionUPPER]) {и это тоже не работает. Когда я печатаю $ mailData & $ mailSettings, оба они точно такие же, как указано выше (со значениями по умолчанию, которые правильно извлекаются из наш конфигурационный файл).
Проблема в том, что я могу сделать print_r для обоих массивов ПРАВО НАД eval (isset или in_array), и они выглядят нормально ... но на этом сервере (и ни на одном из наших других серверов) код переходит в эхо "Mail Ошибка конфигурации. " Я не могу (ради своей жизни) понять это ... и вот пришло время StackOverflow.
Есть ли какая-либо причина, по которой isset AND in_array может что-то потерпеть неудачу (только на одном конкретном сервере)?
Другие факты, которые нужно знать ...
- $ mailSettings находится внутри функции wuMail ($ mailData) {}
- $ mailData передается в wuMail () с любой страницы, содержащей файл wuMail (для конфигурации / функции)
- На других серверах wuMail ($ mailData) не приводит к ошибкам. На этом сервере он думает, что значения не существуют в массиве (иначе он думает, что разработчик попытался использовать wuMail () неправильно, передав неверный ключ) ~ Мы делаем это для защиты от ошибок разработчика, чтобы мы могли легко найти страницы неправильно используя wuMail, если это так ... ну, мы подумали, что это так - и обнаружили, что нет, функция оценивает неправильно.
Есть идеи?