Warum so kompliziert? Weil der Username oder die ID optional aber eines
davon im Zusammenhang mit dem Passwort erforderlich?
Die kürzeste komprimierteste Schreibweise sähe so aus:
1 | if ( !(!empty($_POST['f']['password']) && ( !empty($_POST['f']['username']) || !empty($_POST['f']['userid'])))) {
|
2 | echo "FEHLER";
|
3 | }
|
4 | else {
|
5 | echo "Alles gut!";
|
6 | }
|
Nachteil: Schlecht(er) lesbar bzw. nachvollziehbar.
Ggf. kann man den Else-Teil auch ganz weg lassen, je nachdem wie man den
Code einsetzt.
Alternativ empfehle ich dir, die Bedingungen in Variablen zu "stückeln"
und dann lesbarer in den If-Teil zu schreiben. Dann müsste es auch nicht
so stark komprimiert werden. U.u. kannst du dann die Negation auch
weglassen.
Das ist vermutlich das, was du wahrscheinlich willst.
Was du geforderst hast:
1 | if(
|
2 | !( ( !empty( $_POST['f']['password'] ) && !empty( $_POST['f']['username'] ) && empty( $_POST['f']['userid'] ) ) ||
|
3 | ( empty( $_POST['f']['password'] ) && empty( $_POST['f']['username'] ) && !empty( $_POST['f']['userid'] ) ) )
|
4 | ) {
|
5 | echo "Fehler";
|
6 | }
|
7 | else {
|
8 | echo "Alles gut";
|
9 | }
|
Du könntest empty($bla) jeweils in Variablen als boolischen Wert
speichern und dann einzeln einsetzen.