Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Formular fertig - Ein wenig Hilfe“

Foos

Member

Hallo,

also ich hab es ja mal tatsächlich geschafft ein Formular zu basteln, dass tatsächlich auch bei mir ankommt (ist natürlich nich das "Über-Profi-Formular - also seid bitte gnädig :)

Naja, und nun hab ich ein paar Fragen, bei denen ich hoff, dass ihr mir helfen könnt:

Erst mal mein Code:

Code:
<form method="post" action="anfrage_send.php">
                  <p>
                  Ihr Name:<br />
                  <input type="text" name="name" /> 
                  <br />
                  </p><p>Firma: <br />
                  <input type="text" name="firma" /><br />
                  Straße:     <br />
                  <input type="text" name="strasse" /><br />
                  </p><p>PLZ:<br />
                    <input type="text" name="plz" /> <br />
                    </p><p>Ort:<br />
                    <input type="text" name="ort" />                                                        
                  </p><p>&nbsp;                  </p>
                  <p>Telefon:<br />
                    <input type="text" name="tel" /><br />
                    </p>
                  <p>Telefax:<br />
                    <input type="text" name="fax" /><br />
                    </p>
                  <p>E-Mail:<br />
                    <input type="text" name="mail" />
                  </p>
                  <p>&nbsp;</p>
                  <p>Ihre Nachricht:<br />
                      <textarea name="nachricht" rows="10"></textarea>
                  </p>
                  <p><input type="submit" name="Button" value="Abschicken" /><br />
                  </p>
                  </form>
und mein php dazu:

PHP:
<?PHP
                  echo "Sie haben folgende Angaben gemacht:<br>";
                  
                  echo "Ihr Name: $_POST[name]<br>";
                  
                  echo "Ihre Nachricht: $_POST[nachricht]";
                  
                  mail("meinemail@hier.de","Nachricht von $_POST[name]","$_POST[nachricht]");
                  
                  ?>
Meine Fragen:

1.) Wie oder was muss ich machen, dass in meinem Email Programm als Absender nich irgendwas mit "post.webmailer234" steht sondern "Nachricht von der Homepage"?

2.) Wie kann ich mir nicht nur die Nachricht sondern auch PLZ, Name, Ort, etc. an meine Mail Adresse senden lassen?
----

Ich freu mich von euch zu hören :) DANKE
 

sokie

Mod | Web

AW: Formular fertig - Ein wenig Hilfe

einfach im header (funktion mail() 4.Parameter) die gewünschte email angeben
<- Beispiel #2

es ist oft lohnenswert, vor dem Posten ins Manual zu schauen.

mail("meinemail@hier.de","Nachricht von $_POST[name]","$_POST[nachricht]");


gefährliche Sache. Benutzereingaben sollten erst sorgfältig geprüft werden, und zB escaped.

2. wenn das geschehen ist,fasst du die Daten zusammen:
zB
PHP:
$nachricht = htmlspecialchars($_POST['nachricht']);
$an = "deinemail@domain.tld";
$betreff = "eine Mail aus dem Formular von $name $mail";

//nachricht zusammenfassen:

$message = "";
$message .= "{$_POST['name']} schreibt:\n\n";
$message .= $nachricht;
//etc...

mail($an,$betreff,$message,$header); //header siehe oben (manual)
 
Zuletzt bearbeitet:

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

also danke schon mal . ein klein wenig versteh ich es sogar :)

es sieht jetzt so aus:

PHP:
<?PHP
                 
                $nachricht = htmlspecialchars($_POST['nachricht']);
                $an = "mienemail.de";
                $betreff = "eine Mail aus dem Formular von $name $mail";
                $header = 'From: webmaster@example.com' . "\r\n" .
                                'Reply-To: webmaster@example.com' . "\r\n" .
                                    'X-Mailer: PHP/' . phpversion();

//nachricht zusammenfassen:

$message = "";
$message .= "{$_POST['name']} schreibt:\n\n";
$message .= $nachricht;
$message = "";
$message .= "{$_POST['plz']} und hat die PLZ:\n\n";
$message .= $plz;
//etc...

mail($an,$betreff,$message,$header); 

                  
                  ?>
Allerdings komm bei mir nur: "92224 und hat die PLZ:" an
Ich checks nich ^^?

EDIT:

funktioniert es vielleicht so:

PHP:
      $message .= "\nNachricht: ";
      $message .= $_REQUEST['nachricht'];
      $message .= "\nPLZ: ";
      $message .= $_REQUEST['plz'];
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Formular fertig - Ein wenig Hilfe

Hi,

in der Zeile nach
PHP:
$message .= "{$_POST['name']} schreibt:\n\n";
löscht du den Inhalt wieder ($message = ""; ), lass die Zeile einfach mal weg! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 

sokie

Mod | Web

AW: Formular fertig - Ein wenig Hilfe

\n steht für einen Zeilenvorschub (n=new line) \n\n erzeugt eben zusätzlich eine leere Zeile.
 

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

ähm ich hab jetzt mal ein wenig gelesen und gebastelt:

stimmt das so: (also es stimmt sicher nicht, weil bei mir keine nachricht ankommt)

Wo ist der Fehler :) ?

PHP:
<?php

if( empty($_POST['name'])   ) 
{ 
    echo " Sie haben nicht alle Felder ausgefullt!!! "; 
}
else
{
    $message = "Bestellung: \n\n";
      $message .= "\nName: ";
      $message .= $_REQUEST['name'];
      $message .= "\nFirma: ";
      $message .= $_REQUEST['firma'];
      $message .= "\nStrasse: ";
      $message .= $_REQUEST['strasse'];
      $message .= "\nPLZ: ";
      $message .= $_REQUEST['plz'];
      $message .= "\nOrt: ";
      $message .= $_REQUEST['ort'];
      $message .= "\nTel: ";
      $message .= $_REQUEST['tel'];
      $message .= "\nFax: ";
      $message .= $_REQUEST['fax'];
      $message .= "\nE-Mail: ";
      $message .= $_REQUEST['mail'];
      $message .= "\nNachricht: ";
      $message .= $_REQUEST['nachricht'];   
  
  $email ="foos@psd.de"; 
  $name = addslashes($_POST['Name']);
  $betreff = "Sie haben eine Nachricht von ".$name." ";

  $header = ("From: " . $email . "\n");
  $header .= ("Reply-To: " . $email . "\n");
  $header .= ("Return-Path: " . $email . "\n");
  $header .= ("X-Mailer: PHP/" . phpversion() . "\n");
  $header .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
  $header .= ("Content-type: text/html\n");

  mail($email, $betreff, $message, $header, "-f foos@psd.de");
}

?>

EDIT:

also funktioniert doch...

Ist das Formular so "gut" ? Fehlt noch was?
 
Zuletzt bearbeitet:

M3g4Star

Nicht mehr ganz neu hier

M3g4Star

Nicht mehr ganz neu hier

AW: Formular fertig - Ein wenig Hilfe

Du weißt doch sicherlich woher deine Daten kommen, da du in "deinem" (copy/paste?) Script auch $_POST verwendest. Dann behalte das auch bei. In $_REQUEST stecken $_POST / $_GET / $_COOKIE.

Außerdem ist es je nach Konfiguration möglich das sich Variablen gegenseitig überschreiben (Standard meiner Meinung nach "$_POST überschreibt $_GET")

Gruß M3g4
 

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

Du weißt doch sicherlich woher deine Daten kommen, da du in "deinem" (copy/paste?) Script auch $_POST verwendest. Dann behalte das auch bei. In $_REQUEST stecken $_POST / $_GET / $_COOKIE.

Außerdem ist es je nach Konfiguration möglich das sich Variablen gegenseitig überschreiben (Standard meiner Meinung nach "$_POST überschreibt $_GET")

Gruß M3g4

Sorry, ich versteh kein Wort, was du meinst! Behalten? Stecken? Am leichtesten blick ich immer durch, wenn ich ein Beispiel bekomme :) , so wie das Chriss1987 oder sokie oben gemacht haben.
 

Chriss1987

me.drinkCoffee();

AW: Formular fertig - Ein wenig Hilfe

Hi,

also statt der Variablen $_REQUEST solltest du $_POST verwenden (nehme mal an in deinem form-Tag steht die Methode POST (<form method="POST" ...>) dann sähe das z.B. so aus:
PHP:
$message .= $_POST['ort'];
Wenn du stattdessen in deinem Formular die Methode GET stehen hast, sieht verwende die Variable $_GET:
PHP:
$message .= $_GET['ort'];

Schöne Grüße aus dem Sauerland!
Chriss

P.S.: bei Request ist es so, dass der Server alle Variablen in einer in der php.ini festgelegten Reienfolge abfragt. Ist z.B. $_GET['var'] und $_POST['var'] vorhanden, haben diese jedoch verschiedene Werte, könnte die Ausgabe dieses Scriptes:
PHP:
echo $_GET['var'];
echo $_POST['var'];
echo $_REQUEST['var'];
so aussehen:
Code:
ich bin der Wert des GET Parameters
in mir, dem POST, steckt ein ganz anderer Wert
in mir, dem POST, steckt ein ganz anderer Wert
Und was letztendlich in $_REQUEST['var'] steht, ist von der jeweiligen php.ini abhängig und unter dem Punkt "variables_order" oder "request_order" (bin mir grad nicht 100% sicher) zu finden...
 

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

Also wenn ich das nun so schreibe: ?

PHP:
<?php

if( empty($_POST['name'])   ) 
{ 
    echo " Sie haben nicht alle Felder ausgefüllt!"; 
}
else
{
  $message .= $_POST['name']; 
  $message .= $_POST['nachricht']; 
  
  $email ="foos@psd.de"; 
  $name = addslashes($_POST['Name']);
  $betreff = "Sie haben eine Nachricht von ".$name." ";
  $header = ("From: " . $email . "\n");
  $header .= ("Reply-To: " . $email . "\n");
  $header .= ("Return-Path: " . $email . "\n");
  $header .= ("X-Mailer: PHP/" . phpversion() . "\n");
  $header .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
  $header .= ("Content-type: text/html\n");

  mail($email, $betreff, $message, $header, "-f foos@psd.de);
}

?>

dann kommt bei mir nur der Text an, welche in die Felder Name und nachricht geschrieben wurde... Aber halt nicht "Name: ..." Nachricht: ..."
---
Das mit "Sie haben nicht alle Felder ausgefüllt" funktioniert irgendwie auch nich mehr :( ?
 

M3g4Star

Nicht mehr ganz neu hier

AW: Formular fertig - Ein wenig Hilfe

Oh man. War also wirklich nur copy / paste

in der Zeile fehlt am Ende das "Anführungszeichen" (hattest du in deinem ersten Code richtig)
PHP:
mail($email, $betreff, $message, $header, "-f foos@psd.de);
Du müsstest somit folglich eine Fehlermeldung bekommen wenn du das Script ausführst.


$message ist deine Nachricht. Wenn du also nur:
PHP:
$message .= $_POST['name']; 
  $message .= $_POST['nachricht'];
rein schreibst wird da auch nichts anderes erscheinen.

siehe erstes Quellcode Posting
PHP:
    ...
      $message .= "\nName: ";
      $message .= $_REQUEST['name'];
      $message .= "\nFirma: ";
      $message .= $_REQUEST['firma'];
    ...
Wenn du das ein wenig übersichtlicher gestaltest versuch es mal so:

PHP:
$message = "Bestellung: \n\n"; 
$message .= "Name: ".$_POST['name']."\n";
$message .= "Firma: ".$_POST['firma']."\n";
 //... hier dann der Rest rein
$message .= "Nachricht: ".$_POST['nachricht']."\n";

ACHTUNG: DAS IST NICHT DER VOLLSTÄNDIGE CODE. LEARNING BY DOING !!!!!!!
 
Zuletzt bearbeitet:

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

Yeah funzt einwandfrei :)

So siehts aus:

PHP:
  <?php

if( empty($_POST['name'])   ) 
{ 
    echo " Sie haben nicht alle Felder ausgefüllt!"; 
}
else
{

$message .= "Name: ".$_POST['name']."\n\n";
$message .= "Firma: ".$_POST['firma']."\n\n";
$message .= "Straße: ".$_POST['strasse']."\n\n";
$message .= "PLZ: ".$_POST['plz']."\n\n";
$message .= "Ort: ".$_POST['ort']."\n\n";
$message .= "Telefon: ".$_POST['tel']."\n\n";
$message .= "Fax: ".$_POST['fax']."\n";
$message .= "E-Mail: ".$_POST['mail']."\n\n";

$message .= "Nachricht: ".$_POST['nachricht']."\n";  
  
  $email ="foos@psd.de"; 
  $name = addslashes($_POST['Name']);
  $betreff = "Sie haben eine Nachricht von ".$name." ";
  $header = ("From: " . $email . "\n");
  $header .= ("Reply-To: " . $email . "\n");
  $header .= ("Return-Path: " . $email . "\n");
  $header .= ("X-Mailer: PHP/" . phpversion() . "\n");
  $header .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
  $header .= ("Content-type: text/html\n");

  mail($email, $betreff, $message, $header, "-f foos@psd.de");
}

?>

Würdet ihr das für einigermaßen "gut" befinden? Also kann man es für eine kleine Website so lassen?

Oder ist es extrem schlecht?

aber danke schon mal...
 

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

Du hast 2. noch nicht beachtet.

selbstverständlich! Nur ist es für einen Laien - wie mich in PHP - nunmal unbeschreiblich schwer, sich durch so eine Seite zu lesen, wenn ich nicht einmal genau weiß nach was ich suche?

Wollte ja nur wissen, ob man es nun so lassen kann oder nicht...
 

M3g4Star

Nicht mehr ganz neu hier

AW: Formular fertig - Ein wenig Hilfe

Anbei ein schönes Beispiel mit Erklärungen jetzt nicht direkt aus der Doku



Evtl gibt es auch bei psd-tutorial einen vergleichbaren Artikel. Der den ich gefunden habe sichert die Eingaben nicht ab. Ist somit nicht empfehlenswert.

Gruß M3g4
 

Foos

Member

AW: Formular fertig - Ein wenig Hilfe

hmmm also dieser Artikel hat mir nich soo richtig weitergeholfen :)

Was meint ihr?
Taugt mein Formular nun für die kleine Website zwischendurch?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.182
Beiträge
2.582.055
Mitglieder
67.254
Neuestes Mitglied
MKP
Oben