• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Bitte um kurze Korrektur (einfach)

isek

New member
Hallo, ich kenn mich eigtl nicht so mit Javascript aus.
Habe hier ein Mini- Skript, bei dem irgendwas faul ist...:

<div style="margin:auto; margin-top:100px" align="center">
<?php

include("config.php");



// Captcha überprüfen

if($_POST["captcha"] !==0 AND $zeichen == $_POST["captcha"])
{



$name = $_POST["name"];
$email_absender = $_POST["email"];
$betreff = $_POST["betreff"];
$nachricht = $_POST["nachricht"];
if($zusaetzliche_felder>0)
{
for($i=1; $i<=$zusaetzliche_felder; $i++)
{
$temp_feld = "label_zusaetzliches_feld_".$i;
$z_feld = $$temp_feld;

$array_z_feld[] = $z_feld;

}
}

for($i=0; $i<count($array_z_feld); $i++)
{
$z_inhalt .= $array_z_feld[$i].": ".$_POST["$array_z_feld[$i]"]."\r\n";
}

if($name == "" OR $email_absender == "" OR $nachricht == "")
{
$ok = FALSE;
echo "Es müssen alle Felder ausgefüllt werden! ";
}
else $ok = TRUE;

if(strpos($email_absender, "@") == FALSE)
{
$ok = FALSE;
echo "Die Email-Adresse wurde falsch eingegeben! ";
}
else $ok = TRUE;

if($ok == TRUE)
{
echo "Ihre Nachricht wurde erfolgreich versendet!";
mail($email, $betreff, "Von $name:" . "\r\n" .$z_inhalt."\r\n $nachricht", "From: $email_absender");
}
}
else echo "der CAPTCHA wurde falsch eingegeben! <br> Versuchen Sie es erneut:";

?>
<br>
<a href="/contact.php">Zurück</a>
</div>


-----------------------------------------------------


Nun mein Problem:

Ich will nicht, dass ich eine eMail bekomme wenn irgendein Feld fehlerhaft ist oder leer gelassen wird.

Ich bekomme z.B. bei leerer Nachricht angezeigt: "Es müssen alle Felder ausgefüllt werden! Nachricht wurde erfolgreich gesendet!".
Es soll aber nur das 1. angezeigt werden und nix gesendet werden.

Das gleiche bei leerem Namen usw...

Bei leerer eMail geht es allerdings, dass NICHT gesendet wird. Die Nachricht stimmt aber auch nicht. Es kommt zwar "Email falsch eingegeben". Aber davor wieder "Es müssen alle Felder...."


Bitte um Rat und Korrektur.
Hoffe ich werde wegen so einer Frage nicht gekickt.
Ich kann mich nicht ewig einlesen, falls das jmd meint.

Wenn mir jmd nen Tip zu den Begriffen gibt, lerne ich gerne dazu! :)


Liebe Grüße!
 
Kann mir ma jmd helfen und nicht nur Sprüche klopfen?
Ob Deine Mutter Dir helfen kann, weiß ich nicht. Kann sie PHP?

Da du Dich ja nicht großartig irgendwo reinlesen willst, wird es natürlich schwer, weil in Deinen Sourcecode musst Du Dich schon einlesen. Als kleinen Tipp solltest Du Dir die Werte von "ok" mal über den Verlauf Deines Skriptes auf ein Blatt Papier aufmalen.
 
Tipp: Code Tags erleichtern das Leben.
Ich würd erstmal mal lieb und nett fragen, ob jemand den Thread hier in die Serverseitige Programmierung verschieben kann, dann kannst du mal konkret eine Frage zu einem Problem stellen, denn DAS ist kein handfestes Problem, du weißt ja netmal, was dein Code genau macht.

Aber ich will mal nicht so sein, hier ist ein wunderschönes Captcha Tutorial: http://www.stoppt-den-spam.info/webmaster/captcha-tutorial/index.html
 
Vielen Dank!

Ja, ich wäre sehr dankbar, wenn dieser Thread hier an den richtigen Ort verschoben werden würde! :)
 
Anhand deiner Variablen $ok überprüfst du ob die Email gesendet werden soll. Jetzt wird aber durch deine vorletzte if-Abfrage $ok auf jedenfall gesetzt. Wenn die Email invalide ist, ist $ok falsch und du sendest keine Email. Sobald die email aber valide ist, setzt du $ok auf true, unabhängig von den vorherigen überprüfungen. Setzte $ok von vornherein auf true und ändere den Wert bei Fehler auf false. Sonst aber nicht (keine else-zweige)
 
Zurück
Oben