[GastForen Programmierung/Entwicklung PHP und MySQL Fehlermeldung beim Formular - Mail wird nicht versendet

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Fehlermeldung beim Formular - Mail wird nicht versendet

kareh
Beiträge gesamt: 239

18. Jul 2008, 04:49
Beitrag # 1 von 10
Bewertung:
(2987 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe ein Problem mit einem meiner Formulare. So wie es geschrieben ist, hat es eine Zeit lang funktioniert. Ohne dass etwas daran geändert wurde, heißt es auf einmal: „Beim Versenden der E-Mail ist ein Fehler aufgetreten!“

Ich habe den gleichen Aufbau für ein einfacheres und kürzeres Formular verwendet. Dort gibt es dieses Problem nicht. Ich bin ziemlich ratlos, weil ich keinen Fehler entdecke.

Hat jemand eine Idee, warum dieses längere Formular nicht verschickt wird? (Das Script liegt im Anhang.)

Anhang:
bewerbung.php (37.7 KB)
X

Fehlermeldung beim Formular - Mail wird nicht versendet

flobaer
Beiträge gesamt: 317

18. Jul 2008, 09:42
Beitrag # 2 von 10
Beitrag ID: #359330
Bewertung:
(2955 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karin,

ich habe mir dein Script mal angesehen. Das einzige was mir aufgefallen ist ist, dass du in der Zeile mail($mail_an,$betreff,$text,"$mail_kopf") die Variable mail_kopf in Anführungszeichen setzt. Warum?

Ob das allerdings dein Problem löst wage ich fast zu bezweifeln. Ich persönlich habe auch öfter Probleme mit der mail() Funktion gehabt. Unter anderem auch einen Rückgabewert false obwohl die Mail verschickt worden ist. Bist du denn sicher, dass die Mail nicht raus geht?

Inzwischen verwende ich nur noch den phpmailer. Das hat unter anderem auch den Vorteil, dass du über ein "echtes" E-Mail-Konto verschicken kannst, was die Chance der E-Mail als Spam eingestuft zu werden auch noch mal deutlich reduziert. Aber das nur am Rande...

Viele Grüße
Florian


als Antwort auf: [#359309]

Fehlermeldung beim Formular - Mail wird nicht versendet

Intermedia
Beiträge gesamt: 1287

18. Jul 2008, 10:21
Beitrag # 3 von 10
Beitrag ID: #359336
Bewertung:
(2940 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Karin,

guck mal in Zeile 936 da stimmt der Vergleichsoperator nicht. Eventuell liegt es schon daran, habs allerdings nur mal überflogen.

Gruß Sven


als Antwort auf: [#359309]

Fehlermeldung beim Formular - Mail wird nicht versendet

flobaer
Beiträge gesamt: 317

18. Jul 2008, 11:11
Beitrag # 4 von 10
Beitrag ID: #359350
Bewertung:
(2929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sven,

das mit dem Vergleichsoperator habe ich übersehen, stimmt. Ich glaube aber nicht, dass es daran liegt, denn dann dürfte auch die Fehlermeldung nicht erscheinen, die ja auch aus dieser Schleife stammt:
Code
if($senden="1") 
{
if (mail($mail_an,$betreff,$text,"$mail_kopf"))
{
echo "<b><br><br>Vielen Dank für Ihre Bewerbung,<br><br>
wir werden uns in Kürze mit Ihnen in Verbindung setzen. </b>";
}
else
{
echo "<b><br>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b>";
}
}


Sehr merkwürdig...

Viele Grüße
Florian


als Antwort auf: [#359336]

Fehlermeldung beim Formular - Mail wird nicht versendet

Intermedia
Beiträge gesamt: 1287

18. Jul 2008, 11:24
Beitrag # 5 von 10
Beitrag ID: #359353
Bewertung:
(2923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

mal Errorreporting einschalten, da muß ja ne Fehlermeldung kommen.

Ergänzung: die Variable $senden wird nicht gesetzt, das ist ein typisches Problem bei register_globals = off.

Gruß Sven


als Antwort auf: [#359350]
(Dieser Beitrag wurde von Intermedia am 18. Jul 2008, 11:30 geändert)

Fehlermeldung beim Formular - Mail wird nicht versendet

kareh
Beiträge gesamt: 239

18. Jul 2008, 20:44
Beitrag # 6 von 10
Beitrag ID: #359473
Bewertung:
(2893 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian, hallo Sven,

vielen Dank schon mal, dass ihr euch die Mühe mit meinem langen Script gemacht habt.

@ Sven, du schreibst:
Antwort auf [ Intermedia ] Ergänzung: die Variable $senden wird nicht gesetzt, das ist ein typisches Problem bei register_globals = off.


Hab ich die nicht in Zeile 24 gesetzt?

Sorry wenn ich eventuell dumm nachfrage, aber ich habe mir dieses Script mühselig anhand von Büchern zusammengebastelt.


als Antwort auf: [#359353]

Fehlermeldung beim Formular - Mail wird nicht versendet

Intermedia
Beiträge gesamt: 1287

18. Jul 2008, 23:11
Beitrag # 7 von 10
Beitrag ID: #359478
Bewertung:
(2881 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Karin,

in Zeile 24 hast du lediglich eine Bedingung, aber du setzt dort weder die Variable $send noch gibst du dieser Variable einen Wert.

Anders würde es aussehen wenn du z.B. folgendes machst: $senden = $_POST[senden]. Mehr verrate ich nicht, nur so kann man lernen. ;-))

Gruß Sven

P.S. alle Achtung für deine Eigeninitiative! So hilft man doch gerne!


als Antwort auf: [#359473]

Fehlermeldung beim Formular - Mail wird nicht versendet

kareh
Beiträge gesamt: 239

18. Jul 2008, 23:34
Beitrag # 8 von 10
Beitrag ID: #359481
Bewertung:
(2875 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Sven,

ich steh trotz deines kleinen "Winks" auf'm Schlauch.

Nur mal zum Vergleich, ein Script, welches diese Fehlermeldung nicht auswirft (liegt im Anhang):
Dort habe ich die gleichen Angaben:
Zeile 11 - vergleichbar mit Zeile 24 im langen Script
Zeile 137 - vergleichbar mit Zeile 674 im langen Script
Zeile 230 - vergleichbar mit Zeile 936 im langen Script

Das einfache Formular funktioniert einwandfrei - ich verstehe nicht, warum die Funktion bei dem längeren Formular angemeckert wird.


als Antwort auf: [#359478]
(Dieser Beitrag wurde von kareh am 18. Jul 2008, 23:41 geändert)

Anhang:
kontakt-formular.php (8.06 KB)

Fehlermeldung beim Formular - Mail wird nicht versendet

kareh
Beiträge gesamt: 239

18. Jul 2008, 23:46
Beitrag # 9 von 10
Beitrag ID: #359483
Bewertung:
(2868 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Was mich ja eigentlich wundert, dass es bis vor einigen Wochen (oder möglicherweise 3 oder 4 Monaten) funktioniert hat und ohne dass ich was geändert habe nun nicht mehr.


als Antwort auf: [#359481]
(Dieser Beitrag wurde von kareh am 18. Jul 2008, 23:46 geändert)

Fehlermeldung beim Formular - Mail wird nicht versendet

Intermedia
Beiträge gesamt: 1287

19. Jul 2008, 10:26
Beitrag # 10 von 10
Beitrag ID: #359495
Bewertung:
(2821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karin,

grundsätzlich kannst du nicht davon ausgehen was von 3 Monaten lief, läuft heute immer noch.
Provider versuchen ihre Systeme durch Updates sicherer zu gestalten, gerade bei php werden dort diverse Einstellungen geändert. Damit ist es keine Seltenheit das "alte" Scripte nicht mehr laufen. Bestes Beispiel sind die register_globals, die sind in neuen php Versionen auf "off" gestellt. Viele ältere Scripte, wie auch deins, sind allerdings auf register_global = on programmiert. Damit können Variablen, welche an ein Script übergeben werden, nicht mehr direkt angesprochen werden. Hier kommen dann die Globalen Variablen ins Spiel. $_POST, $_GET, $_REQUEST usw.

Schau mal hier: http://de.php.net/register_globals

Ich habe erst letzte Woche ein Projekt mit ca. 1500 php Datein von php 4 auf php 5 angepasst und schon auf php 6 vorbereitet.

PHP 4 wird ab August nicht mehr supportet und wird bald entgültig verschwinden.

Du wirst in Zukunft nicht herumkommen, dich mit der Materie tiefer zu beschäftigen.

Nun zu deinem eigentlichen Problem, bei mir hat das Formular funktioniert, nach dem ich die schon beschriebenen Anpassungen gemacht habe.
Die Variabel $senden wird in deinem Script nicht übernommen da du diese nicht mit $_POST übernimmst.

Mach mal die Fehlersuche nach dem EVA-Prinzip, error_reporting einschalten, zeilenweise debuggen, dann sollte sich der Fehler finden lassen.

Leider hab ich jetzt das angepasste Formular nicht bei der Hand, es liegt noch bei mir im Büro. ;-)

Wenn es nicht klappt kann ich es am Montag mal schicken mit entsprechenden Kommentaren versehen.

Dann mal viel Erfolg!

Gruß Sven


als Antwort auf: [#359483]
X