SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 24.09.2003, 15:36   #1
TP-Insider
 
Benutzerbild von Wolfgang G
 
Registriert seit: Aug 2003
Ort: Bonn-Beuel
Wolfgang G hilft, wo's gehtWolfgang G hilft, wo's gehtWolfgang G hilft, wo's geht

Mail-Versand abbrechen / Fehlermeldung


Aloha Gemeinde,

das folgende Mail-Script versendet korrekt. Nun will ich jedoch verhindern, dass ein Scherzbold meine Datei "mailer.php" direkt aufruft und da 100 mal auf F5 drückt und ich 100 leere Mails erhalte.

Mein Ansatz ist nun der Folgende:

PHP-Code:

<?php
$mymail 
"Wolfgang-g@gmx.de";
$admin "Wolfgang Giersberg";
$subject "$Betreff";
$message "Nachricht fuer $admin von $eMail:\n\n";

if(empty(
$_POST['Name']) || empty($_POST['eMail'])) 
{
    echo 
"Bitte geben Sie Ihren Namen und Ihre eMail-Adresse an";
    break;
}

while(list(
$name,$value)=each($_POST)) 
{
    if(
$name == "Betreff")
    continue;
    elseif(
$name == "Submit")
    break;
    
$message.="$name: $value\n---------------\n\n";
}

mail($mymail,$subject,$message,"From: $eMail");

?>
Der Server (Apache 1.3.28, PHP 4.32) reagiert auf den direkten Aufruf mit der Ausgabe meines Textes (Bitte geben Sie...), jedoch kommt danach:

Fatal error: Cannot break/continue 1 level in /www/htdocs/*mein Kundenlogin* /mailer.php on line 10 .

Line 10 ist das "break" in der ersten if-Anweisung. Wieso kann er nicht abbrechen?

Wolfgang

Ach ja: Wg. Hinweise auf die Suchfunktion. Wenn ich da "cannot break" oder cannot AND break eingebe, bekomme ich 122 Treffer in denen cannot break nicht vorkommt, sondern nur break

Geändert von Wolfgang G (24.09.2003 um 15:41 Uhr).
Wolfgang G ist offline   Mit Zitat antworten


Alt 24.09.2003, 15:49   #2
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
Zitat:
laut http://at.php.net/manual/de/control-...ures.break.php

Break bricht die Ausführung der aktuellen for, foreach while, do..while or switch Anweisungs-Sequenz ab.
gehts mit return false; ?

ich nutze if-strukturen meist mit else, um eine reaktion auszulösen. hab noch nie mit break bei if gearbeitet. bin aber auch kein php-spezie...
steff ist offline   Mit Zitat antworten
Alt 24.09.2003, 16:23   #3
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Bau einfach wies steff schon gesagt hat nach dem if ein else ein und da drinnen fährst du dann die while anweisung ... dann klappts auch mit dem nachbarn
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 24.09.2003, 17:03   #4
TP-Insider
 
Benutzerbild von Wolfgang G
 
Registriert seit: Aug 2003
Ort: Bonn-Beuel
Wolfgang G hilft, wo's gehtWolfgang G hilft, wo's gehtWolfgang G hilft, wo's geht
Hm, jetzt habe ich eine else-Anweisung eingefügt und die Abfrage sieht jetzt so aus:

PHP-Code:

if(empty($_POST['Name']) || empty($_POST['eMail'])) 
{
    echo 
"Bitte geben Sie Ihren Namen und Ihre eMail-Adresse an";
}

else
{
    while(list(
$name,$value)=each($_POST)) 
    {
        if(
$name == "Betreff")
        continue;
        elseif(
$name == "Submit")
        break;
        
$message.="$name: $value\n---------------\n\n";
    }
}

mail($mymail,$subject,$message,"From: $eMail"); 
Die Fehlermeldung kommt jetzt nicht mehr, der Hinweistext erscheint, jedoch bekomme ich nun wieder pro F5 eine Leermail zugestellt. D.h. er arbeitet beide Anweisungen ab, egal welchen Wert die erste if-Abfrage liefert.

Und was hat es mit "return" auf sich. Finde das weder in SelfPHP noch in meinem Buch "Einsteigerseminar PHP 4".

Wolfgang
Wolfgang G ist offline   Mit Zitat antworten
Alt 24.09.2003, 17:09   #5
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
leite den user nach dem mail-versand weiter
PHP-Code:
//entweder nach mail()
header("Location: irgendeine andere seite.php");
exit;

// oder wenn ausgabe vorher erfolgt
echo "<meta http-equiv=\"refresh\" content=\"0; url: blabla.php\">"
steff ist offline   Mit Zitat antworten
Alt 24.09.2003, 18:02   #6
TP-Insider
 
Benutzerbild von Wolfgang G
 
Registriert seit: Aug 2003
Ort: Bonn-Beuel
Wolfgang G hilft, wo's gehtWolfgang G hilft, wo's gehtWolfgang G hilft, wo's geht
Die Weiterleitung auf eine "Danke für Ihr Interesse"-Seite kommt später.

Im Moment geht's halt noch darum, den Leerversand komplett zu unterbinden, also dafür zu sorgen, dass wenn die if-Anweisung wahr ist, die else-Anweisung nicht ausgeführt wird.

Dachte eigentlich, das sei standardmäßig so. Also nach dem Motto:

if Bedingung1 erfüllt
mach dies;

in allen anderen Fällen (außer Bedingung1 erfüllt) (else)
mach jenes;

Es scheint jedoch so zu sein:

if Bedingung1 erfüllt
mach dies;

in jedem Fall (egal ob Bedingung1 erfüllt oder nicht) (else)
mach jenes;


Immer verwirrter ...

Wolfgang
Wolfgang G ist offline   Mit Zitat antworten
Alt 24.09.2003, 18:15   #7
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
wenn du so abfrägst if ($_POST['var']) ist es nach einem F5 auch noch true, ergo wird wieder versendet.

Baue die WEiterleitung ein. Du kannst auch den header auf das mailscript selbst setzen -> danach ist das $_POST gelöscht.

alex
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 24.09.2003, 19:44   #8
TP-Insider
 
Benutzerbild von Wolfgang G
 
Registriert seit: Aug 2003
Ort: Bonn-Beuel
Wolfgang G hilft, wo's gehtWolfgang G hilft, wo's gehtWolfgang G hilft, wo's geht
Manchmal hab ich echt nen Knoten im Hirn!

Ich habe die ganze Zeit die mail-Funkton außerhalb meiner if/else-Konstruktion aufgerufen!!!

Da ist es ja nur logisch, dass versendet wird - unabhängig von der Abfrage davor.

Jetzt steht der mail-Aufruf innerhalb der else-Anweisung und das Script verhält sich wie erwartet. Bei leeren Feldern kommt der Hinweistext und es wird keine Mail versandt. HALLELUJA!!!

Jetzt kann ich mich der Weiterleitung zuwenden ...

Wolfgang
Wolfgang G ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Mail-Versand abbrechen / Fehlermeldung Mail-Versand abbrechen / Fehlermeldung
« Cookies Verzeichnisübergreifend ? | Suchabfrage »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:25 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67