Formular Datenübermittlung

akdesign

Erfahrenes Mitglied
Hallo Leute,

hab grad angefangen mit PHP.

Bin auch schon ganz stolz, dass ich soweit gekommen bin.

Folgende Codes:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Kontaktformular KUHRT</title>
<link href="Kontaktformular.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Stil1 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9px;
	line-height: 5px;
}
.Stil4 {
	font-variant: normal;
	text-transform: none;
	color: #336699;
	font-style: normal;
	line-height: normal;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9px;
	font-weight: normal;
}
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Stil5 {font-size: 10px}
body {
	background-color: #ffffff;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>
<form action="formular_kuhrt.php" method="post" name="Kontaktformular_KUHRT" target="_blank" id="Kontaktformular_KUHRT">
  <table width="550" border="0" align="center" cellspacing="0" bgcolor="#ffffff">
    <tr>
      <td height="30" class="formular">&nbsp;</td>
      <td><input type="hidden"  value="Anfrage an KUHRT Verzahnungstechnik"></td>
    </tr>
    <tr>
      <td width="125" height="30" class="formular">Vorname*</td>
      <td width="421"><input name="Vorname" value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">Name*</td>
      <td><input name="Name"  value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">Unternehmen*</td>
      <td><input name="Unternehmen" value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">Position</td>
      <td><input name="Position"  value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">Adresse*</td>
      <td><input name="Adresse" value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">PLZ/Ort*</td>
      <td><input name="Postleitzahl" value="" size="6" maxlength="5">
&nbsp;      <input name="Ort" value="" size="22"></td>
    </tr>
    <tr>
      <td height="22"><span class="formular"> Telefon<br>
        <span class="Stil1"><span class="Stil4">(falls R&uuml;ckruf gew&uuml;nscht)</span></span>        </span><span class="Stil1"><br>
      </span> </td>
      <td height="30"><input name="Telefon" value="" size="31"></td>
    </tr>
    <tr>
      <td height="30" class="formular">Telefax</td>
      <td height="30"><input name="Telefax" value="" size="31"></td>
    </tr>
    <tr>
      <td height="34" class="formular">e-Mail*</td>
      <td height="30"><input name="email" value="" size="31"></td>
    </tr>
    <tr>
      <td height="142" valign="top" class="formular"><br>
      Meine Nachricht</td>
      <td valign="middle"><textarea name="Nachricht" cols="40" rows="8"></textarea></td>
    </tr>
    <tr>
      <td height="21" valign="top" class="formular">&nbsp;</td>
      <td height="30" valign="top"><span class="Stil4">* Diese Felder m&uuml;ssen ausgef&uuml;llt werden!</span></td>
    </tr>
    <tr>
      <td height="21" valign="top" class="formular">&nbsp;</td>
      <td height="30" valign="top"><input name="senden" type="image" src="images/senden.gif" ></td>
    </tr>
  </table>
</form>
</body>
</html>

und
PHP:
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #336699;
}
-->
</style>
<?php

### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'andrea.kessler@hope-communications.com';


# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Anfrage an KUHRT Verzahnungtechnik';


# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ":\t";

### Ende Konfiguration ###

if($_POST) 
	{


    // Pr¸fung der Angaben nach dem Senden



    if(!$Vorname) $fehler[] = "Bitte geben Sie Ihren Vornamen ein";
	
	if(!$Name) $fehler[] = "Bitte geben Sie Ihren Namen ein";

    if(!$Unternehmen) $fehler[] = "Bitte geben Sie den Namen Ihres Unternehmens ein";
	
	if(!$Adresse) $fehler[] = "Bitte geben Sie Ihre Adresse ein";
	
	if(!$Postleitzahl) $fehler[] = "Bitte geben Sie Ihre Postleitzahl ein";
	
	if(!$Ort) $fehler[] = "Bitte geben Sie Ihren Wohnort ein";

    if(!$email) $fehler[] = "Bitte geben Sie Ihre e-Mail-Adresse ein";

    
	if(!count($fehler)) { // Sendet Email, wenn Pr¸fung "ok"



     echo("<p>Ihre Nachricht wurde erfolgreich versendet.</p>
	  
	 Vielen Dank f&uuml;r Ihr Interesse.</p>
	  
	 <strong> Ronald Kuhrt</strong><p>\n\n");

	 } else { // Fehlerausgabe, wenn Felder leer waren
   

      echo "Beim Senden traten folgende Fehler auf:";
      echo "<ul><li>".implode("<li>",$fehler)."</ul>";
	  return false;
    }
}
    

 	if($_POST) 
	{
 	 $strMailtext = "Sehr geehrter Herr Kuhrt,\n\n";
	
	 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$email);
	 exit;
}


?>

So, jetzt weiss ich aber nicht, wie die Daten (also Name, Adresse etc.) übermittelt werden.
Hänge jetzt irgendwo ab hier
PHP:
if($_POST) 
	{
 	 $strMailtext = "Sehr geehrter Herr Kuhrt,\n\n";
	
	 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$email);
	 exit;
}

Und dann soll das ganze auch noch so angeordnet sein, dass natürlich erst die Nachricht kommt, also beginnende mit: "Sehr geehrter Herr Kuhrt,

dann kommt die "Nachricht" und dann am Ende die Daten (Name , Adresse etc.)

Könnt ihr mir weiterhelfen.

Danke schon mal.

*akdesign
 
akdesign hat gesagt.:
PHP:
]if(!$Vorname) $fehler[] = "Bitte geben Sie Ihren Vornamen ein";
 
    if(!$Name) $fehler[] = "Bitte geben Sie Ihren Namen ein";
 
if(!$Unternehmen) $fehler[] = "Bitte geben Sie den Namen Ihres Unternehmens ein";
 
    if(!$Adresse) $fehler[] = "Bitte geben Sie Ihre Adresse ein";
 
    if(!$Postleitzahl) $fehler[] = "Bitte geben Sie Ihre Postleitzahl ein";
 
    if(!$Ort) $fehler[] = "Bitte geben Sie Ihren Wohnort ein";
 
if(!$email) $fehler[] = "Bitte geben Sie Ihre e-Mail-Adresse ein";
Was mir gleich auffällt, dass die die Formularelemente nur mit dem Namen aufrufst. Wenn register:globals auf off steht (meistens Standart), dann erkennt PHP die Variablen nicht. Rufe liber alle Vriablen gleich über die Supergloble $_POST[] auf:
PHP:
]if(!$Vorname) $fehler[] = "Bitte geben Sie Ihren Vornamen ein";
    if(!$_POST['$Name']) $fehler[] = "Bitte geben Sie Ihren Namen ein";
    //usw ...
akdesign hat gesagt.:
PHP:
if($_POST) 
    {
     $strMailtext = "Sehr geehrter Herr Kuhrt,\n\n";
 
     mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$email);
     exit;
}
Und dann soll das ganze auch noch so angeordnet sein, dass natürlich erst die Nachricht kommt, also beginnende mit: "Sehr geehrter Herr Kuhrt,

dann kommt die "Nachricht" und dann am Ende die Daten (Name , Adresse etc.)
Du könntest die Daten einfach an die Nachricht mit . (Punkt) anhängen:
PHP:
$strMailtext.="Name:\t".$name:"\nUnternehmen:\t".$unternehmen; //usw
 
Ähm, sorry, wahrscheinlich blöde Frage. Wie/wo anhängen?

Ich habe:
PHP:
if($_POST) 
    {
     $strMailtext = "Sehr geehrter Herr Kuhrt,\n\n";

und dann?
 
Habs doch noch irgendwie hinbekommen.

So:
PHP:
$strMailtext = "Sehr geehrter Herr Kuhrt,\n\n" . $Nachricht . "\n\nMeine Daten:\n\n" . $Vorname . "\n" . $Name . "\n";

Jetzt noch eine Schönheitskorrektur. Im Moment kommts so raus:

Vorname
Name

Durch welches Zeichen ersetze ich "\n" für ein Leerzeichen?
Also dass es so kommt: Vorname Name


Und zu Deinem Tip
Was mir gleich auffällt, dass die die Formularelemente nur mit dem Namen aufrufst. Wenn register:globals auf off steht (meistens Standart), dann erkennt PHP die Variablen nicht. Rufe liber alle Vriablen gleich über die Supergloble $_POST[] auf:
Danke übrigens, bin für jeden Tip dankbar.

Wie schreibe ich jetzt noch das um:
PHP:
	if(!count($fehler)) { // Sendet Email, wenn Pr¸fung "ok"

*akdesign
 
akdesign hat gesagt.:
Durch welches Zeichen ersetze ich "\n" für ein Leerzeichen?
Also dass es so kommt: Vorname Name
Mit einem Leerzeichen. :confused:
\n leitet eine neue Zeile ein.

Und zu Deinem Tip
Wie schreibe ich jetzt noch das um:
PHP:
    if(!count($fehler)) { // Sendet Email, wenn Pr¸fung "ok"
Musst du nicht umschreiben, da du die Variable eh im Skript definierst, sie kommt ja nicht von einer anderen Seite
 
birnkammer hat gesagt.:
Mit einem Leerzeichen. :confused:
\n leitet eine neue Zeile ein.

Hm, habs grad so:
PHP:
$strMailtext = "Sehr geehrter Herr Kuhrt,\n\n" . $Nachricht . "\n\nMeine Daten:\n\n" . $Vorname . "\n" . $Name . "\n"

Einfach \n raus ist halt nicht.
PHP:
$Vorname .  . $Name . "\n"

Dachte, vielleicht durch Komma trennen, geht aber auch nicht.
PHP:
$Vorname . , . $Name . "\n"

birnkammer hat gesagt.:
Musst du nicht umschreiben, da du die Variable eh im Skript definierst, sie kommt ja nicht von einer anderen Seite
Geht aber irgendwas schief. Wenn ich jetzt in ein Pflichtfeld nichts eintrage, kommt die Fehlermeldung für alle Felder.
 
akdesign hat gesagt.:
Einfach \n raus ist halt nicht.
PHP:
$Vorname .  . $Name . "\n"

OK, habs. Großer Denkfehler:
Jetzt so
PHP:
$strMailtext = "Sehr geehrter Herr Kuhrt,\n\n" . $Nachricht . "\n\nMeine Daten:\n\n" . $Vorname . " " . $Name . "\n" . $Unternehmen . "\n"

Das Prob hab ich aber trotzdem:
Geht aber irgendwas schief. Wenn ich jetzt in ein Pflichtfeld nichts eintrage, kommt die Fehlermeldung für alle Felder.
 
Zurück