# HTML mit Formular senden



## delphinhawe (23. Februar 2009)

Hallo Alle,

ich habe eine kleine HTML mit Formular gebaut, klappt ganz gut.

Hier ein Beispiel von SELFHTML:

http://de.selfhtml.org/html/formulare/anzeige/input_submit_reset.htm

Zum Versenden der Formular-Daten muss noch ein Script erstellt werden, 
so dass die Daten erst auf dem Server von (z.B.) Strato abgelegt (gespeichert) werden, denke ich!  
Direkte Versendung von Kontakt-Formular an Email gibt Probleme, 
da die meisten Leute keine Email-Programme z.B. Thunderbird, Outlook-Express oder Windows-Email usw. besitzen, 
weil die Konfiguration nicht vorgesehen ist.
Ich suche dafür eine Anleitung, wie das Formular nach dem Klick der Schaltfläche ,,Senden“ über den Server 
an die Email-Adresse automatisch geschickt werden kann? 
Der Empfänger erhält dann einen Text z.B. txt oder ini (vielleicht auch in *.doc oder *.pdf)

Ich habe mich mich mit PHP und CGI noch nicht richtig befasst, 
d.h. bevor ich mit dem Script  anfange, möchte ich meine Arbeit nicht umsonst machen!

Was brauche ich dafür?
Was muss ich anders tun? 
Was muss ich dafür Schritt für Schritt zuerst tun?

Viele Grüsse

delphinhawe


----------



## Maik (23. Februar 2009)

Hi,

schau mal hier: PHP: Einfacher PHP-Formmailer.

mfg Maik


----------



## chuvak (23. Februar 2009)

Das geht am besten mit PHP.
Dies ist meine Lieblingsseite dazu: http://www.schattenbaum.net/php/mail.php


----------



## sub7even (23. Februar 2009)

Hier haste mal einen kleinen Beispiel Code:

```
<form method="post" action="<?php echo $_SERVER['SELF_PHP']; ?>">
Betreff: <input type="text" name="betreff"/><br/><br/>
Nachricht: <br/> 
<textarea name="nachricht" style="width:500px; height:120px;"></textarea><br/>
<input type="submit" name="absenden" value="Nachricht Senden"/>
</form>

<?php
# Easy Mail
if (isset($_POST['absenden'])) // Prüft ob aus dem Formular (<form>...</form>) der Submit Button Geklickt wurde
{
	$empfaenger = ""; // e-mail adresse des empfängers
	$betreff = $_POST['betreff']; // Verpackt den betreff in eine variable
	$nachricht = $_POST['nachricht']; // Verpackt die Nachricht in eine Variable
	
// $_POST['
// hier kommt der "name"(name="") des zu wählenden gegenstandes aus dem Formular hin.
// ']

mail($empfaenger, $betreff, $nachhricht);
	
	# Liebe Grüße... H4ckHunt3r bzw. sub7even
	
}
?>
```


Muss natürlich als *.php datei gespeichert werden 
Hoffe das Hilft dir^^

Achja... oben in dem Stückchen HTML bereich das hier:

```
<?php echo $_SERVER['SELF_PHP']; ?>
```
Sorgt nur dafür das der Server Pfad zu der php da rein schreibt in der der code liegt...
^^


----------



## delphinhawe (23. Februar 2009)

Danke, Maik ;-)!

An Alle:

Beim Abschnitt 
	
	
	



```
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
```
aus dem SELFHTML, stehe ich irgendwie auf dem Schlauch.

Eine alte Seite habe ich die HTML als kontaktformular.htm gespeichert.
Jetzt habe ich diese HTML in PHP als kontaktformular.php umgespeichert!

Soll die Aktion im Form-Tag 

```
<form action="<?php print $_SERVER['kontaktformular']; ?>" method="post">
```
jetzt so lauten?

Kann mir jemand den Wert des action-Attributes korrigieren?
Danach probe ich den Test.

Danke schon mal ! 

@ewgeni: Daankeee!  Ich werde mal durchlesen!

@sub7even:

Danke, habe soeben erst gelesen.


----------



## sub7even (23. Februar 2009)

delphinhawe hat gesagt.:


> Danke, Maik ;-)!
> 
> An Alle:
> 
> ...




nein... das SELF_PHP(Deutsch = selbst_php) steht einfach nur dafür...
das die php den pfad zu sich selbst da einfügen muss^^
bitte jetzt ned Selbst_php schreiben...^^
einfach so lassen:

```
<form action="<?php print $_SERVER['SELF_PHP']; ?>" method="post">
```


----------



## delphinhawe (23. Februar 2009)

@ewgeni:

„Die Mailfunktion funktioniert nicht am virtuellen Webserver, da dieser über keinen eigenen Mailserver verfügt. 
Du kannst den Mailversand nur auf deinem Webspace testen.“

Damit habe ich ein Problem. Ich habe bisher nur bei Yahoo kostenlose Homepage aufgebastelt. 
Yahoo verfügt keine spezielles script wie CGI und PHP usw. Bei Strato habe ich noch nicht angemeldet. 
Ich möchte auf meine Festplatte (,,Server“) die PHP testen. Danke für Deine URL! 
Der Inhalt ist leicht zu erklären verstehen.  Die kann ich ja später mal gut gebrauchen und testen, 
wenn  ich eine eigene Homepage bei Strato habe.

@sub7even:

Ich habe Deinen Code abkopiert und in Adobe Dreamweaver eingefügt, 
danach als sub7even.php gespeichert . Danach ->Datei->Vorschau in Browser->Firefox getestet.
Das Fenster scheint nicht einwandfrei zu sein, wie folgt:
siehe phpsenden.jpg (links)
Nach dem Klick bekam ich eine Fehler-Meldung wie folgt: Datei nicht gefunden
siehe fehler.jpg (rechts)
Obwohl ich die Datei *.php auf die Festplatte schon gespeichert habe. 
Was habe ich da bloß falsch gemacht? 
Muss ich vermutlich den virtuellen Webserver für die PHP vorinstallieren,
wenn ja, wie mache ich das zuerst vor?


----------



## Maik (23. Februar 2009)

Verfügst du über einen lokalen Webserver, wie z.B. XAMPP, auf dem du deine Seiten entwickelst?

Dem linken Schnappschuß zufolge, rufst du das PHP-Dokument nicht über das HTTP-Protokoll (wie z.B. http://localhost/sub7even.php), sondern über das System (file:///E:/sub7even.php) auf,  weshalb der PHP-Code nicht vom Server verarbeitet und an das Dokument übergeben, sondern vom Browser in der Seite angezeigt wird.

mfg Maik


----------



## sub7even (23. Februar 2009)

Maik hat gesagt.:


> Verfügst du über einen lokalen Webserver, wie z.B. XAMPP, auf dem du deine Seiten entwickelst?
> 
> Dem linken Schnappschuß zufolge, rufst du das PHP-Dokument nicht über das HTTP-Protokoll (wie z.B. http://localhost/sub7even.php), sondern über das System (file:///E:/sub7even.php) auf, weshalb der PHP-Code nicht vom Server verarbeitet und an das Dokument übergeben, sondern vom Browser in der Seite angezeigt wird.
> 
> mfg Maik



So is es^^
Halt entweder Apache Server + PHP aufm PC installen dan über http://localhost/... aufrufen
oder einfach auf den FTP Server bei ohost/funpic/kilu/bplaced usw... uppen und testen


----------



## delphinhawe (25. Februar 2009)

XAMPP für Windows Vista Ultimate wurde gestern erfolgreich installiert. 
Es hat etwas länger gedauert bis ich begriffen habe, 
so daß ich die sub7even.php in das Verzeichnis  C:\xampp\htdocs\nof endlich richtig zuordnen kann. 
Somit kann die Homepage mit,, http://localhost/nof/sub7even.php“ problemlos geöffnet werden! 
Echt super! XAMPP-Status zeigt, daß PHP aktiviert ist, gut so!

Nur ein kleines Problem noch: 

Ich wollte das Formular an meine Email-Adresse senden.
Nach dem Senden bekam ich eine Fehlermeldung, wie folgt:


```
Betreff ... .. .

Nachricht: ... .. .

... .. .    . ..
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\NOF\sub7even.php on line 18
```


Doch, was bedeutet diese Fehlermeldung?
Ich habe meine Email-Adresse ,,Mustername@Mustername.de“ im PHP-Code von sub7even bereits eingefügt, wie folgt:


```
$empfaenger = " Mustername@Mustername.de "; // e-mail adresse des empfängers
```


Was habe ich denn schon wieder falsch gemacht?
Ich denke, daß die Konfiguartaion irgendwo noch eingestellt werden muss, 
damit das Senden frei zugänglich gemacht werden kann oder? 
Soll ich Dir die Bilder hier ins Forum stellen?

Wie komme ich auf den FTP-Server,sub7even? Hast Du dafür die Anleitung? 

Außerdem wollte ich die Schaltfläche ,,Sicherheitscheck“ ( http://localhost/xampp/) öffnen, 
bekam auch die Fehlermeldung: 


```
Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost
02/24/09 23:54:07
Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8
```


Vermutlich hat das etwas mit Blockade zu tun. Wo genau kann ich wieder deblockieren?


----------



## kuddeldaddeldu (25. Februar 2009)

Hi,



delphinhawe hat gesagt.:


> Doch, was bedeutet diese Fehlermeldung?
> Ich habe meine Email-Adresse ,,Mustername@Mustername.de“ im PHP-Code von sub7even bereits eingefügt, wie folgt:
> 
> 
> ...



in Deiner php.ini ist kein Standard*absender* eingetragen. Du kannst der mail-Funktion aber auch den Absender im optionalen 4. Parameter additional_headers übergeben. Schau Dir mal die Beispiele im Manual an.

LG


----------



## Security (25. Februar 2009)

Wie wäre es einfach mal zu Googlen?
Du solltest dich etwas mit HTTP und den Methoden GET und POST auseinandersetzen und mit dem Dateizugriff von PHP.
Ich wuerde das nicht einfach in eine Datei speichern, sonern in ein XML mit DOM.

Viel Spaß PHP lernt man nicht grade an einem Tag, kauf dir am besten nen gutes Buch.


----------



## kuddeldaddeldu (25. Februar 2009)

Hi,



Security hat gesagt.:


> Ich wuerde das nicht einfach in eine Datei speichern, sonern in ein XML mit DOM.



Wovon sprichst Du? Was würdest Du in einer XML-Datei speichern?
Falschen Thread erwischt? :suspekt:

LG


----------



## Security (25. Februar 2009)

Dachte er wollte die auf dem Server speichern, sorry.
Davon ab, solltest du wenn du es als PDF verschicken willst ein framework nutzen, das ist etwas einfacher.


----------



## kuddeldaddeldu (25. Februar 2009)

Hi,

Du hast Dich glaube ich von seinem Eingangspost verwirren lassen. Er sucht doch nur einen simplen Formmailer...

LG


----------



## delphinhawe (26. März 2009)

@kuddeldaddeldu:

Richtig, ich wollte nur wissen, wie ich im ausgefüllten „Kontakt-Formular“ eine Email zum Verschicken“ einen Script schreiben kann.
Doch ich habe bemerkt , daß das Problem nicht wie im ,,Beispiel #4 Verschicken einer HTML-E-Mail.” alleine liegt. 
Es muss nämlich nicht nur im PHP.INI, sondern auch  noch im Mercury-Konfiguration meine Email-Adresse bzw. POP und SMTP etc. eingespeist werden, 
damit im ausgefüllten Kontakt-Formular eine Email problemlos ohne Fehlermeldung verschickt werden kann.
Da Mercury-Konfiguartion etwas zu kompliziert und schon zuviel ist, möchte ich mich erst später die zuständigen XAMPP erfragen, - 
habe ich mich deshalb bei Strato mit PHP angemeldet. Es läuft super! 

@Security:

Ich las im Google, daß oft sehr viele an XAMPP-Konfiguartion scheitern!  Wenn erst bei XAMPP tiefgreifend zu lesen ist, erfordert das viel Zeit und Sachverstand. 
Deshalb habe ich  XAMPP zurückgestellt und bei Strato ,,wie oben beschrieben“ angemeldet.

Wenn Du meinst, daß ein Kunde im ausgefüllten „Kontakt-Formular“ eine Emailnachricht schreibt, 
diese dann automatisch an den Empfänger mit Anhang MustermannA.*pdf *geht, dann würde ich das gerne vertiefen, 
da PHP-Script nur Texte an Empfänger schicken kann, also keine PDF- bzw. doc-Anhänge ermöglicht, glaube ich.

Beispiel: Ich fülle das Kontaktformular (Name, Anschrift, Text usw.) aus und klicke auf “absenden“. 
Der Empfänger erhält sodann automatisch eine Email mit PDF-Anlage. 
Könntest Du mir bitte ein Buch empfehlen, in dem ich ich XML mit DOM mal ausprobieren kann ? 


*Danke schon mal an Alle !*

LG delphinhawe


----------



## kuddeldaddeldu (26. März 2009)

Hi,



delphinhawe hat gesagt.:


> Wenn Du meinst, daß ein Kunde im ausgefüllten „Kontakt-Formular“ eine Emailnachricht schreibt,
> diese dann automatisch an den Empfänger mit Anhang MustermannA.*pdf *geht, dann würde ich das gerne vertiefen,
> da PHP-Script nur Texte an Empfänger schicken kann, also keine PDF- bzw. doc-Anhänge ermöglicht, glaube ich.



Du kannst mit PHP auch Anhänge per Mail mitverschicken. Du könntest z.B. die Email-Klasse von Dennis dafür benutzen.

LG


----------

