我检查表单的所有字段是否都存在。为此,我有一个错误数组。
但如果行Geschlecht
的值不是'Paar'
,那么我必须忽略Tag2
,Monat2
,Jahr2
以及{{1}如果Gebdatum2
为Geschlecht
或Mann
,则表单中不存在这些内容。否则我得到:
为...中的foreach()提供的参数无效
我尝试使用Frau
,但它确实无效。
unset
答案 0 :(得分:0)
if(!isset ($_POST['Email'], # Check fields that you always need
$_POST['Show_Email'],
$_POST['PLZ'],
$_POST['Wohnort'],
$_POST['Geschlecht'],
$_POST['Tag'],
$_POST['Monat'])
$_POST['Jahr']
$_POST['MSN']){
$errors[] = "Bitte benutzen Sie das Formular aus Ihrem Profil";
# ^^^ $errors should always be an Array
}
else
{
# Do a separate check for Gender=Couple
if($_POST['Geschlecht']=="Paar" &&
!isset(
$_POST['Tag2'],
$_POST['Monat2'],
$_POST['Jahr2'],
)
) {
$errors[] = "Bitte benutzen Sie das Formular aus Ihrem Profil"; # Text sollte was Anderes sein für Paare...
# ^^^ $errors should always be an Array
}
}
然后你可以做以下检查:
$sql = "UPDATE User SET ";
$sql .= "Email = '" . //.... email;
# ^^^ add to string in PHP
if ($_POST['Geschlecht']=="Paar") {
$sql .= " Gebdatum2 = '". //....
}
$sql .= "WHERE ID = '". //...
然后,您可能需要从数据库中提取Geschlecht
以获取可信输入,以确定这是一对情侣还是一个人的记录,因为您无法信任{{1}的值}}
如果您希望允许用户使用此表单更改$_POST['Geschlecht']
,则不适用。
答案 1 :(得分:0)
感谢。我按照你的说法尝试了,但比我得到了
解析错误:语法错误,第146行/customers/5/f/d/regio-privat.com/httpd.www/myprofile.php中的意外T_VARIABLE
这是检查Geschlecht == Paar
的行$errors[] = "Bitte benutzen Sie das Formular aus Ihrem Profil";
因为我想让用户改变我的状态,就像这样
elseif(isset($_POST['submit']) AND $_POST['submit']=='Daten ändern'){
// Fehlerarray anlegen
$errors = array();
// Prüfen, ob alle Formularfelder vorhanden sind
if(!isset ($_POST['Email'],
$_POST['Show_Email'],
$_POST['PLZ'],
$_POST['Wohnort'],
$_POST['Geschlecht'],
$_POST['Tag'],
$_POST['Monat'],
$_POST['Jahr'],
$_POST['MSN']) || ($geschlecht=='Paar' && !isset($_POST['Tag2'], $_POST['Monat2'],$_POST['Jahr2'])))
// Ein Element im Fehlerarray hinzufügen
$errors = "Bitte benutzen Sie das Formular aus Ihrem Profil";
else{ ...some email check....
这似乎有效,并且当用户更改状态时,数据也将以正确的方式写入数据库。我只得到一些通知 而Geschlecht是Mann或Frau,我得到了这个
注意:未定义的变量:geschlecht在...第142行的myprofile.php注意:未定义的索引:第186行的... myprofile.php中的Jahr2注意:未定义的索引:... myprofile中的Monat2。第186行的PHP注意:未定义的索引:第186行的myprofile.php中的Tag2 Ihre Daten wurden erfolgreich gespeichert。
和Paar这个
注意:未定义的变量:geschlecht in ... myprofile.php on line 142 Ihre Daten wurden erfolgreich gespeichert。
' geschlecht'通知与此行有关 $_POST['MSN']) || ($geschlecht=='Paar' && !isset($_POST['Tag2'], $_POST['Monat2'],$_POST['Jahr2'])))
和第186行包含此
$Gebdatum2 = sprintf("%04d-%02d-%02d", $_POST['Jahr2'], $_POST['Monat2'], $_POST['Tag2']);
所以我必须找到一种方法来避免这些消息。