Kontaktformular – auf einem Server gehts auf dem anderen nicht

akdesign

Erfahrenes Mitglied
Hey Leute,

bin echt am Verzweifeln.

Hab dieses Kontaktformular:
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>
<meta name="keywords" content="Verzahnung, Verzahnungstechnik, drehen, fräsen, abwälzstoßen, abwälzfräsen, rundschleifen, senkerodieren, drahterodieren, Elektroerosion, räumen, stoßen, CNC, 5 Achsen, Stirnräder, Zahnriemenräder, Poly Chain, HDT Profil, Kettenräder, Kerbverzahnung, Zahnwellen, Keilwellen, Luftfahrt, Prototyp, CAD, Oberflächenvergütung, spanende Bearbeitung, spanend, sicherheitskritisch, Kegelrad, Kegelräder, Stirnrad, Stirnräder, Schrägverzahnung, zyklo palloid, palloid, Schneckenrad, Schneckenräder, Schneckenwelle, Hohlrad, Hohlräder, Zahnflanken, Innenzahnkranz, Innenzahnkränze, Schrägverzahnung, Gleason-Coniflex, Gleason, Klingelnberg, Schraubenrad, Schraubenräder, Zahnstange, Zahnnaben, Zahnwellen, Steckverzahnung, Antriebstechnik,">
<meta name="description" content="Unser Unternehmen ist auf die Fertigung von mechanischen Teilen für höchste Ansprüche spezialisiert. Komplettbearbeitungen in kleinen bis mittleren Losgrößen sowie der Prototypenbau gehören neben der Verzahnungstechnik zu unseren Schwerpunkten. Das Engagement und die Kompetenz unseres Teams versetzen uns in die Lage, auf Ihre Erwartungen schnell, flexibel und zuverlässig einzugehen. Nehmen Sie uns beim Wort: Wir freuen uns auf die Herausforderung!
">
<meta name="revisit-after" content="7 days">
<meta http-equiv="reply-to" content="kuhrt@verzahnungstechnik.de">
<meta name="author" content="HOPE: Holtzweiler Perspecitves KG">
<meta name="content-language" content="de">
<meta name="publisher" content="HOPE: www.hope-communications.com">
<meta name="copyright" content="KUHRT Verzahnungstechnik">
<meta name="audience" content="Alle">
<meta name="page-type" content="">
<meta name="page-topic" content="">
<meta name="robots" content="index, follow">
<meta name="expires" content="0">
<link href="Kuhrt_vonHOPE/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: #cccccc;
	border-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 onload="window.resizeTo(590, 780)">
<form action="formular_kuhrt.php3" method="post" name="Kontaktformular_KUHRT" target="_blank" id="Kontaktformular_KUHRT">
  <table width="501" align="center" cellspacing="0" border="0"  cellpadding="0"  bgcolor="#ffffff">
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">&nbsp; </td>
      <td><img src="/images/KUHRT_Logo.gif" width="200" height="83" align="right"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">&nbsp;</td>
      <td><input type="hidden"  value="Anfrage an KUHRT Verzahnungstechnik"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td width="128" height="30" class="formular">Vorname*</td>
      <td width="348"><input name="Vorname" value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">Name*</td>
      <td><input name="Name"  value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">Unternehmen*</td>
      <td><input name="Unternehmen" value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">Position</td>
      <td><input name="Position"  value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">Adresse*</td>
      <td><input name="Adresse" value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <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 width="7">&nbsp;</td>
      <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 width="7" class="formular">&nbsp;</td>
      <td height="30" class="formular">Telefax</td>
      <td height="30"><input name="Telefax" value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" class="formular">&nbsp;</td>
      <td height="34" class="formular">e-Mail*</td>
      <td height="30"><input name="email" value="" size="31"></td>
    </tr>
    <tr>
      <td width="7" valign="top" class="formular">&nbsp;</td>
      <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 width="7" valign="top" class="formular">&nbsp;</td>
      <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 width="7" valign="top" class="formular">&nbsp;</td>
      <td height="21" valign="top" class="formular">&nbsp;</td>
      <td height="30" valign="top"><p>
        <input name="senden" type="image" src="/images/senden.gif" >
      </p>
        <p>&nbsp;        </p></td>
    </tr>
  </table>
</form>
</body>
</html>


und:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
	   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Vielen Dank</title>
<meta name="Keywords" content="Verzahnung, Verzahnungstechnik, drehen, fr&auml;sen, abw&auml;lzsto&szlig;en, abw&auml;lzfr&auml;sen, rundschleifen, senkerodieren, drahterodieren, Elektroerosion, r&auml;umen, sto&szlig;en, CNC, 5 Achsen, Stirnr&auml;der, Zahnriemenr&auml;der, Poly Chain, HDT Profil, Kettenr&auml;der, Kerbverzahnung, Zahnwellen, Keilwellen, Luftfahrt, Prototyp, CAD, Oberfl&auml;chenverg&uuml;tung, spanende Bearbeitung, spanend, sicherheitskritisch, Kegelrad, Kegelr&auml;der, Stirnrad, Stirnr&auml;der, Schr&auml;gverzahnung, zyklo palloid, palloid, Schneckenrad, Schneckenr&auml;der, Schneckenwelle, Hohlrad, Hohlr&auml;der, Zahnflanken, Innenzahnkranz, Innenzahnkr&auml;nze, Schr&auml;gverzahnung, Gleason-Coniflex, Gleason, Klingelnberg, Schraubenrad, Schraubenr&auml;der, Zahnstange, Zahnnaben, Zahnwellen, Steckverzahnung, Antriebstechnik,">
<meta name="Description" content="Unser Unternehmen ist auf die Fertigung von mechanischen Teilen f&uuml;r h&ouml;chste Anspr&uuml;che spezialisiert. Komplettbearbeitungen in kleinen bis mittleren Losgr&ouml;&szlig;en sowie der Prototypenbau geh&ouml;ren neben der Verzahnungstechnik zu unseren Schwerpunkten. Das Engagement und die Kompetenz unseres Teams versetzen uns in die Lage, auf Ihre Erwartungen schnell, flexibel und zuverl&auml;ssig einzugehen. Nehmen Sie uns beim Wort: Wir freuen uns auf die Herausforderung!
">
<meta name="revisit-after" content="7 days">
<meta http-equiv="Reply-to" content="kuhrt@verzahnungstechnik.de">
<meta name="author" content="HOPE: Holtzweiler Perspecitves KG">
<meta name="publisher" content="HOPE: www.hope-communications.com">
<meta name="copyright" content="KUHRT Verzahnungstechnik">
<meta name="audience" content="Alle">
<meta name="page-type" content="">
<meta name="page-topic" content="">
<meta name="robots" content="index, follow">
<meta name="Expires" content="0">
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #336699;
}
-->
</style>
</head>

<body onload="window.resizeTo(590, 300)">
<?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 von Website";


# 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 die Adresse ein";
	
	if(!$Postleitzahl) $fehler[] = "Bitte geben Sie die Postleitzahl ein";
	
	if(!$Ort) $fehler[] = "Bitte geben Sie den Ort 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>
	  
	 <p>Vielen Dank f&uuml;r Ihr Interesse.</p>
	  
	 <p><strong> KUHRT Verzahnungstechnik</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 = "Meine Nachricht:\n\n" . $Nachricht . "\n\n\nMeine Daten:\n\n" . $Vorname . " " . $Name . "\n" . $Unternehmen . "\n" . $Position . "\n" . $Adresse . "\n" . $Postleitzahl . " " . $Ort . "\n\n" . $email . "\n";
	
	 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$email); 
	 exit;
}


?>
</body>
</html>


So, das ganze funktioniert auf unserem Server wunderbar.

Jetzt ist unser Kunde aber zu einem anderen Provider gewechselt, und da geht nix mehr.

Bei denen kommt diese Fehlermeldung:
Parse error: parse error in /home/strato/www/fr/www.friedrichkuhrt.de/htdocs/formular_kuhrt.php3 on line 1.

Hää, da ist aber nix.

Um das ganze noch kurioser zu machen:
Egal welche PHP-Version ich nehme, ich hab jedes Mal ein anderes Problem.


Hat jemand eine Idee.

Wär euch echt dankbar.
 
Ja, ich bin mir schon auch ziemlich sicher, dass es an der Version liegt.

Also unser Provider arbeitet so viel ich weiss mit 3 oder 4. Also auch nicht gerade super aktuell.

Und der andere Provider arbeitet angeblich mit 3, 4.1, 4.4.x und 5 an.


Ich hab schon alle Versionen versucht, aber wie gesagt, hab jedesmal eine neue seltsame Geschichte
 
Hallo!

Kann auch daran liegen, das register_globals in der Konfiguration auf "off" steht. Ist standardmäßig ab einer 4er Version so voreingestellt, davor war es "on".

Über die Namen, die Du im Formular vergibst (Bsp. Vorname), kann dann nicht mehr (global) zugegriffen werden.

Meiner Meinung nach müßtest Du die Variablen im Skript über $_POST['Vornamen'] überprüfen. Eine Prüfung, ob der $_POST Array vorhanden ist, ist überflüssig, den der ist bei jedem Formular, dass per method="post" vorhanden. Wenn nichts übergeben wurde enthält er doch zumindest das Element [submit]=>"absenden" o.ä.

Zum Absendebutton würde ich erher so etwas verwenden:
HTML:
<button type="submit" name="submit" value="Absenden">
<img src="button_send.png" width="30" height="30" alt="Senden" />Senden
</button>

Grüße

Martin
 
Hhm, also bin nicht grad die Leuchte in PHP.
Hab mir mein Formular so zusammengewurschtelt. War ganz glücklich, dass das dann irgendwann mal so toll funktioniert hat.

Jetzt das ganze Skript umzuschreiben, na ob das was wird.

Aber trotzdem, wenn die angeblich auch mit PHP3 arbeiten (hier deren Zitat: Ab dem PowerWeb Paket A können Sie für Ihren Webauftritt neben den PHP-Versionen 3 und 4.1 auch die neuen Versionen 4.4.x und 5 verwenden.), dann sollte es doch funktionieren.

Ich verstehs nicht.
 
änder die php-file von "php3" in "php" um und verlink die html bei <form ... action="....php" ...> neu. Hab dein script auf meinem server ausprobiert, sollte laufen...
 
Zuletzt bearbeitet:
Ja, das ist ja meine eigentliche Datei, die auf unserem Server auch einwandfrei läuft.

Hier hab ich dann das Problem, dass meine "Vielen Dank"-Seite leer kommt. Und zwar immer, auch wenn eigentlich eine Fehlerseite kommen sollte. Geschickt wird in dem Fall nichts.


Dann gibt es eben bei diesem anderen Anbieter diese Einstellungsmöglichkeiten:
"Hier können Sie zuordnen, welche PHP-Dateiendungen mit welcher PHP-Version verarbeitet werden sollen."

Und das hab ich alles schon versucht.
• bei Verarbeitung in Version 3 kommt wie eben beschrieben die leere "Vielen-Dank"-Seite
• bei Verarbeitung in Version 4.1 kommt die Fehlermeldung: bla bla bla Method POST is not allowed
• bei Verarbeitung in Version 4.4.1 und 5.1.1 kommt immer meine Vielen-Dank-Seite mit allen Fehlermeldungen (also alle Pflichtfelder nicht ausgefüllt) und auch hier wird letztendlich nichts geschickt.

Deswegen bin ich ja so ratlos, weil ich schon alles probiert hab.
 
deine vielen-dank seite ist doch die php-seite, und wenn die nicht angezeigt wird, oder auch nichts angezeigt wird, dann ist die sicherlich nicht fehlerfrei ^^

hast du es mal ausprobiert, die datei-endung in .php zu ändern und die html anzupassen?
 
Ich fass mal zusammen: Du sollst deine Dateien umbenennen. Die Endung .php3 sollte .php lauten (wegen der Kompatibilität zu neueren Versionen).

Dadurch ändert sich folgende:
PHP:
<form action="formular_kuhrt.php3" method="post" name="Kontaktformular_KUHRT" target="_blank" id="Kontaktformular_KUHRT">
in
PHP:
<form action="formular_kuhrt.php" method="post" name="Kontaktformular_KUHRT" target="_blank" id="Kontaktformular_KUHRT">

Dann ist das Problem mit dem register_globals. Wenn es auf OFF steht, muss man auf das Textfeld "Vorname" nicht mit $Vorname, sondern mit $_POST["Vorname"] zugreifen. $_POST["vorname"] geht auch, wenn register_globals auf ON steht. Dadurch ändert sich dein 2. Script wie folgt:
PHP:
<?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 von Website";


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

### Ende Konfiguration ###

if(isset($_POST["Vorname"]) && isset($_POST["email"]))  //hier würd ich alle Felder reinsetzen!
    {


    // Prüfung der Angaben nach dem Senden



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

    if(!$_POST["Unternehmen"])
      $fehler[$count($fehler)] = "Bitte geben Sie den Namen Ihres Unternehmens ein";
    
    if(!$_POST["Adresse"])
      $fehler[$count($fehler)] = "Bitte geben Sie die Adresse ein";
    
    if(!$_POST["Postleitzahl"])
      $fehler[$count($fehler)] = "Bitte geben Sie die Postleitzahl ein";
    
    if(!$_POST["Ort"])
      $fehler[$count($fehler)] = "Bitte geben Sie den Ort ein";

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

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



     echo("<p>Ihre Nachricht wurde erfolgreich versendet.</p>
      
     <p>Vielen Dank f&uuml;r Ihr Interesse.</p>
      
     <p><strong> KUHRT Verzahnungstechnik</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 = "Meine Nachricht:\n\n" . $Nachricht . "\n\n\nMeine Daten:\n\n" . $Vorname . " " . $Name . "\n" . $Unternehmen . "\n" . $Position . "\n" . $Adresse . "\n" . $Postleitzahl . " " . $Ort . "\n\n" . $email . "\n";
    
     mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$email); 
     exit;
}


?>
Das müsste dann sowohl auf dem alten als auch auf dem neuen Server laufen.

Des weiteren würde ich dir empfehlen, das PHP Manual zu benutzen und einzelne Funktionen nachschauen, da stehen auch viele Tipps drin.



Gruß Radhad

PS: Testen musst du es aber selber ;)
 
Zurück