mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 01:07 Benutzername: Passwort: Auto-Login

Thema: Frage zu Kontaktformularen vom 18.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Frage zu Kontaktformularen
Seite: Zurück  1, 2, 3  Weiter
Autor Nachricht
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Di 19.06.2007 19:29
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Das einzige was ich nicht geändert habe war das mit den Variablen, da register_globals in der php.ini von awardspace.com aktiviert ist (hab nachgeschaut).

Das solltest du aber trotzdem ändern.
So hast du keinerlei Kontrolle, wo deine Variablen wirklich herkommen.
Und man könnte deinem Formular einfach Daten übergeben.

Zitat:
Funktioniert hat es leider trotzdem nicht! Woran könnte es denn noch liegen?

Was heißt "funktioniert nicht"?
Das ist keine Fehlerbeschreibung mit der man irgendwas anfangen könnte.
Werden die Mails nicht verschickt oder was passiert bzw. passiert nicht?
Gibt es eine Fehlermeldung? Wenn ja, welche?

Was gibt dir mail() denn für einen Rückgabewert?
Du ignorierst den einfach in deinem Script, solltest ihn dir aber besser mal ausgeben lassen.
Wenn die Mail an den MTA übergeben werden konnte, gibt dir mail() TRUE zurück, andernfalls FALSE.
Schau dir an, ob die Mail korrekt übergeben werden kann oder nicht.
Dann ist man schon mal einen Schritt weiter.


Zuletzt bearbeitet von rob am Di 19.06.2007 19:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
cank1090
Threadersteller

Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 20.06.2007 20:57
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,
also hab jetzt die Variablen geändert (bzw. so übernommen wie Du sie gepostet hast):

Code:
<?php
$mail_empfaenger="mein@email.de";
$mail_absender=$_POST['mailaddi'];
$betreff="Eine Testmail";
$text="Mein Name ist $_POST['Vorname'] $_POST['Nachname'], von Beruf bin ich $_POST['Beruf'].
Rufen Sie mich mal an unter der Nummer $_POST['Telefon']. \n Mit freundlichen Grüssen";
mail(mail_empfaenger, $betreff, $text,"from:$mail_absender");
?>


Nun kommt aber, nachdem ich die Formulardaten abschicke, folgender Fehler (mit dem ich leider nichts anfangen kann und der vorher nicht gekommen ist):

Zitat:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/meineseite.awardspace.com/script.php on line 5


Mit "funktioniert nicht" meinte ich, es kommt keine Mail an. Das Skript arbeitet anscheinend normal (bis ich die von dir vorgeschlagene Änderung mit den Variablen gemacht habe), eine Mail kommt trotzdem nicht an. Was mail() für einen Rückgabewert gibt würde ich dir gerne sagen, allerdings weiß ich nicht wie ich das herausfinden soll Menno!


Zuletzt bearbeitet von cank1090 am Mi 20.06.2007 20:58, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
LioGetz

Dabei seit: 24.03.2003
Ort: Aachen
Alter: 44
Geschlecht: Männlich
Verfasst Mi 20.06.2007 22:35
Titel

Antworten mit Zitat Zum Seitenanfang

ich habs nur überflogen, aber da:

Zitat:

mail(mail_empfaenger, $betreff, $text,"from:$mail_absender");


fehlt ein $ beim mail_empfaenger...

CU
Lio Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mi 20.06.2007 23:31
Titel

Antworten mit Zitat Zum Seitenanfang

Ich schätze mal, daß LioGetz den Fehler entdeckt hat.

Falls das nicht der Fehler war und dort irgendwo noch ein anderer stecken sollte, wäre es sinnvoll, wenn du nicht nur die Fehlermeldung postest, sondern auch die entsprechende Codezeile.
PHP sagt dir bei jedem Fehler, in welcher Zeile dieser aufgetreten ist.
Da wir keine Ahnung haben, wie deine eigentliche Datei aussieht, solltest du die entsprechende Zeile posten.
Am besten postest du auch noch die Zeile davor und die danach.
  View user's profile Private Nachricht senden
cank1090
Threadersteller

Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 21.06.2007 00:10
Titel

Antworten mit Zitat Zum Seitenanfang

Also,
habe jetzt bei mail_empfaenger ein $ hingemacht, der Fehler besteht jedoch nach wie vor. Die Zeile Nr. 5 aus meinem script.php ist folgende:

Code:
$text="Mein Name ist $_POST['Vorname'] $_POST['Nachname'], von Beruf bin ich $_POST['Beruf'].


Meine beiden Dateien, formular.html und script.php habe ich hier bereits gepostet (also im Code-Format). Sonst habe ich keinen anderen Code in den beiden Dateien.
  View user's profile Private Nachricht senden
LioGetz

Dabei seit: 24.03.2003
Ort: Aachen
Alter: 44
Geschlecht: Männlich
Verfasst Do 21.06.2007 01:03
Titel

Antworten mit Zitat Zum Seitenanfang

1. hast du im formular (bei type & name) immer noch nicht die anführungszeichen gesetzt.
2. guck nochmal auf http://de3.php.net/manual/de/function.mail.php (Bsp. 918, 919)
3. Wenn mich nciht alles täuscht (ist ja schon spät *zwinker*): Du schreibt "normalen Text" und Variablen einfach so in deinen Text, und das geht nicht. Du musst jedesmal wenn was aus PHP kommt die Anführszeichen schließen und die Variablen mit dem Punkt einbinden.
$text = "Mein Name ist " . $_POST['vorname'] . " " . $_POST['nachname'] . und so weiter und so weiter...";

CU
Lio Grins


Zuletzt bearbeitet von LioGetz am Do 21.06.2007 01:07, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Do 21.06.2007 01:36
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
$text="Mein Name ist $_POST['Vorname'] $_POST['Nachname'], von Beruf bin ich $_POST['Beruf'].

Also erstmal kann das überhaupt nicht funktionieren, weil die Zeile unvollständig ist.
Da fehlt das schliessende Doublequote und dann fehlt das Semikolon.
So sollte es wohl aussehen:
Code:
$text="Mein Name ist $_POST['Vorname'] $_POST['Nachname'], von Beruf bin ich $_POST['Beruf'].";

Das wird aber dann trotzdem noch nichts an der Fehlermeldung ändern.

Zitat:
Wenn mich nciht alles täuscht (ist ja schon spät *zwinker*): Du schreibt "normalen Text" und Variablen einfach so in deinen Text, und das geht nicht.

Doch. Prinzipiell würde das gehen.
Innerhalb von Double-Quotes findet eine Variablensubstitution statt, innerhalb von Single-Quotes hingegen nicht.
Also:
Code:
$name = "LioGetz";
echo "Name: $name"; // Name: LioGetz
echo 'Name: $name'; // Name: $name


Aber genau dieses Verhalten führt jetzt zu dem vorhandenen Problem.
Es handelt sich nicht um einfache Variablen, sondern um Elemente eines assoziativen Arrays und da kommen dann die Single-Quotes zu Einsatz, was zur Fehlermeldung führt.

Zitat:
Du musst jedesmal wenn was aus PHP kommt die Anführszeichen schließen und die Variablen mit dem Punkt einbinden.

Ja, das könnte man machen.
Dann würde das folgendermaßen aussehen:
Code:
$text = "Mein Name ist " . $_POST['Vorname'] . " " . $_POST['Nachname'] . ", von Beruf bin ich " . $_POST['Beruf'] . ".";

Das ist allerdings recht viel Schreibarbeit und macht die Sache eventuell etwas unübersichtlich.
Daher würde ich die Variablen in geschweifte Klammern setzen.
So funktioniert es dann auch:
Code:
$text = "Mein Name ist {$_POST['Vorname']} {$_POST['Nachname']}, von Beruf bin ich {$_POST['Beruf']}.";


Zuletzt bearbeitet von rob am Do 21.06.2007 01:41, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
cank1090
Threadersteller

Dabei seit: 18.06.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 21.06.2007 20:40
Titel

Antworten mit Zitat Zum Seitenanfang

Ok, ich glaube wir sind wenigstens schon mal ein Stück weiter. Nachdem ich die genannten Änderungsvorschläge beachtet und ausprobiert habe sieht mein Code von script.php jetzt so aus (komplett):

Code:
<?php
$mail_empfaenger="meine@email.de";
$mail_absender=$_POST['mailaddi'];
$betreff="Eine Testmail";
$text="Mein Name ist ".$_POST['Vorname']." ".$_POST['Nachname'].", von Beruf bin ich ".$_POST['Beruf'].".
Rufen Sie mich mal an unter der Nummer ".$_POST['Telefon'].". \n Mit freundlichen Grüssen";
mail($mail_empfaenger, $betreff, $text, $mail_absender);
?>


und siehe da, es wird keine Fehlermeldung mehr ausgegeben! Ich habe lediglich die Variablen (weiß nicht ob ich jetzt das richtige anspreche, aber ich meine z.B. sowas wie $_Post['Nachname']) in Punkte und Anführungszeichen gesetzt, wie ihr sehen könnt. Ist wahrscheinlich nicht die schönste Lösung, aber das ist mir nicht so wichtig. Da ich kein ellenlanges Formular habe, macht mir das bisschen mehr Schreibarbeit nichts aus. Viel wichtiger ist erstmal, dass das Ding überhaupt richtig arbeitet.
Außerdem stand vorher in der vorletzten Zeile from:$mail_absender. Daraufhin hat mir das Script die Fehlermeldung gegeben: unexpected ":" in line 7. from und Doppelpunkt also raus, keine Fehlermeldung.
Bei dem $text steht doch am Ende ein abschließendes Anführungszeichen und das Semikolon. Ich glaube, ihr dachtet das würde schon in der Zeile davor aufhören - wenn ich falsch liege korrigiert mich!

Leider bleibt jetzt immernoch das "Hauptproblem": Die eMail kommt garnicht bei mir an. Ich weiß leider nicht woran das liegt. Würde euch gerne eine Fehlermeldung ausgeben (falls denn eine zustande kommt), nur leider weiß ich nicht wie ich das anstellen soll. Wie gesagt, in dem Zustand gibt das Skript keine Fehlermeldungen mehr aus.


Zuletzt bearbeitet von cank1090 am Do 21.06.2007 20:40, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Rechtliche Frage bzw. einfach ne Frage :)
Frage nach der Frage
CSS Frage
Div-Frage
cms frage!
Frage
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3  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.