Hi,
if ((isset ($_GET['keywords']) && empty ($_GET['keywords'])) && (isset ($_GET['pfrom']) && empty ($_GET['pfrom'])) && (isset ($_GET['pto']) && empty ($_GET['pto']))) {
$errorno += 1;
$error = 1;
}
elseif (isset ($_GET['keywords']) && empty ($_GET['keywords']) && !(isset ($_GET['pfrom'])) && !(isset ($_GET['pto']))) {
$errorno += 1;
$error = 1;
}
>
> 1. Ich versteh leider beim besten Willen nicht was der Unterschied zwischen dem ersten if und dem zweiten elseif ist.
Der wurde Dir ja schon genannt.
> 3. Warum schreibt er immer zuerst isset() um danach zu fragen ob es empty() ist?
weil er keine wirkliche Ahnung von PHP hat - allerdings im Gegensatz zu vielen Script-Kiddies nicht auf die serverseitige Deaktivierung von Fehler-Notices setzt und das Vorhandensein der Variablen prüfen will.
Würde er if($\_GET['keywords']) prpfen, gäbe es ggfls. eine solche Notice, wenn in der URL kein ?keywords enthalten ist.
if(empty($\_GET['keywords'])) prüft, ob die Variable vorhanden \*und\* nicht leer ist.
if(isset($\_GET['keywords'])) ist daher überflüssig.
Aber genauer betrachtet ist der ganze Code Murks.
$errorno += 1; $error = 1; soll gesetzt werden, wenn ?keywords in der URL steht, aber leer ist (also nicht ?keywords=xxx), und die weiteren Parameter 'pfrom' und 'pto' nicht vorhanden oder leer sind. Das geht viel einfacher mit:
~~~php
if( isset($_GET['keywords']) && empty($_GET['keywords']) && empty($_GET['pfrom']) && empty($_GET['pto']) ) {
$errorno += 1; $error = 1;
}
Wobei mir der Sinn dieser Abfrage überaus nerkwürdig vorkommt. Ich fürchte, dass Du es da mit einem ziemlich unausgereiften Schgript zu tun hast...
freundliche Grüße
Ingo