Seite 1 von 2

Versenden mit Formmailer

Verfasst: 10.12.2002 03:36
von Katze
Hallo,

drei Stunden Selfphp und immer noch keine Lösung. :(
Dabei ist es sicher ganz einfach....

Code: Alles auswählen

<form method="post" action="<?php echo $formmailer;?>">
Wenn ich es ohne php echo aufrufe, schickt formmailer.php die Daten korrekt. So leider nicht. Ich brauche es aber so, da sonst die Abfrage, ob alle Felder ausgefüllt sind, nicht funktioniert.

Wie muss das richtig aussehen?

Danke und Grüße
Katze

Verfasst: 10.12.2002 03:40
von Jensemann
Hat die datei denn die endung php oder php3 wo das drinsteht? ist die variable $formmailer gesetzt?

Mfg
Jens (der mal wieder nicht pennen kann)

Verfasst: 10.12.2002 03:51
von Katze
Die Endung ist php - für beide Seiten (formmailer und die Seite, auf der das Formular läuft). Die funzen für sich auch anstandslos.

> ist die variable $formmailer gesetzt?

Gute Idee.
$formmailer ist sonst nirgends definiert. Dann kann es auch nicht laufen, hm? Aber wie oder besser wo mache ich das?

Katze
(die auch nicht pennen kann)

Verfasst: 10.12.2002 04:07
von Jensemann
Gute Idee.
$formmailer ist sonst nirgends definiert. Dann kann es auch nicht laufen, hm? Aber wie oder besser wo mache ich das?
öh, jepp dann kans net leufen ;) du definierst ne variable gewöhnlich mittels $formmailer = 'deinwert';

also trag da einfach den namen des scriptes ein, auch wenn ich weis warum du das so umständlich machst, kannst doch auch einfach direkt den script namen dareinschreiben.
Katze
(die auch nicht pennen kann)
tja, soll vorkommen, achso, eh ichs vergesse, ich bin ALF
:D

Verfasst: 10.12.2002 04:21
von Katze
Hm.
Ich tu fast alles ;) - ob einfach oder kompliziert - Hauptsache es funzt.

Mit action="<?php echo $formmailer.php;?>"> geht es nicht. Da ruft der Browser dann nur php auf, was einen 404 ergibt.
Nur action="formmailer.php" funzt halb. Also die Formulardaten werden per Mail übermittelt, aber eben auch dann, wenn ein Feld nicht ausgefüllt war. Das soll ja gerade unterbunden werden. Was im Script selbst auch funzt. Es wird nicht abgeschickt, wenn noch ein Feld leer ist.
Nur die Daten kommen nicht an. :(

Vielleicht hilft ne Mütze Schlaf.

Katze,
die hofft, dass ALF seine Mikrowelle kaputt ist

Verfasst: 10.12.2002 04:35
von Jensemann
Katze hat geschrieben:Hm.
Ich tu fast alles ;) - ob einfach oder kompliziert - Hauptsache es funzt.
hehe (oh, gott, ich war zu lang im chat)
Katze hat geschrieben: Mit action="<?php echo $formmailer.php;?>"> geht es nicht. Da ruft der Browser dann nur php auf, was einen 404 ergibt.
Nur action="formmailer.php" funzt halb. Also die Formulardaten werden per Mail übermittelt, aber eben auch dann, wenn ein Feld nicht ausgefüllt war. Das soll ja gerade unterbunden werden. Was im Script selbst auch funzt. Es wird nicht abgeschickt, wenn noch ein Feld leer ist.
Nur die Daten kommen nicht an. :(
äh, jetzt versteh ich gar nix mehr. das es nen 404 gibt is normal, da $formmailer nicht gesetzt ist, woher sollte es auch ;)

Wenn du verhindern willst das der browser den formmailer aufruft wenn ein feld nicht ausgefüllt ist, kommst du so nicht weiter, da brauchst du javascript für, da kenn ich mich aber nicht so mit aus ...

ansonsten wird das script das selbe egal ob der name fest darein geschrieben wurde oder aus ner variable stammt, für ja vorher ausgewertet und nicht nachher.
Katze hat geschrieben: Vielleicht hilft ne Mütze Schlaf.
oder n kaffee.
Katze hat geschrieben: Katze,
die hofft, dass ALF seine Mikrowelle kaputt ist
ne,das nicht, aber keine angst, hab keinen hunger und im forum is katzen fangen so schwer, vorallem werden dann die anderen Moderatoren böse wenn ich die besucher auffutter :D

im ernst: erklär bitte nochmal ganz langsam und für doofe programmierer was du genau vor hast, so verstehe ich irgendwie nur bahnhof :-(

oder hatte ich schon recht bzgl. dem abschicken verhindern?

Mfg
Jens (ma eben die katze vom nachbarn verspeisen tu)

Verfasst: 10.12.2002 04:53
von Katze
Es geht auch ohne Javascript. ;)

Ich gestehe, dass mir ein ganz lieber Mitmensch in einem anderen Forum ein solches Script geschrieben hat. Ihn wollte ich aber nicht noch mehr nerven. Da dachte ich: hier gibt es auch so nette Menschen - fragst Du mal. ;)

Hier das ganze Script, vielleicht ist dann der Fehler offensichtlicher....

Code: Alles auswählen

<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html><head><title>Formular-Test</title></head><body>
<h1>Formular-Test</h1>
<?php
if (($_POST["name"] != "") && ($_POST["vorname"] != "")) {
    // Formular ausgefüllt:
?>
<p>Das Formular wurde ordnungsgemäß ausgefüllt:</p>
<p><strong>Name:</strong> <?php echo $_POST["name"];?></p>
<p><strong>Vorname:</strong> <?php echo $_POST["vorname"];?></p>
<?php
} else {
    // Formular noch nicht oder falsch ausgefüllt

    if ((!isset($_POST["name"])) || ($_POST["name"] == "")) {
        echo "<p><strong>Bitte füllen Sie »Name« aus!</strong></p>";
    }

    if ((!isset($_POST["vorname"])) || ($_POST["vorname"] == "")) {
        echo "<p><strong>Bitte füllen Sie »Vorname« aus!</strong></p>";
    }
?>
<form method="post" action="<?php echo $SCRIPT_NAME;?>">
<p><strong>Name:</strong><br/>
<input type="text" name="name" value="<?php echo $_POST["name"];?>"/></p>
<p><strong>Vorname:</strong><br/>
<input type="text" name="vorname" value="<?php echo $_POST["vorname"];?>"/></p>
<p><input type="submit"/></p>
</form>
<?php
}
?>
</body></html>
Die 13. Zeile von unten (Script_Name). Das Script, welches die Daten per Mail übermittelt, heisst formmailer.php. Aber egal in welcher Schreibweise - es klappt nicht.

Aber nu doch in die Daunen. *schnurr* :lol:

OT:
Jens, ist Dein Forum auch für Linux-ganz-dolle-Anfänger-Fragen geeignet?
Da hab ich noch ein paar Nachtschichten vor mir....

Verfasst: 10.12.2002 05:16
von Jensemann
Katze hat geschrieben:Es geht auch ohne Javascript. ;)

Ich gestehe, dass mir ein ganz lieber Mitmensch in einem anderen Forum ein solches Script geschrieben hat. Ihn wollte ich aber nicht noch mehr nerven. Da dachte ich: hier gibt es auch so nette Menschen - fragst Du mal. ;)

Hier das ganze Script, vielleicht ist dann der Fehler offensichtlicher....
jau, ich verstehe, da fehlt noch der code der die mail verschickt, mach da mal das draus, ungetestet:

Code: Alles auswählen

<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html><head><title>Formular-Test</title></head><body>
<h1>Formular-Test</h1>
<?php
if (($_POST["name"] != "") && ($_POST["vorname"] != "")) {
    // Formular ausgefüllt:
//code for sending mail with php std mail function
// added by jensemann
$mailtext = "Name: " . $_POST['name'] . "\nVorname: " . $_POST['vorname'];
mail( "deinemailaddy", "subject", $mailtext);
?>
<p>Das Formular wurde ordnungsgemäß ausgefüllt:</p>
<p><strong>Name:</strong> <?php echo $_POST["name"];?></p>
<p><strong>Vorname:</strong> <?php echo $_POST["vorname"];?></p>
<?php
} else {
    // Formular noch nicht oder falsch ausgefüllt

    if ((!isset($_POST["name"])) || ($_POST["name"] == "")) {
        echo "<p><strong>Bitte füllen Sie »Name« aus!</strong></p>";
    }

    if ((!isset($_POST["vorname"])) || ($_POST["vorname"] == "")) {
        echo "<p><strong>Bitte füllen Sie »Vorname« aus!</strong></p>";
    }
?>
<form method="post" action="<?php echo $SCRIPT_NAME;?>">
<p><strong>Name:</strong><br/>
<input type="text" name="name" value="<?php echo $_POST["name"];?>"/></p>
<p><strong>Vorname:</strong><br/>
<input type="text" name="vorname" value="<?php echo $_POST["vorname"];?>"/></p>
<p><input type="submit"/></p>
</form>
<?php
}
?>
</body></html>
[/quote]

So,musst nur noch subject anpassen und deinemailaddy, ich weis zwar nicht welchen sinn es hat da nur name und vorname übermittel werden, aber das ist ja nicht mein problem.
Katze hat geschrieben: Aber nu doch in die Daunen. *schnurr* :lol:
n8, ich muß in 20 min. zur arbeit, ach shit, schon 2 tage nicht gepennt...
Katze hat geschrieben: OT:
Jens, ist Dein Forum auch für Linux-ganz-dolle-Anfänger-Fragen geeignet?
Da hab ich noch ein paar Nachtschichten vor mir....
Vorest: schön das du dich für Linux interessierst.
Mein Forum behandelt nur Linux From Scratch also den Linux eigenbau, also wohl für anfänger eher nicht geeignet. Aber die lieben Kollegen vom Pro-Linux Helpforum helfen dir sicher gerne weiter:
http://www.pro-linux.de auf Helpforum klicken, ab und an munkelt man dort auch einen jensemann gefunden zu haben, aber recht selten ;) (ja, sollte mich damal öfter blicken lassen, ich weis)

Mfg
Jens

Verfasst: 10.12.2002 12:47
von Katze
Es funzt. :D

Der Code zum versenden der Mail lag eigentlich (extern) in der formmailer.php. Aber mit Deinem Zusatz werden die Daten jetzt verschickt. Und zwar auch nur, wenn alle Felder ausgefüllt sind. Das action weiter unten muss aber trotzdem drin bleiben, sonst wird das Formular gar nicht abgeschickt.
Nun kann ich mich daran machen das um alle notwendigen Felder zu erweitern...

Danke für den Link zum Linux-Forum. Ich werd dann mal vorbeischauen und für Erheiterung sorgen. ;)

Grüße Katze

Auch Probleme mit einem Formmailer ....

Verfasst: 10.12.2002 23:22
von maddy
Hi,

ich bin im Moment auch an einem Kontakt Formular (html) am arbeiten, welches nach dem Absenden durch eine php Datei geprüft wird, dann an mich geht und in eine Datenbank läuft. Ich würde noch gerne eine Antwortmail an den Verfasser schreiben, wie mach ich das ...

hier der Code der mail die an mich geht:

$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$_SERVER['HTTP_HOST'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
$message="VORNAME: ".$_POST['VORNAME']."
NACHNAME: ".$_POST['NACHNAME']."
ORT: ".$_POST['ORT']."
EMAIL: ".$_POST['EMAIL']."
HOMEPAGE: ".$_POST['HOMEPAGE']."
TEXT: ".$_POST['TEXT']."
";
mail("rolli@bibi-rolli.de","Kontaktformular fuer Rolli ist eingegangen",$message,"From: kontakt_rolli");
Danke

Maddy