【发布时间】:2014-05-24 18:59:52
【问题描述】:
我检查表单的所有字段是否都存在。为此,我有一个错误数组。
但是如果Geschlecht 行中的值不是'Paar',那么我必须忽略Tag2、Monat2、Jahr2 以及Gebdatum2,因为如果@987654327,它们在我的表单中不存在@ 是 Mann 或 Frau。否则我会得到:
在…中为 foreach() 提供的参数无效
我用unset 尝试过,但它并没有真正起作用。
else if(isset($_POST['submit']) AND $_POST['submit']=='Daten ändern'){
// Fehlerarray anlegen
$errors = array();
if(!isset ($_POST['Email'],
$_POST['Show_Email'],
$_POST['PLZ'],
$_POST['Wohnort'],
$_POST['Geschlecht'],
$_POST['Tag'],
$_POST['Monat'],
$_POST['Jahr'],
$_POST['Tag2'],
$_POST['Monat2'],
$_POST['Jahr2'],
$_POST['MSN']))
$errors = "Bitte benutzen Sie das Formular aus Ihrem Profil";
else{
$emails = array();
$sql = "SELECT
Email
FROM
User
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while($row = mysql_fetch_assoc($result))
$emails[] = $row['Email'];
$sql = "SELECT
Email
FROM
User
WHERE
ID = '".mysql_real_escape_string($_SESSION['UserID'])."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(trim($_POST['Email'])=='')
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
elseif(in_array(trim($_POST['Email']), $emails) AND trim($_POST['Email'])!= $row['Email'])
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
}
if(count($errors)){
echo "Ihre Daten konnten nicht bearbeitet werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
}
else{
$Gebdatum = sprintf("%04d-%02d-%02d", $_POST['Jahr'], $_POST['Monat'], $_POST['Tag']);
$Gebdatum2 = sprintf("%04d-%02d-%02d", $_POST['Jahr2'], $_POST['Monat2'], $_POST['Tag2']);
$sql = "UPDATE
User
SET
Email = '".mysql_real_escape_string(trim($_POST['Email']))."',
Show_Email = '".mysql_real_escape_string(trim($_POST['Show_Email']))."',
Wohnort = '".mysql_real_escape_string(trim($_POST['Wohnort']))."',
PLZ = '".mysql_real_escape_string(trim($_POST['PLZ']))."',
Geschlecht = '".mysql_real_escape_string(trim($_POST['Geschlecht']))."',
Gebdatum = '".mysql_real_escape_string(trim($Gebdatum))."',
Gebdatum2 = '".mysql_real_escape_string(trim($Gebdatum2))."',
MSN = '".mysql_real_escape_string(trim($_POST['MSN']))."'
WHERE
ID = '".mysql_real_escape_string($_SESSION['UserID'])."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Ihre Daten wurden erfolgreich gespeichert.<br>\n".
"Zurück zu <a href=\"".$_SERVER['PHP_SELF']."\">Mein Profil</a><br>\n";
}
}
【问题讨论】:
标签: php validation unset