• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

exit; und vorbei!

Status
Für weitere Antworten geschlossen.

Geltos

Mitglied
Wenn man in meinem Kontaktformular kein Name angegeben hat, wird das hiermit überprüft:

if ($name=="") {
print ("<font color='red'><b>Fehler:</b></font> Kein Name eingegeben!<br /><br />
<a href='index.php?site=kritik'>Zur&uuml;ck</a>");
exit;
}

jedoch gibt es ja auch noch andere Felder die ausgewertet werden müssen, jedoch wird durch exit; ja sofort alles andere abgebrochen. Die ausgabe ist dann also immer nur von einem einzigen Feld. Wie kann man das jetzt machen, dass dann dort steht:
Fehler:
Kein Name eingegeben
Kein Kommentar eingegeben
...
??

Außerdem fehlt dann auch das untere Ende der Seite, weil das in der mitte ja nur über include eingefügt wird, und ab dort ja dann alles gestoppt wird, was normal noch kommt (der untere Rand usw.) geht es also irgendwie, dass es zwar das skript nicht weiterläuft, der Seitenaufbau aber schon?
 
in PHP gibt es eine funktion empty() bzw. !isset()
Somit kannst du eine verschachtelte if-abfrage gestalten
PHP:
if (empty($name)) { echo "Name vergessen"; }
else if (empty($kommentar)) { echo "Kommentar vergessen"; }
else if (empty($homepage)) { echo "Homepage vergessen"; }
PS: die geschweiften Klammern musst du nicht setzen, ich machs aber, aus uebersichtlichkeitsgruenden
 
Ja, benutzt kein exit() ^^

Wenn du dann noch erreichen willst das nur eine Fehlermeldung kommt kannst du es so machen:
PHP:
if([..])
{
     Fehler1
}
else if ([..])
{
     Fehler2
}
else
{
     Fehler3
}
 
Hallo,

vielleicht lässt Du einfach das exit weg und prüfst alle Punkte durch. Zur Erkenntnis, dass mindestens ein Fehler vorliegt, erlangst Du, indem Du einfach eine Variable nimmst, mit 0 (Null) initialisierst und bei jedem Fehler immer 1 hinzu addierst.
Wenn dann das Skript an der Stelle landet, an der die gewünschte Funktion umgesetzt werden soll, fragst du vorher ab, ob der Fehlerzähler 0 (Null) ist und führst nur dann den Code aus. Danach kann der Rest der Seite zur anzeige gebracht werden.

Gruß,
Jumper, the II.
 
Zuletzt bearbeitet:
Ich habe es so gemacht wie ihr beschrieben habt, es wird dann zwar angezeigt, dass kein Name angegeben wurde, jedoch wird die E-Mail dann einfach trotzdem versendet. Ich möchte ja, dass wenn weder Name, noch Kommentar eingegeben wurde, folgendes angezeigt wird:

Fehler:
Name nicht eingeben
Kommentar nicht eingegeben

also beides.

Wenn nur eines nicht angegeben wurde, wird natürlich auch nur das angezeigt.
Jedoch sollte das Skript natürlich dann auch abgebrochen werden, damit keine leere E-Mail versendet wird.
 
Zuhören, meine Lieben. Lasst doch mal das Else-If weg...

Ich würde es so machen:
PHP:
if (empty($name)) { echo "Name vergessen"; }
if (empty($kommentar)) { echo "Kommentar vergessen"; }
if (empty($homepage)) { echo "Homepage vergessen"; }

if(empty($name) OR empty($kommentar) OR empty($homepage)) { exit; }
 
OK, dann etwas Meta-Code

Code:
  $errCount = 0;

  <Baue oberen teil auf>

  if( <fehler1>) {
    echo <fehler1-meldung>;
    $errCount += 1;
  }
  if( <fehler#>) {
    echo <fehler#-meldung>;
    $errCount += 1;
  }

  if( $errCount == 0) {
    <ich mache meine Action>
  }

  <Baue unteren Teil auf>

War das so schwer aus meinen Text zu lesen?

//EDIT:
@Flipo: Fass dir mal an die eigene Nase ... er möchte auch im Fehlerfall kein exit haben ....

Gruß,
Jumper, the II.
 
Flapo, habe es jetzt so gemacht wie du es geschrieben hast, dankeschön!

Auch an die anderen vielen Dank!

:):)
 
Wer ist Flipo? Kenn' ich gar nicht.

Dann packt er's halt in eine If-Abfrage.

@Geltos: King Jumper the Second hat Recht. Seine Lösung wäre für aufwändige Abfragen besser und entspricht auch dem, was du willst.

(Warum schreibt jeder flapo gross???)
 
Ich habe flapo groß geschrieben, wiel es das erste Wort eines Satzes war (bekanntlicherweise beginnt ein Satz mit einem großen Buchstaben von dem ersten Wort).

Naja, habe es jetzt noch einmal geändert. Hat beides funktioniert, aber so is schon besser, dann muss ich den restlichen Seitenaufbau nicht mit in das Auswertungsskript schreiben.

Vielen Dank für die Mühe die Ihr euch gemacht habt. ;heart :grin:
 
Sorry flapo :sad: .... irgendwie hatte ich deinen Nick mit i im kopf .... ich hoffe, ich schaffe es noch raus zu bekommrn :grin:

Gruß,
Nur Jumper, the II oder kurz JumperII :mrgreen:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben