php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.01.2012, 21:37  
Neuer Benutzer
 
Registriert seit: 07.06.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
tom_71 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Nach Funktionsaufruf Rückkehr in elseif Struktur

Hallo,

in diesem Code

PHP-Code:
<?php
if($Formular_abgeschickt) {
  if(
$Formular_Fehler Formular_Check())
    echo 
'<div class="Meldung" id="Fehler"><h5><button>Meldung ausblenden</button></h5> ',$Formular_Fehler,'</div>';
  elseif(
Email_Check())
    echo 
'<div class="Meldung" id="OK">Ihre Nachricht wurde verschickt.<br> Wir werden uns kurzfristig<br> mit Ihnen in Verbindung setzen. <h5><button>Meldung ausblenden</button></h5></div>';
  else echo 
'<div class="Meldung" id="Fehler">Server-Fehler ! <h5><button>Meldung ausblenden</button></h5></div>';
}
?>
rufe ich die Funktion Email_Check zur Prüfung des Email Empfängers auf.

PHP-Code:
function Email_Check() {
        global 
$Ansprechpartner;
        global 
$AddHeader;

       switch(
$_POST[Ansprechpartner])
       {
           case 
'empf1':
           @
mail(MAILTO1"xxx"print_r($_POST,true), $AddHeader);
           break;
           case 
'empf2':
           @
mail(MAILTO2"xxx"print_r($_POST,true), $AddHeader);
           break;
           case 
'empf3':
           @
mail(MAILTO3"xxx"print_r($_POST,true), $AddHeader);
           break;
}

soweit so gut.
Emails werden korrekt zugestellt, jedoch nur mit der abschließenden 'Server-Fehler' Meldung.
Warum übergeht er mir die echo Anweisung nach dem Funktionsaufruf ?
Wenn ich die Funktion weglasse, und nur mit einer @mail Adresse direkt im elseif Konstrukt arbeite, dann geht es?!

Bitte um einen Lösungsansatz
Tom
tom_71 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.01.2012, 21:51  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 681
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
if($Formular_Fehler Formular_Check()) 
was steht vorher in $Formular_Fehler und was danach?
Harry_X ist offline   Mit Zitat antworten
Alt 20.01.2012, 21:57  
Erfahrener Benutzer
 
Registriert seit: 22.07.2004
Beiträge: 226
DirkHo befindet sich auf einem aufstrebenden Ast
Standard

Setz dich mal mit PHP Operatoren auseinander, dann klappt's auch mit dem Skript!!!

http://php.net/manual/de/language.operators.php
DirkHo ist offline   Mit Zitat antworten
Alt 20.01.2012, 22:06  
Neuer Benutzer
 
Registriert seit: 07.06.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
tom_71 befindet sich auf einem aufstrebenden Ast
Standard

gar nichts, seltsam wird nirgendswo initialisiert etc....
den php mailer hatte ich mir mal aus schnippsel zusammengestrickt. das scheint ne leiche zu sein. funktioniert hat er immer astrein, bis zu diesem umbau.
und jetzt?
tom_71 ist offline   Mit Zitat antworten
Alt 20.01.2012, 22:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ein if/elseif prüft immer eine Bedingung auf Wahrheit. Folglich musst Du auch einen Wahrheitswert (genauer TRUE) liefern, sonst wird halt else ausgeführt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.01.2012, 22:56  
Neuer Benutzer
 
Registriert seit: 07.06.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
tom_71 befindet sich auf einem aufstrebenden Ast
Standard

Nikosch: Danke für den Hinweis!
So gehts jetzt

PHP-Code:
@mail(empf1"fxxx"print_r($_POST,true), $AddHeader);
           return 
true;
           break; 
DirkHo: Ich hab mir das mit der Operatoren Reihenfolge angeschaut. Kannst mir in dem Zusammenhang auf die Sprünge helfen?
tom_71 ist offline   Mit Zitat antworten
Alt 20.01.2012, 23:01  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Noch ein Hinweis: Wir raten hier eigentlich nur noch von mail() ab, weil Du nicht auswerten kannst, ob ein Mailingvorgang überhaupt erfolgt ist. Benutz ne Mailerklasse und Du kannst den Rückgabewert des Sendevorgangs zurückgeben. Erst dann macht eine Auswertung im else-Zweig überhaupt erst Sinn.

Die 3 ePostel (13: Die 3 E-Postel und die Freuden des Briefverkehrs)

Mail ist tot, es lebe Mail (Mail() ist tot, es lebe mail()…)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.01.2012, 00:47  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

global ist genauso böse. Übergib der Funktion die notwendigen Information per Parameter.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 21.01.2012, 10:52  
Neuer Benutzer
 
Registriert seit: 07.06.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
tom_71 befindet sich auf einem aufstrebenden Ast
Standard

ok. danke für eure tipps. schaue ich mir an.
das mit return true ist ja auch schrott, ist ja immer true..

thx
tom_71 ist offline   Mit Zitat antworten
Alt 21.01.2012, 13:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Du behandelst auch keine reinkommenden Daten, bedeutet das deine Webseite alle rausgehenden Daten verantwortet und du nichts daran setzt das dort keine reinkommenen kompromitierenden Daten davon abgehalten werden deine mail()-Ziele auch zu kompromitieren.

desweiteren ist email_check() was anderes als email_conditional_send(), bei einer *_check()-Namensgebung sollte man Vermuten das dort nur etwas geprüft wird, bei einer *_conditional_send()-Namensgebung vermutet man korrekter weise das dort etwas nach bestimmten bedingungen abgeschickt wird.

Saubere und vernünftige Namensgebung ( auch bei Variablen ) ermöglichen den größt-möglichen Überblick und die schnellst mögliche Fehlersuche und Einarbeitungsphase ( für andere Entwickler oder spätere Rückgriffe auf den Sourcecode deinerseits ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML Struktur erstellen aber nicht in Datei speichern patrick89 PHP-Fortgeschrittene 2 15.12.2011 11:40
"PHP"-Link zum Popup machen Brause-Junior HTML, Usability und Barrierefreiheit 9 12.12.2011 23:25
SoapClient -> Ändern der Request Struktur, sinnvoll, möglich? Nico PHP-Fortgeschrittene 6 13.05.2011 12:17
Problem: Struktur der Homepage Michelangelo PHP Einsteiger 6 02.01.2011 12:19
[Erledigt] if / elseif kürzer, eleganter ? melody PHP Tipps 2010 16 01.05.2010 12:59
[Erledigt] Probleme bei mehrere IDs mit if ... elseif auslesen AnnyKey PHP Tipps 2009 5 06.05.2009 06:45
Struktur im Newssystem tinchen PHP Tipps 2007 4 10.07.2007 21:20
IF ELSEIF ELSEIF ELSE mit While Schleife PHP Tipps 2005 9 04.03.2005 23:27
Probleme mit elseif und switch/case (mit MySQL) PHP Tipps 2004 2 18.09.2004 16:03
wer weiß wie man so ein struktur schreibt?? HTML, Usability und Barrierefreiheit 1 30.08.2004 10:50
datum funzt net PHP Tipps 2004 11 22.07.2004 14:16


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum