Antworten auf deine Fragen:
Neues Thema erstellen

Problem mit Kontaktformular

Zero-PSD

Selbsternannter Held

Hallo Leute,
wieder eine Person, die mit einem Kontaktformular Probleme hat :rolleyes:

Und zwar handelt es sich um folgendes: Ich habe ein Formular, welches an sich auch gut läuft und seinen Zweck erfüllt. Allerdings bin ich nicht zufrieden mit dem Text, den ich in meiner Mail erhalte, da er leicht "schwer" zu lesen ist.

Hier das Beispiel: Nachdem man die folgenden Felder (Name, Firma, eMail, Betreff (Optionsfeld) und Nachricht) ausgefüllt hat, bekommt man einen derartigen Text zugeschickt.
Sie haben folgende Nachricht erhalten: \n\nName: Hans\nFirma: Musterfirma\nEmail: zer0@arcor.de\nBetreff: Anderes\nMessage: Dieses Formular funzt nicht so wirklich..\nFirma: \n\nDatum/Zeit: 27.12.2008 01:41:46
Alles in einer Zeile hintereinander weg. Das kann ja irgendwie nicht Sinn der Sache sein :p

Besser hingegen wäre es, wenn die Information folgender Maßen angezeigt werden würde:
Sie haben folgende Nachricht erhalten:
Name: Hans
Firma: Musterfirma
e-Mail: blub@wasserwelt.de
Betreff: Anderes (oder welches Optionsfeld auch gewählt wurde)
Nachricht: Dieses Formular funzt nicht so wirklich..

Ohne diese ganzen /n's und das es alles in einer Zeile hinunter geleiert wird.

Mein Code ist folgender:
PHP:
<?php 

$Empfaenger = 'meine@adresse.de'; 

if($_REQUEST['Send']) 
{ 
   if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Message']) || empty($_REQUEST['Firma'])) 
   { 
      header('Location: alle-felder.html');; 
   } 
   else 
   { 
      $Mailnachricht = 'Sie haben folgende Nachricht erhalten: \n\n'; 
      while(list($Formularfeld, $Wert)=each($_REQUEST)) 
      { 
         if($Formularfeld!='Send') 
         { 
            $Mailnachricht .= $Formularfeld.': '.$Wert.'\n'; 
         } 
      } 
      $Mailnachricht .= 'Firma: '.$_REQUEST['firma'].'\n'; 
      $Mailnachricht .= '\nDatum/Zeit: '; 
      $Mailnachricht .= date('d.m.Y H:i:s'); 
      $Mailbetreff = 'Kontakt: '; 
      $Mailbetreff .= $_REQUEST['Betreff']; 
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, 'From: '.$_REQUEST['Email']); 
      header('Location: danke.html'); 
   } 
} 
else 
{ 
   header('Location: fehler.html'); 
} 

?>

Jetzt weiß ich nur nicht so wirklich, was an meinem Code so falsch ist.. Könnte mir da vielleicht jemand mit helfen? Bin über jede Hilfe erfreut :D

Festliche Grüße,
Zero
 

B3nni

Nicht mehr ganz neu hier

AW: Problem mit Kontaktformular

Moin,

also nen Fehler kann ich in dem Code auch nicht entdecken,
versuch es mal mit " " anstatt mit den ' '

mfg
 

Frit

Hardcore-Lurker

AW: Problem mit Kontaktformular

Nochma Moin,

ich bin jetzt kein ausgesprochener PHPler (mache das meiste in ASP und hab' auch keine meiner PHP Scripts zur Anschauung zur Hand), aber gibt's da nicht auch einen Umbruch über Chr(10)?

Wenn nicht, klingt mir die Antwort meines Vorredners vernünftig! ;-)
 

Avalon

Ritter aus Leidenschaft

AW: Problem mit Kontaktformular

Das Problem hierbei wird sein, dass die Zeilenumbrüche " \n " ignoriert werden vom PHP-Parser. Versuch mal " \r\n " anstatt nur " \n " anzugeben?
 

ismX

seolar

AW: Problem mit Kontaktformular

guten morgen

einen fehler kann ich dir auf anhieb nennen, womit der php-interpreter durcheinander kommt. normalerweise solltest du dafür auch ne errormsg erhalten haben. wenn nicht, dann konfigurier dir mal die php.ini (falls das möglich sein sollte).

in zeile 5 hast du zwei semikolon benutzt zum abschluss der anweisung

PHP:
if($_REQUEST['Send'])  
{  
   if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Message']) || empty($_REQUEST['Firma']))  
   {  
      header('Location: alle-felder.html');;  
   }

(betreffende zeile hab ich dir mal kurisv/fett hervorgehoben)

den rest schaue ich mir gleich nochmal genauer an.

viel spaß beim kontaktformularen...
 

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Guten Morgen alle zusammen,
sitze leider gerade im Zug, werde aber sobald ich am Rechner sitze die genannten Sachen einmal ausprobieren.

Die Zeilenumbrüche wären mir extrem wichtig, ansonsten ist das Zeug ja unlesbar..
Bin gespannt, ob die /r/n Variante funktioniert.

Ebenfalls werde ich es mal mit " statt nur ' versuchen.

Ich bedanke mich derweil schon einmal bei euch allen. Ich melde mich später noch einmal mit dem Ergebnis.

Gruß,
Pierre
 

NiPicS

Nicht mehr ganz neu hier

AW: Problem mit Kontaktformular

hallo,

du kannst auch einfach so deine nachricht verfassen, im dreamweaver:

$mailnachricht="Guten Morgen Herr xY

Datum: xy.xy.xyxy";

die zeilenumbrüche und abstände in der email werden übernommen

aber die lösung ist ziemlich unprofessionell :D
 

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Hallo Leute,
ich habe endlich das Problem der ganzen Sache gefunden!

Es lag wirklich an den ' statt " und \n statt \r\n. Nun habe ich überall " und für die Zeilenumbrüche \r\n benutzt und das ganze Formular scheint irgendwie zu funzen.

Ich bedanke mich vielmals bei euch allen für eure Hilfe!

Gruß,
Pierre
 

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Und ich habe jetzt doch noch eine Frage.. eine kleine aber irgendwie komische :D

Nun, wenn man alle Felder ausfüllt, bekomme ich diese Nachricht:

Sie haben folgende Nachricht erhalten:

Name: Max Mustermann
Firma: MusterFirma
Email: muster@mail.de
Betreff: Anderes
Message: Es läuft?
Firma:

Datum/Zeit: 28.12.2008 14:58:05

Wieso packt er denn die Firma noch einmal unten drunter?

Der Code sieht nun wie folgt aus, verändert hat sich nicht wirklich was:
PHP:
<?php 

$Empfaenger = "meine@adresse.de"; 

if($_REQUEST["Send"]) 
{ 
   if(empty($_REQUEST["Name"]) || empty($_REQUEST["Firma"]) || empty($_REQUEST["Email"]) || empty($_REQUEST["Message"])) 
   { 
      header("Location: alle-felder.html");
   } 
   else 
   { 
      $Mailnachricht = "Sie haben folgende Nachricht erhalten: \r\n\r\n"; 
      while(list($Formularfeld, $Wert)=each($_REQUEST)) 
      { 
         if($Formularfeld!="Send") 
         { 
            $Mailnachricht .= $Formularfeld.": ".$Wert."\r\n"; 
         } 
      } 
      $Mailnachricht .= "Firma: ".$_REQUEST["firma"]."\r\n"; 
      $Mailnachricht .= "\r\nDatum/Zeit: "; 
      $Mailnachricht .= date("d.m.Y H:i:s"); 
      $Mailbetreff = "Kontakt: "; 
      $Mailbetreff .= $_REQUEST["Betreff"]; 
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST["Email"]); 
      header("Location: danke.html"); 
   } 
} 
else 
{ 
   header("Location: fehler.html"); 
} 

?>

Ich finde irgendwie diesen kleinen Fehler nicht?

Wäre super, wenn da jemand noch einmal Zeit findet.

Gruß,
Pierre
 

netbandit

Aktives Mitglied

AW: Problem mit Kontaktformular

Da Du Firma schon in der Whileschleife aufgreifst, kannst Du Dir folgende Zeile sparen:

PHP:
$Mailnachricht .= "Firma: ".$_REQUEST["firma"]."\r\n";

P.S.: $_REQUEST kann alles sein, ist böse. Benutze stattdessen $_POST, $_GET, usw. Gar nicht erst angewöhnen, vergiss einfach dass es so etwas gibt
 

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Jeppa, stimmt.. Habe es herausgenommen und jetzt habe ich sie nicht mehr doppelt.

Ich bedanke mich bei euch allen für die starke Hilfe. Das Formular funktioniert jetzt und alle sind glücklich :D

Guten Rutsch wünsche ich allen.
 

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Sorry für das Doppelposting, aber es wurden von meinem Formular erneut Fragen aufgeworfen :D

Sie haben folgende Nachricht erhalten:

Name: JHVew HBd
Firma: HJhbchjwec
Email: wejhb@ejhb.de
Betreff: Katalog
Message: ebkvewbvklerjvbelvkjeblvewvewbkvire
KT_JSESSIONID: 43792710B1A614CAFADAEFB0C409D55D.koi

Datum/Zeit: 31.12.2008 11:27:19

Was zum Henker soll diese hervorgehobene Zeile? Habe das gleiche Formular bei 'nem Freund auf die Seite gepackt, nur er bekommt jetzt irgendwie diese Zeile auch mitgeschickt?
Mir würde zu Beginn reichen, wenn mir einer erklärt wofür das überhaupt steht :rolleyes:

Dann habe ich noch eine kleine Frage: Wie bringe ich Umlaute im Formular unter? Wenn mit einer zum Beispiel ein Ö schickt kommt leider keines an?

Danke euch.

Guten Rutsch.

Hier noch der Code, welcher sich nicht verändert hat eigentlich:
PHP:
<?php 

$Empfaenger = "bendzinski@final-creation.de"; 

if($_REQUEST["Send"]) 
{ 
   if(empty($_REQUEST["Email"]))
   { 
      header("Location: alle-felder.html");
   } 
   else 
   { 
      $Mailnachricht = "Folgender Kontakt möchte den Newsletter erhalten: \r\n\r\n"; 
      while(list($Formularfeld, $Wert)=each($_REQUEST)) 
      { 
         if($Formularfeld!="Send") 
         { 
            $Mailnachricht .= $Formularfeld.": ".$Wert."\r\n"; 
         } 
      } 
      $Mailnachricht .= "\r\nDatum/Zeit: "; 
      $Mailnachricht .= date("d.m.Y H:i:s"); 
      $Mailbetreff = "Newsletter (Peddinghaus)";  
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST["Email"]); 
      header("Location: danke.html"); 
   } 
} 
else 
{ 
   header("Location: fehler.html"); 
} 

?>
 
Zuletzt bearbeitet:

Zero-PSD

Selbsternannter Held

AW: Problem mit Kontaktformular

Da magst du ja gar nicht mal falsch mit liegen, dennoch stellt sich dann die Frage, wo diese komplette Zeile herkommt?
Vor allem war die ja vorher auch nicht da, und auf einmal bekomme ich da so eine Mitteilung.

Dazu kommt, dass ich .koi nicht einmal kenne, was mich ein wenig beunruhigt :rolleyes:

Vielleicht ist das mit dem POST und GET gar nicht mal so verkehrt, wie du sagst ;)
 

netbandit

Aktives Mitglied

AW: Problem mit Kontaktformular

Standardmäßig enthält $_REQUEST -> $_POST, $_GET, $_COOKIE. Je nach Servereinstellung wären sicherlich auch Sachen wie $_SESSION usw. möglich.

Am leichtesten lässt sich das feststellen indem Du vielleicht einmal Deine Daten an eine info.php sendest, so ziemlich am Ende der Seite stehen die "PHP Variables":

info.php

PHP:
<?
echo phpinfo();
?>
 

nobody09

Noch nicht viel geschrieben

AW: Problem mit Kontaktformular

Code:
while(list($Formularfeld, $Wert)=each($_REQUEST))  
      {  
         if($Formularfeld!="Send")  
         {  
            $Mailnachricht .= $Formularfeld.": ".$Wert."\r\n";  
         }  
      }

Wie netbandit bereits gesagt hat steckt in $_REQUEST alles mögliche.
Da das Array völlig vertrauensvoll von dir komplett durchlaufen wird, hängt sich wohl auch die Session ID aus den Cookies mit in deine Mail.

Lass dir die Variable mal mit print_r() oder var_dump() ausgeben und ich denke du wirst eben dise Werte sehen. Wenn du nur deine Formulardaten gelistet haben willst könntest du folgendes machen:

HTML:
Code:
<form action="deinscript.php" method="post">
Name:<input type="text" name="contact[name]">
Message: <textarea name="contact[message]"></textarea>
<!-- usw. usw. -->
</form>

PHP:
Code:
$formdata = $_POST["contact"];
foreach($formdata as $field=> $value) {
     $mailmessage .= "$field: $value \n";
}

So hast du nur die Daten, die du benötigst in dem Array und kannst es durchlaufen (mit foreach vergiss "each" und "list" das war vll bei PHP 3 noch cool ist aber mehr als überholt ;) ) ohne gefahr zu laufen unerwarteten Werten zu begegnen.
 
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

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben