each() 函数已弃用
The each() function is deprecated
我的旧联系表格在发送时显示此错误:
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /kunden/273982_79100/webseiten/kontakt/index.php on line 126
这是联系表格的 PHP-代码:
<?php
$Empfaenger = "mail@mailinfo.com";
$headers .= "Content-Type: text/plain; charset = \"UTF-8\";\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "\n";
if($_POST['Send']) {
if(empty($_POST['vornameundnachnachme']) || empty($_POST['adresse']) || empty($_POST['plzort']) || empty($_POST['email']) || empty($_POST['betreff']) || empty($_POST['datenschutz'])) {
echo"<p style='margin-top: 40px;'><div id='alert'>Ihre Online-Anfrage wurde nicht versendet.<ul style='margin-bottom: 0px;'><li>rot markierte Felder müssen ausgefüllt werden</li></ul></div></p>";
} else {
$Mailnachricht = "Question \n\n";
while(list($Formularfeld, $Wert)=each($_POST) {
if($Formularfeld!="Send") {
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Anfrage";
$Mailbetreff .= $_POST['Emailadresse'];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_POST['Emailadresse']);
echo"<p style='margin-top: 40px;'><div id='sent'><h2><i class='fal fa-thumbs-up'></i> Gesendet!</h2></div></p>";
}
}
?>
我已经阅读了一些解决方法,但对我没有任何帮助。我想我在其中一行中犯了一个错误...不知道在哪里...
也许有人可以帮助我!
非常感谢!
亚历克斯
不再支持该功能。您可以在函数前面加上“@”来禁用警告。
更好的方法是使用替代函数,例如 foreach
list($Formularfeld, $Wert)=each($_POST)
是一个过时的结构,不应再使用 - 我只能假设您在某处找到了一个非常古老的教程。
正确的方法是预处理 $_POST 全局并用它创建一个适当的数组,然后使用 foreach
遍历它
foreach($_POST as $formularfeld => $wert) {
$mailinfo[$formularfeld] = $value; //Do NOT forget validation here, huge security problem
}
这样,我们就有了一个名为 $mailinfo
的漂亮数组,我们稍后可以使用,如下所示:
foreach($mailinfo as $formularfeld => $wert) {
if($formularfeld != "Send") {
$Mailnachricht .= $formularfeld.": ".$wert."\n";
}
}
我的旧联系表格在发送时显示此错误:
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /kunden/273982_79100/webseiten/kontakt/index.php on line 126
这是联系表格的 PHP-代码:
<?php
$Empfaenger = "mail@mailinfo.com";
$headers .= "Content-Type: text/plain; charset = \"UTF-8\";\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "\n";
if($_POST['Send']) {
if(empty($_POST['vornameundnachnachme']) || empty($_POST['adresse']) || empty($_POST['plzort']) || empty($_POST['email']) || empty($_POST['betreff']) || empty($_POST['datenschutz'])) {
echo"<p style='margin-top: 40px;'><div id='alert'>Ihre Online-Anfrage wurde nicht versendet.<ul style='margin-bottom: 0px;'><li>rot markierte Felder müssen ausgefüllt werden</li></ul></div></p>";
} else {
$Mailnachricht = "Question \n\n";
while(list($Formularfeld, $Wert)=each($_POST) {
if($Formularfeld!="Send") {
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Anfrage";
$Mailbetreff .= $_POST['Emailadresse'];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_POST['Emailadresse']);
echo"<p style='margin-top: 40px;'><div id='sent'><h2><i class='fal fa-thumbs-up'></i> Gesendet!</h2></div></p>";
}
}
?>
我已经阅读了一些解决方法,但对我没有任何帮助。我想我在其中一行中犯了一个错误...不知道在哪里...
也许有人可以帮助我!
非常感谢! 亚历克斯
不再支持该功能。您可以在函数前面加上“@”来禁用警告。
更好的方法是使用替代函数,例如 foreach
list($Formularfeld, $Wert)=each($_POST)
是一个过时的结构,不应再使用 - 我只能假设您在某处找到了一个非常古老的教程。
正确的方法是预处理 $_POST 全局并用它创建一个适当的数组,然后使用 foreach
foreach($_POST as $formularfeld => $wert) {
$mailinfo[$formularfeld] = $value; //Do NOT forget validation here, huge security problem
}
这样,我们就有了一个名为 $mailinfo
的漂亮数组,我们稍后可以使用,如下所示:
foreach($mailinfo as $formularfeld => $wert) {
if($formularfeld != "Send") {
$Mailnachricht .= $formularfeld.": ".$wert."\n";
}
}