mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 01:20 Benutzername: Passwort: Auto-Login

Thema: PHP Mail Problem vom 23.09.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Mail Problem
Seite: 1, 2  Weiter
Autor Nachricht
addy
Threadersteller

Dabei seit: 22.01.2003
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 23.09.2005 11:23
Titel

PHP Mail Problem

Antworten mit Zitat Zum Seitenanfang

ich will nach einem Formular die Daten per Mail verschicken hat sonst auch immer prima geklappt, jetzt hab ich das ganze mal in eine Klasse ausgelagert, da funzt es net mehr???? Also ich kann das Form. abschicken und er leitet mich dann auch auf die DANKE seite weiter, aber die mail kommt nicht an! Muss man was beachten wenn man mail() in ne Klasse auslagert???

hier mal der code:

form.inc.php
Code:

           function mail(){
                                   
                     mail ("a.schrader@egal.net","Nachricht von Vektor-Massivhaus.de",
                     "von:$anrede $vorname $name\n\n"
                     ."firma: $firma \n\n"
                     ."email: $email \n\n"
                     ."Betreff:$betreff\n\n "
                     ."Text: $text"
                     );
                     header("Location: form_end.php");
                     exit();
           }



kontakt.php
Code:

if ($button == "absenden"){
   
   
   $fehler = $form->check($anrede,$name,$email,$betreff,$text);
   
   
   if(!$fehler){
   $form->mail();
   }
   
}[quote]


weiß einer Rat?

Danke schonmal[/quote]
  View user's profile Private Nachricht senden
metty

Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht: Männlich
Verfasst Fr 23.09.2005 11:44
Titel

Antworten mit Zitat Zum Seitenanfang

Wenn ich das richtig sehe, hast du keine Klasse sondern eine Funktion geschrieben und die in einer Date ausgelagert.
Dann solltest du die Date erstmal per "require" oder "include" einbinden und dann die Funktion aufrufen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 23.09.2005 11:51
Titel

Antworten mit Zitat Zum Seitenanfang

also da wundert mich gar nichts, daß dieses script nicht wie gewünscht funktioniert...

1. es gibt keine klasse
2. deine funktion wird nicht eingebunden
3. du versuchst die interne php-funktion mail() mit einer eigenen funktion namens mail() zu überschreiben.
4. $form->mail(); - wo ist dein objekt? was hast du instantiiert, wenn keine klasse vorhanden ist? welche mail-funktion ist gemeint? deine oder die von php?
5. dein location-header ist nicht korrekt. da muß ein vollständiger url mit http:// hin. so kannst du nicht sicher sein, daß es wirklich überall funktioniert.
6. argh! was heißt "funzt nicht"? wieso ist es denn so schwer, eine anständige problembeschreibung zu liefern? (gibt, es fehlermeldungen? wenn ja, welche? was genau passiert? was passiert nicht bzw. sollte deiner meinung nach passieren? usw. usf.)


Zuletzt bearbeitet von rob am Fr 23.09.2005 11:54, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 23.09.2005 12:02
Titel

Antworten mit Zitat Zum Seitenanfang

und noch was...
also du hast scheinbar einen button, dem du den namen "button" (wie einfallsreich Grins) zugewiesen hast und einen value von "absenden", ja?
und dann kommt diese abfrage:
Zitat:
if ($button == "absenden")

auf einem anständig konfiguriertem server wird das in keinem fall funktionieren.
wenn da noch php3 läuft, dann funktioniert es.
oder wenn php aus gründen der rückwärtskompatibiliät zu alten php-versionen mit register_globals=on konfiguriert ist - dann funktioniert es auch noch.
aber wenn der provider eine nur halbwegs aktuelle php-version installiert hat und ein wenig auf sicherheit bedacht ist (man kann ja nicht davon ausgehen, daß die user in der lage sind, anständige scripte zu schreiben), dann ist register_globals nicht aktiviert und es gibt deine variable $button gar nicht.
je nachdem, wie dein formular verschickt wird, heißt die variable dann $_POST['button'] oder $_GET['button'].
deine abfrage sollte also vermutlich
Code:
if ( isset( $_POST['button'] ) )
heissen.
der wert des buttons ist sicherlich unwichtig, da die variable ja eh nur gesetzt wird, wenn das formular abgeschickt wird und das wolltest du ja wohl nur wissen...


Zuletzt bearbeitet von rob am Fr 23.09.2005 12:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
addy
Threadersteller

Dabei seit: 22.01.2003
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 23.09.2005 12:20
Titel

Antworten mit Zitat Zum Seitenanfang

sorry wollte nicht den ganzen code posten


nein es gibt ne Klasse

Code:

<?php

class form {
    function check($anrede,$name,$email,$betreff,$text){
               
                  if($anrede == ""){
                  $fehler['anrede'] = "Bitte wählen Sie eine Anrede aus";
                  }
                  if($name == ""){
                  $fehler['name'] = "Bitte geben Sie einen Namen ein";
                  }
                  if($email == ""){
                  $fehler['email'] = "Bitte geben Sie eine E-Mail Adresse ein";
                  }
                  if($betreff == ""){
                  $fehler['betreff'] = "Bitte geben Sie einen Betreff ein";
                  }
                  if($text == ""){
                  $fehler['text'] = "Bitte geben Sie eine Nachricht ein";
                  }
                  return $fehler; 
           }
         
               
               
           function mail(){
                                   
                     mail ("a.schrader@design1220.de","Nachricht von Vektor-Massivhaus.de",
                     "von:$anrede $vorname $name\n\n"
                     ."firma: $firma \n\n"
                     ."email: $email \n\n"
                     ."Betreff:$betreff\n\n "
                     ."Text: $text"
                     );
                     header("Location: form_end.php");
                     exit();
           }
       
}
?>


zu dem button:
Zitat:

$button = $_GET['button'];


wie gesagt es funz soweit, ich klick abschicken der geht in die funktion rein und leitet mich über header auch auf die "danke für ihre nachricht seite", ABER eben die mail kommt nicht an, sonst funzt es!

kann es daran liegen das ich die funktion mail genannt habe und es die in php schon gibt? aber dann würde er mich ja nicht weiterleiten oder?
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Fr 23.09.2005 12:25
Titel

Antworten mit Zitat Zum Seitenanfang

es fehlt der absender, bzw mail header

* Ööhm... ja? *

Code:
   $text = $_POST['text'];
   $mail = 'mail@irgendwas.de';
   $subject = $_POST['betreff'];
   $header= 'From: "'.$_POST['name'].'" <'.$_POST['email'].'>
Reply-To: mail@irgendwas.de //wichtig: ohne führende leerzeichen oder tabs!
Content-Type: text/plain; charset=us-ascii //wichtig: ohne führende leerzeichen oder tabs!
MIME-Version: 1.0 //wichtig: ohne führende leerzeichen oder tabs!
Content-Transfer-Encoding: 8bit //wichtig: ohne führende leerzeichen oder tabs!
Organisation: FIRMA'; //wichtig: ohne führende leerzeichen oder tabs!

   if(mail($mail,$subject,$text,$header)){
      ...


Zuletzt bearbeitet von am Fr 23.09.2005 12:29, insgesamt 2-mal bearbeitet
 
addy
Threadersteller

Dabei seit: 22.01.2003
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 23.09.2005 12:34
Titel

Antworten mit Zitat Zum Seitenanfang

wie jetzt, kannste mir das mal genauer erklären bitte!?

bis jetzt hab ich immer folg. script verwendet
Code:

if( ($button == "absenden") & (!$fehler['name'] ) ) {
   
   mail ("a.schrader@nopa-valves.de","Nachricht von nopa-valves.de",
      "von:$anrede $vorname $name\n\n"
      ."firma: $firma \n\n"
      ."email: $email \n\n"
      ."Betreff:$betreff\n\n "
      ."Text: $text"
   );
   header("Location: http://www.nopa-valves.de/new/form_end.php");
      exit();
   }


halt nur net in Klassen ausgelagert sondern direkt in die php datei mit reingeschrieben und das hat immer gefunzt und ich habs ja eigentlich fast 1:1 übernommen und es geht ja fast (weiterleitung etc.9 nur das halt die mail net ankommt??
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Fr 23.09.2005 12:47
Titel

Antworten mit Zitat Zum Seitenanfang

ne geht auch ohne
ist aber shitty, weil die mails dann wohl oft als spam gefiltert werden...

guck dir das nochma an
Code:

function mail(){
                                   
                     mail ("a.schrader...


* Ööhm... ja? *

fällt dir was auf?
 
 
Ähnliche Themen php mail() Problem?
MAIL Problem
[php] problem mit mail();
Problem mit e-Mail-Formular
Problem mit Apple Mail
E-Mail Briefpapier mit MS Outlook Problem
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.