PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kontaktformular anlegen - was muss ich tun?


Juee
2004-07-01, 15:48:05
Hallo allemiteinander,

möchte in meine HP ein Kontaktformular einbauen, hab aber von Java, PHP usw. net wirklich viel ahnung.

Der Inhalt der ins Formular (nur ein Feld) eingegeben werden soll, soll einfach nur an eine Email-Adresse verschickt werden (ohne große inhaltliche Trennung).

Ich benutze einen Editor (golive 6.0)... da gibts schon vorgefertigte Felder und Buttons, die ich noch mit Funktion "absenden", "löschen" usw. (wie denn ?!? script oder was ?) füllen muss.

Gibts schon fertige einfache Formulare ? Oder wie geh ich das am besten an ?

DAAANKE :)

mfg Juee

Nase
2004-07-01, 16:35:04
Gegenfrage: Kannst du PHP überhaupt einsetzen? Dann ist das nämlich nur eine Zeile an Code + das Formular.

govou
2004-07-01, 16:35:33
Also:
Du erstellst ein Formular, welches als "action" "mailto:deine@email.de" hat. Darin kannst du z.B. ein Textbereich anlegen.

Dies ist zwar nicht die eleganteste Lösung, aber die einfachste ;)

Juee
2004-07-01, 16:53:49
php ist glaub ich möglich, kenn mich nur leider gar net damit aus :(

die lösung mit den mailto hat ich schön, find ich aber echt unschön, weil der absendende dafür doch Outlook oder sowas braucht (wo seine Email schon hinterlegt ist), sonst gehts net und der IE will ein email konto anlegen, oder ?



hab mich etz ein bissel umgehört und ich brauche ja nur ein CGI-Skript, dass dem formularfeld sagt, wohin es die daten schicken soll ("formmailer")

wo krieg ich denn sowas her ?

Nase
2004-07-01, 17:23:16
Mach das lieber mit PHP :)

<html>
<body>

<form action="sendmail.php" method="post">
<input type="text" name="betreff">
<textarea name="nachricht"></textarea>
</form>

</body>
</html>Das ist die HTML-Datei mit dem Formular.
Du brauchst nun noch eine zweite Datei "sendmail.php".
<?
mail("email@adresse.de", $betreff, $nachricht);
?>Dadurch wird die Mail verschickt.

Das war im Grunde genommen schon alles.

Juee
2004-07-01, 17:34:13
ok, das klingt gut, dass probier ich mal

danke erstmal :)

clm[k1]
2004-07-01, 18:22:26
das funktioniert mit php logischerweise auch nur dann, wenn auf dem system ein mailserver wie sendmail installiert ist, und auch in der php.ini eingetragen ist.

das dürfte aber bei den meisten hostern der fall sein - im zweifelsfall halt einfach ausprobieren, oder fragen.

schöner ist es übrigens wenn du noch nen header dazu bastelst und den return-wert von mail() in eine variable speicherst und überprüfst (mail gibt als ergebniss true oder false zurück, je nach dem ob die mail versendet werden konnte oder nicht)


$sHeader = "From:$sAbsender\n";
$sHeader .= "X-Sender-IP: $REMOTE_ADDR\n";

//Mail versenden..
$bSucces = mail("deineMailAdresse@irgendwas.de",$sBetreff,$sText,$sHeader);


gruß
clm[k1]

imagine
2004-07-01, 19:46:18
Original geschrieben von Beh
Dies ist zwar nicht die eleganteste Lösung, aber die einfachste ;)
Elegant kann man es schon nennen, leider funktioniert es nicht zuverlässig. Siehe http://www.forum-3dcenter.org/vbulletin/showthread.php?threadid=150868

Digger
2004-07-02, 16:19:45
Ansonsten kannst Du die auch hier (http://www.phparchiv.de/index2.html) komplette herunterladen.

Sofern Dein Webspace kein Php, etc unterstützt, dann schau mal hier (http://www.formmailer.com)!

Juee
2004-07-04, 20:58:27
Original geschrieben von Digger
Ansonsten kannst Du die auch hier (http://www.phparchiv.de/index2.html) komplette herunterladen.

Sofern Dein Webspace kein Php, etc unterstützt, dann schau mal hier (http://www.formmailer.com)!


cool, da guck ich mal ob ich was finde

thanx so far :)

Juee
2004-07-05, 20:10:55
was hab ich etz noch falsch ?


<html>

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta name="generator" content="ich">
<title>Kontakt Formular</title>
</head>

<body bgcolor="#ffffff">


<form action="sendmail.php" method="post">

<table width="527" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>Ihre E-Mail</td>
<td><input type="text" name="email" size="67"></td>
</tr>
<tr>
<td>Ihre Nachricht</td>
<td>
<div align="center">
<textarea name="feld" rows="11" cols="52"></textarea></div>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submitButtonName"><input type="reset"></td>
</tr>
</table>
<p></p>

</body>

</html>



und als php datei:

<?
mail("meinemail@xyz.de", $email, $feld);
?>


aber wenn ich den submit button drück will er die php datei runter laden und auf der festplatte speichern

wo muss die denn hin oder was stimmt noch net ?

mfg
Juee

imagine
2004-07-05, 20:23:13
Unterstützt dein Webhoster überhaupt PHP?

Juee
2004-07-05, 20:44:24
Original geschrieben von imagine
Unterstützt dein Webhoster überhaupt PHP?

:???:

habs erstmal offline versucht ... lag da der fehler ?
muss ich das ganze ding online probieren, um zusehen obs geht ? php sollte mein host unterstützen ...

der text weisst aber so keine fehler auf oder wie ?

thanx ;)

clm[k1]
2004-07-05, 20:58:49
PHP ist eine interpreter-sprache.
wenn du das offline probiert hast, hattest du sicher auch keinen webserver (z.b apache mit php modul) der deine php datei interpretiert hat.

aber es wird sehr wahrscheinlich trotzdem nicht funktionieren!!!
jedenfalls nicht wenn

<?
mail("meinemail@xyz.de", $email, $feld);
?>


tatsächlich deine ganze php-datei darstellt!!

du hast da zwar 2 variablen, aber vielleicht solltest du die noch belegen!

$email = $HTTP_POST_VARS[email];
$feld = $HTTP_POST_VARS[feld];


es könnte zwar auch ohne funktionieren, aber nur wenn in der konfiguration bei deinem hoster "register_globals" eingeschaltet ist - und das wirst du ja kaum beinflussen können. (deshalb der 'umweg' über das array HTTP_POST_VARS)

EDIT: $POST[email] is auch möglich.
der vorteil darin ist, das $_POST ein superglobales array ist, was heißt das man es auch in funktionen nutzen kann.

gruß
clm[k1]

Juee
2004-07-05, 21:12:52
Original geschrieben von clm[k1]
PHP ist eine interpreter-sprache.
wenn du das offline probiert hast, hattest du sicher auch keinen webserver (z.b apache mit php modul) der deine php datei interpretiert hat.

aber es wird sehr wahrscheinlich trotzdem nicht funktionieren!!!
jedenfalls nicht wenn

<?
mail("meinemail@xyz.de", $email, $feld);
?>


tatsächlich deine ganze php-datei darstellt!!

du hast da zwar 2 variablen, aber vielleicht solltest du die noch belegen!

$email = $HTTP_POST_VARS[email];
$feld = $HTTP_POST_VARS[feld];


es könnte zwar auch ohne funktionieren, aber nur wenn in der konfiguration bei deinem hoster "register_globals" eingeschaltet ist - und das wirst du ja kaum beinflussen können. (deshalb der 'umweg' über das array HTTP_POST_VARS)

EDIT: $POST[email] is auch möglich.
der vorteil darin ist, das $_POST ein superglobales array ist, was heißt das man es auch in funktionen nutzen kann.

gruß
clm[k1]

aha ?!? :)

also wenn die php dann so ausssieht sollte es gehen ?
=>

<?
mail("email@adresse.de", $betreff, $nachricht);
$betreff = $HTTP_POST_VARS[betreff];
$nachricht = $HTTP_POST_VARS[nachricht];
?>


?

ich hab doch keine ahnung von php *jammer*

Nase
2004-07-05, 21:20:17
Ne, andersrum

<?
$betreff = $HTTP_POST_VARS[betreff];
$nachricht = $HTTP_POST_VARS[nachricht];

mail("email@adresse.de", $betreff, $nachricht);
?>

Juee
2004-07-05, 21:34:54
ok probier ich ma so ... danke :)

obs geht kann ich aber erst morgen testen, da mein wohnheimnetz grad net richtig funktioniert :(

clm[k1]
2004-07-05, 21:48:31
hauptsache du bedenkst das das was bei HTTP_POST_VARS[] in den eckigen klammern steht der den namen eines formular-elements repräsentiert.

will heißen: du kannst logischerweise nur das abfragen, was auch in deinem formular steht. und wenn da 'email' steht, muss auch 'email' in den eckigen klammern stehen.

(kann sein, das du das schon wusstest, aber ich will nur sicher gehen, weil hier mal abwechselnt von 'email' und 'betreff' die rede ist. - wie du's letztlich nennst ist wurscht hauptsache das es im formular und im php-script gleich ist)


so far
clm[k1]

MadMan2k
2004-07-05, 22:02:41
$_POST[] ist doch ein assoziatives Array, ergo:


mail('email@adresse.de', $_POST['betreff'], $_POST['nachricht']);


(man beachte die Indizies in Anführungszeichen)

imagine
2004-07-05, 23:28:29
Original geschrieben von Juee
der text weisst aber so keine fehler auf oder wie ?
Fehler nicht, aber das ist teilweise technisch überholt. Eigenschaften wie Ränder und Hintergründe schreibt man heute nicht mehr mit HTML, sondern mit CSS.
Ich hab das ganze mal etwas grau eingefärbt, grundsätzlich kannst das aber auch lassen wie es war inkl der Tabelle.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Kontakt Formular</title>

<style type="text/css">
body {font-family:Verdana,Arial,sans-serif; font-size:100.01%;}
form {width:42em; margin:0 auto; border:1px solid #AAA;}
form div {background: #F5F5F5; margin:0; padding:0.5em; border-bottom: 2px solid #FFF;}
form br {display:none;}
label {float:left; width:8em; text-align:right; padding:0 0.5em; clear:both;}
input,textarea {width:30em; font-family:Verdana,Arial,sans-serif; border:1px solid #AAA; height:1.3em;}
textarea {height:12em;}
.submitbutton {text-align:center;}
.submitbutton input {border:1px solid #AAA; width:8em; background-color:#F5F5F5; margin:0 2em;}
input:focus,textarea:focus,input:hover,textarea:hover {border:1px solid #333;}
</style>

</head>
<body>
<form action="sendmail.php" method="post">

<div><label for="email" >Ihre E-Mail</label><br><input id="email" type="text" name="email" value="" size="60"></div><br>
<div><label for="note">Ihre Nachricht</label><br><textarea id="note" name="note" cols="60" rows="12"></textarea></div><br>
<div class="submitbutton"><input type="submit" value="Senden"><input type="reset" value="Löschen"></div>

</form>
</body>
</html>

Juee
2004-07-06, 12:24:29
Original geschrieben von imagine
Fehler nicht, aber das ist teilweise technisch überholt. Eigenschaften wie Ränder und Hintergründe schreibt man heute nicht mehr mit HTML, sondern mit CSS.
Ich hab das ganze mal etwas grau eingefärbt, grundsätzlich kannst das aber auch lassen wie es war inkl der Tabelle.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Kontakt Formular</title>

<style type="text/css">
body {font-family:Verdana,Arial,sans-serif; font-size:100.01%;}
form {width:42em; margin:0 auto; border:1px solid #AAA;}
form div {background: #F5F5F5; margin:0; padding:0.5em; border-bottom: 2px solid #FFF;}
form br {display:none;}
label {float:left; width:8em; text-align:right; padding:0 0.5em; clear:both;}
input,textarea {width:30em; font-family:Verdana,Arial,sans-serif; border:1px solid #AAA; height:1.3em;}
textarea {height:12em;}
.submitbutton {text-align:center;}
.submitbutton input {border:1px solid #AAA; width:8em; background-color:#F5F5F5; margin:0 2em;}
input:focus,textarea:focus,input:hover,textarea:hover {border:1px solid #333;}
</style>

</head>
<body>
<form action="sendmail.php" method="post">

<div><label for="email" >Ihre E-Mail</label><br><input id="email" type="text" name="email" value="" size="60"></div><br>
<div><label for="note">Ihre Nachricht</label><br><textarea id="note" name="note" cols="60" rows="12"></textarea></div><br>
<div class="submitbutton"><input type="submit" value="Senden"><input type="reset" value="Löschen"></div>

</form>
</body>
</html>

das find ich so sehr gut, sieht viel prof. aus.

und die php datei sendmail.php sieht dann so aus ?

=>

<?
$email = $HTTP_POST_VARS['email'];
$note = $HTTP_POST_VARS['note'];

mail("email@adresse.de", $email, $note);
?>


so richtig ?

irgendwann krieg ichs scho hin ;)