Formular - alternative Textausgabe (Mail) bei fehlendem Array
Olk Okenheld
- php
Hallo zusammen,
ich möchte ein Formular auswerten lassen, das unter anderem checkboxen enthält. Bevor ich die Benutzereingaben des Formulars in die E-Mail einbette lasse ich das PHP-Script die eingehenden Daten der checkbox überprüfen, um eine Fehlermeldung zu vermeiden, falls keine checkbox aktiviert war.
Soweit sogut, das überprüfen funktioniert auch und es wird auch keine Fehlermeldung mehr ausgespuckt, allerdings wird auch nicht der alternative Text, den ich in der Abfrage angebe in die E-Mail eingetragen...
Was mache ich falsch, bzw. was muss ich ändern, damit der alternative Text unten bei '.$Aspekte.' den Alternativtext, den ich oben bei else angegeben habe angezeigt bekomme?
/* Überprüfung der Checkboxen */
if (isset($_POST["Aspekte"]))
{
if (is_array($_POST["Aspekte"]))
{
$Aspekte = implode("\n",$_POST['Aspekte']);
}
else
{
$Aspekte = "Es wurden keine Aspekte ausgewählt.";
}
}
[...]
/* Aussehen der E-Mail die gesendet wird */
$message = '
[...]
Aspekte:
Das Angebot unterstützt folgende Aspekte - (Mehrfachnennung ist möglich):
'.$Aspekte.'
[...]
';
Danke im Vorraus
Olk
Hallo,
Was mache ich falsch, bzw. was muss ich ändern, damit der alternative Text unten bei '.$Aspekte.' den Alternativtext, den ich oben bei else angegeben habe angezeigt bekomme?
Du machst einen Fehler in der Prüflogik:
> /* Überprüfung der Checkboxen */
> if (isset($_POST["Aspekte"]))
> {
# es wurde etwas ausgewählt
> if (is_array($_POST["Aspekte"]))
> {
# es wurde mehrfach ausgewählt
> $Aspekte = implode("\n",$_POST['Aspekte']);
> }
> else
> {
# es wurde eins ausgewählt
> $Aspekte = "Es wurden keine Aspekte ausgewählt.";
> }
> }
# und hier? HALLO!
>
BTW:
if(isset($_POST["Aspekte"])){}
kann bei bestimmten Konfigurationen immer noch zu Ausgaben von Notizen führen. Die Funktion isset() wird zwar gerne in Lehrbüchern genutzt, besser jedoch ist der Gebrauch von array_key_exists(). Ohne Schlüssel -greift- $_POST["Aspekte"]
ins leere.
Gruß aus Berlin!
eddi
[...]
Du machst einen Fehler in der Prüflogik:
[...]
}
else
{
# es wurde eins ausgewählt
$Aspekte = "Es wurden keine Aspekte ausgewählt.";
}
}
# und hier? HALLO!
[...]
Bedankt, manchmal glaube ich, ich sollte nicht so lange vor dem Rechner hocken, dann würde ich auch so logische Fehler wie den hier begangenen selber finden, aber in dem Moment war ich völlig blind und da ich unter Zeitdruck stand/stehe, war ich wohl gleich noch mal verblendeter...
Also Danke. :-)