Kontaktformular...

chichi

Mitglied
Hallo...
Ich habe jetzt seit Tagen ein Problem mit meinem Kontaktformular.
Es besteht aus:

name:
mail:
text:

clear submit


Es kommt zwar ein Mail an meine Adresse, doch darin steht nur:

Name: undefined

Email: undefined

Comments: undefined


Außerdem bleibt der Text stehen und ich weiß nicht was ich in die Aktion schrieben soll.

Mein AS auf dem ersten Frame im Movieclip sieht so aus:

PHP:
function onRollOver():Void {
    gotoAndPlay("s1");
}
function onRollOut():Void {
    gotoAndPlay("s2");

    
}

function onRelease():Void  {
    if ((betreff != "") && (absender != "") && (email != "") && (telefon != "") && (mitteilung != "")) {
        senden = new LoadVars();
        senden.betreff = betreff.text; //Variable=t2_2
     trace(t2_2); // <----- wir wollen wissen was dabei rauskommt.
        senden.absender = absender.text; //Variable=t3_2
        senden.email = email.text; //Variable=t4_2
        senden.telefon = telefon.text; //Variable=t5_2
        senden.mitteilung = mitteilung.text; //Variable=t6_2
        empfang = new LoadVars();
        senden.sendAndLoad("senden.php",empfang, "post");
         empfang.onLoad = function(status) {
            if (status) {
                if (empfang.signal == "1") {
                    betreff = "betreff";
                    absender = "absender";
                    email = "email";
                    telefon = "telefon";
                    mitteilung = "mitteilung";
                }
            }
        };
    }
}

Vielleicht kann mir hier jemand helfen...:confused:
 
Hi,

abgesehen von einer etwas merkwürdigen Art der Variablen- und Handlerdeklaration fällt mir folgendes auf:
  • zuerst überprüfst Du hier einige Variablen, ob es leere Strings sind:
Code:
if ((betreff != "") && (absender != "") && (email != "") && (telefon != "") && (mitteilung != "")) {
  • später verwendest Du die selben Bezeichner aber als Textfeld-Instanzen:
Code:
senden.absender = absender.text; //Variable=t3_2
senden.email = email.text; //Variable=t4_2
senden.telefon = telefon.text; //Variable=t5_2
senden.mitteilung = mitteilung.text; //Variable=t6_2

Handelt es sich nun um Strings, Textfeldvariablen, oder Textfeldinstanzen?

Zudem solltest Du Dir vor dem Senden einmal den Inhalt Deiner LoadVars-Objektes ausgeben lassen, um zu überprüfen, ob der Fehler tatsächlich flashseitig vorliegt, oder etwa serverseitig (den Code des php-Scriptes hast Du ja nicht gepostet) bedingt ist.

Gruß
.
 
Hallo und danke für die schnelle Antwort.
hier kann ich ja nochmal den Code für php einbringen...

PHP:
<?
$to = "meine_addi@aol.com";
$subject=$_POST['betreff'];
$name=$_POST['absender'];
$email=$_POST['email'];
$phone=$_POST['telefon'];
$message=$_POST['mitteilung'];
$message="Name: $name\n
Email: $email\n
Comments: $message\n";
if(@mail($to, $subject, $message, "Von: $email\n Antwort an: $email\n"))
echo "signal=1";
?>

also irgendwie glaub ich nicht das es am PHP Script liegt.
 
... hast Du denn meinen Rat aus dem vorherigen Posting (LoadVars-Objekt ausgeben lassen) befolgt, und die Inkonsistenz, auf die ich Dich hingewiesen habe, korrigiert?

Gruß
.
 
hallo tobias,
kann dir auf die Fragen keine Antwort geben, da ich es selbst nicht weiß. Habe das AS von einer Vorlage und dachte ich kann es bei mir einfach verwwenden. Bin absoluter Anfänger und habe meine HP fertig. Was jetzt nur noch fehlt ist das funktionieren meines Kontaktformulars. Kannst Du mir dabei helfen?
 
Hi,

dann poste bitte einmal die komplette .fla - neben den von mir erwähnten Punkten kann es (abhängig von der Struktur Deines Films: Welche Elemente gibt es in dem Formular, woraus bestehen sie und wie sind die benannt, auf was für einem Element liegt dieses Script exakt, welche weiteren Frames gibt es dort noch usw.) noch mehrere weitere Fehlerursachen geben.

Wenn dieses Script von einer externen Vorlage stammt, dann jedenfalls von jemandem, der sich mit AS entweder nicht besonders auskennt, oder zumindest nicht viel Wert auf Sorgfalt legt ...

Gruß
.
 
Huhu...

Habe alle deiner 3 Schritte ausgeführt.

1. In Bild 40 u. 48 habe ich Instanzennamen vergeben.
2. Die Textfelder im Formular habe ich so benannt:

* tf_name (für den Namen)

* tf_mail (für die E-Mail Adresse)

* tf_msg (für die Nachricht)

3. Im ersten Frame des Movieclips der Schaltfläche lieg dieser AS:

Code:
function onRelease():Void  {
    if ((_parent.form.tf_name.text != "") && (_parent.form.tf_mail.text != "") && (parent.form.tf_msg.text != "")) {
        senden = new LoadVars();
        senden.name = _parent.form.tf_name.text;
        senden.email = _parent.form.tf_mail.text;
        senden.mitteilung = _parent.form.tf_msg.text;
        empfang = new LoadVars();
        senden.sendAndLoad("senden.php", empfang, "POST");
         empfang.onLoad = function(status) {
            if (status) {
                if (empfang.signal == "1") {
                    _parent.form.tf_name.text = "Name";
                    _parent.form.tf_mail.text = "Email";
                    _parent.form.tf_msg.text = "Mitteilung";
                }
            }
        }
    }
}

Es kommt ein Mail mit diesem Inhalt an meine Adresse:

Name:

Email: undefined

Comments: undefined



Außerdem bleibt immernoch der Text stehen.
Beste Grüße
ChiChi.
 
Hi,

bist Du sicher, dass
  1. Der Instanzname des Formulars in beiden Schlüsselbildern "form" lautet, und

  2. Du den Textfeldern Instanznamen gegeben hast, und keine Textfeldvariablen?

Im Anhang findest Du die von mir modifizierte Datei, die Du mit Deinen Änderungen vergleichen kannst. Beachte, dass ich auf der Hauptzeitleiste alles ausser dem ersten Frame entfernt habe, da es keinen Sinn macht, wenn der Film als Schleife läuft.

Um festzustellen, was nach dem Senden schiefläuft, müsste ich den Quelltext der "senden.php" sehen.

Gruß
.
 

Anhänge

  • kontakt.zip
    15,9 KB · Aufrufe: 31
habs verglichen, alles ok...

hier nochmal der quelltext der senden.php

PHP:
<?
$to = "meine.addi@aol.com";
$subject=$_POST['betreff'];
$name=$_POST['absender'];
$email=$_POST['email'];
$phone=$_POST['telefon'];
$message=$_POST['mitteilung'];
$message="Name: $name\n
Email: $email\n
Comments: $message\n";
if(@mail($to, $subject, $message, "Von: $email\n Antwort an: $email\n"))
echo "signal=1";
?>
 

Neue Beiträge

Zurück