WinFuture-Forum.de: Kontaktformular Läuft Auf Neuem Server Nicht :-( - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Kontaktformular Läuft Auf Neuem Server Nicht :-(


#1 Mitglied ist offline   dbs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 53
  • Beigetreten: 16. November 04
  • Reputation: 0

geschrieben 03. November 2005 - 13:05

Hallo,

ich benötige mal eben Eure Hilfe. Ich bin in PHP nicht sehr fit, habe aber immerhin das Kontaktformular auf der Homepage einer Freundin zum laufen bekommen. Da mir dieses Formular eigentlich ganz gut gefällt, wollte ich es jetzt auf meiner Homepage auch einsetzen. Jetzt habe ich aber das Problem, dass das Formular einfach nicht funktioniert.

Ich habe festgestellt, dass die Dateiattribute nach dem Upload auf meiner Server anders waren als die von dem Server, von der Freundin. Doch auch die Anpassung der Dateiattribute hat nix gebracht :-(

Jetzt bin ich ratlos und hoffe auf Eure Hilfe.

Ich hänge Euch mal den Quelltext mit an, so dass ihr wisst, was der momentane Bestand ist


kontakt.php

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="imagetoolbar" content="no">

<title>Kontakt</title>

<script LANGUAGE="JAVASCRIPT" SRC="kontakt_check_neu.js"></SCRIPT>

<link rel="stylesheet" href="sites.css" type="text/css">

</head>

<body>

 <?php

function check_email($email) //Emailadresse prüfen (Keine Umlaute etc.)
{

if( !preg_match("/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}|museum$/i", $email) )  return true;

return false;
}

// Allgemeine Variablen
$name_tag[0] = "Sonntag";
$name_tag[1] = "Montag";
$name_tag[2] = "Dienstag";
$name_tag[3] = "Mittwoch";
$name_tag[4] = "Donnerstag";
$name_tag[5] = "Freitag";
$name_tag[6] = "Samstag";
$num_tag   = date( "w");
$day	  = $name_tag[$num_tag];
$year	  = date("Y");
$day_num   = date("d");
$month	  = date("m");
$time	  = (date("H:i"));

$empfaenger = "[email protected]"; //Die eigene emailadresse
$subject01 = "Nachricht von meiner Homepage"; //Der Betreff der Email
$subject02 = "Vielen Dank für Ihre Nachricht "; //Betreff der Bestätigungsmail

if ($flag==1) //Wenn das Fromular ausgefüllt wurde.
{
	//Die Eingaben prüfen
	if(!$namer){$fehler="Bitte Namen eingeben<br>";}
	if(!$vorname){$fehler.="Bitte Vornamen eingeben<br>";}
	if(check_email($email) & $email!="") {$fehler.="Emailadresse ist ungültig<br>";}
	if(!$email) {$fehler.="Bitte die Emailadresse eingeben<br>";}
	if(!$text) {$fehler.="Bitte eine Nachricht eingeben<br>";}

	if($fehler) //Bei Fehlern, Meldung ausgeben
	{
		$meldung="<b>" .$fehler. "</b>";
		unset($flag);
		echo "<font color='red'>Es sind folgede Fehler aufgetreten: <br> " .$meldung. "</font>";
		//--------------------------------------
	   exit;
		//--------------------------------------
	}
	else //Wenn es keine Fehler gibt kann ja gemailt werden.
	{
	  //Der Body für die Mail
	  $body01 = "Nachricht gesendet am $day, $day_num.$month.$year um $time:
----------------------------------------------------------------
Vorname		: $vorname
Name		   : $namer
eMail		  : $email
----------------------------------------------------------------
Nachricht:
$text";

	   //Body für die Bestätigungsmail
	   $body02 = "Am $day, $day_num.$month.$year um $time haben wir folgende Nachricht von Ihnen erhalten:
-----------------------------------------------------------------------------------
Name		   : $namer
Vorname		: $vorname
eMail		  : $email
-----------------------------------------------------------------------------------
Nachricht:
$text
-----------------------------------------------------------------------------------
Ihre Mail wird so schnell wie möglich bearbeitet.
Bei Fragen schreiben Sie an: mailto:$empfaenger";

	   //Nun kann gemailt werden
	   //Erst die Mail an den Webmaster
	   mail ($empfaenger, $subject01, $body01, "From:$email");
	   //Dann die Bestätigungsmail
	   mail ($email, $subject02, $body02, "From:$email");
	   echo "Die Mail wurde gesendet.";
	  //--------------------------------
	   exit();
	  //--------------------------------
	}
}

if(!$flag) //Formular noch nicht abgesendet
{
		?>

	  <form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
		  <input type="hidden" name="flag" id="flag" value=1>

<div style="position: absolute; top: 114; left: 176; width: 100; height: 18">Name:</div>
<div style="position: absolute; top: 114; left: 276; width: 300; height: 28"><input name="namer" type="text" id="namer" size="40" class="formular" value='<?php echo $namer; ?>'></div>
<div style="position: absolute; top: 154; left: 176; width: 100; height: 18">Vorname:</div>
<div style="position: absolute; top: 154; left: 276; width: 300; height: 28"><input name="vorname" type="text" id="vorname" size="40" class="formular" value='<?php echo $vorname; ?>'></div>
<div style="position: absolute; top: 194; left: 176; width: 100; height: 18">Emailadresse:</div>
<div style="position: absolute; top: 194; left: 276; width: 300; height: 28"><input name="email" type="text" id="email" size="40" class="formular" value='<?php echo $email; ?>'></div>
<div style="position: absolute; top: 234; left: 176; width: 100; height: 18">Nachricht:</div>
<div style="position: absolute; top: 234; left: 276; width: 300; height: 120"><textarea name="text" id="text" cols="30" rows="5" class="formular"><?php echo $text; ?></textarea></div>

<div style="position: absolute; top: 364; left: 470; width: 77; height: 25"><input type="image" src="senden.gif" border="0" width="77" height="25"></div>

		 <?php
	  }
  ?>

</form>

</body>

</html>



kontakt_check_neu.js

<!--
function chkFormular()
{
 if(document.Formular.name.value == "")  {
   alert("Bitte Ihren Namen eingeben!");
   document.Formular.name.focus();
   return false;
  }
 
 if(document.Formular.mail.value == "") {
   alert("Bitte eine Mailadresse eingeben!");
   document.Formular.mail.focus();
   return false;
  }
   if(document.Formular.betreff.value == "") {
   alert("Bitte einen Betreff eingeben!");
   document.Formular.betreff.focus();
   return false;
  }
 if(document.Formular.nachricht.value == "") {
   alert("Bitte eine Nachricht eingeben!");
   document.Formular.nachricht.focus();
   return false;
  }
}
//-->



mit diesen beiden Dateien läuft das bei der freundin zur vollsten Zufriedenheit!

Ich bedanke mich schon vorher für jede konstrukitve Hilfe!

dbs
0

Anzeige



#2 Mitglied ist offline   badmin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. August 05
  • Reputation: 0

geschrieben 03. November 2005 - 17:13

hat der "CHMOD" rechte ?
er muss ja in die datenbankschreiben, kann sein das der andere ein "Windows" server war, und der bei Ihm musstest du keine rechte setzten!
0

#3 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 03. November 2005 - 17:23

Ich denke es liegt am abgeschalteten register_globals.
0

#4 Mitglied ist offline   ichbines 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.716
  • Beigetreten: 06. Oktober 02
  • Reputation: 0
  • Wohnort:Parndorf (Österreich)
  • Interessen:Computer, Linux

geschrieben 03. November 2005 - 18:11

Beitrag anzeigenZitat (Floele: 03.11.2005, 18:23)

Ich denke es liegt am abgeschalteten register_globals.

genau. Das glaube ich auch.

Dann musst du über $_POST['Variablenname'] auf deine Variablennamen zugreifen. Die register_globals kann nur der Server-Admin aktivieren, was er aber wegen Sicherheitsproblemen wahrscheinlich nicht machen wird.
0

#5 Mitglied ist offline   dbs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 53
  • Beigetreten: 16. November 04
  • Reputation: 0

geschrieben 03. November 2005 - 20:32

Danke an Alle, die geantwortet haben!

... register_globals... das hab ich schon mal gehört. Die vom Support haben mich schon mal danach gefragt "ob es erforderlich ist register_globals auf ON zu setzen".

Gib's für mich als einen, der nicht sehr viel Ahnung von PHP hat, Hoffnung das Script zu umzubasteln, dass es auch mit register_globals auf OFF funktioniert?

Gruß

dbs
0

#6 Mitglied ist offline   ichbines 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.716
  • Beigetreten: 06. Oktober 02
  • Reputation: 0
  • Wohnort:Parndorf (Österreich)
  • Interessen:Computer, Linux

geschrieben 03. November 2005 - 21:55

ja, das ist absolut kein Problem.

als ersters definierst du dir deine normalen Variablen:

$name = $_POST['name'];
$vorname =$_POST['vorname']
usw...

danach kannst du wieder auf $name zugreifen, auch mit deaktivierten register_globals.

oder du kannst auch ohne der zwischenvariable arbeiten, also immer mit $_POST['variable']
0

#7 Mitglied ist offline   dbs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 53
  • Beigetreten: 16. November 04
  • Reputation: 0

geschrieben 22. November 2005 - 10:33

... jetzt endlich habe ich wieder Zeit gefunden mich dem Formular zu widmen!

Ich habe jetzt mal versucht die normalen Variablen zu definieren:

// Allgemeine Variablen
$name_tag[0] =$_POST['Sonntag'];
$name_tag[1] =$_POST['Montag'];
$name_tag[2] =$_POST['Dienstag'];
$name_tag[3] =$_POST['Mittwoch'];
$name_tag[4] =$_POST['Donnerstag'];
$name_tag[5] =$_POST['Freitag'];
$name_tag[6] =$_POST['Samstag'];

$num_tag   = date( "w");
$day	  = $name_tag[$num_tag];
$year	  = date("Y");
$day_num   = date("d");
$month	  = date("m");
$time	  = (date("H:i"));

$namer =$_POST['namer'];
$vorname =$_POST['vorname'];
$email =$_POST['eMail'];
$text =$_POST['text'];

$empfaenger =$_POST['[email protected]']; //Die eigene emailadresse
$subject01 =$_POST['Nachricht von meiner Homepage']; //Der Betreff der Email
$subject02 =$_POST['Vielen Dank für Ihre Nachricht']; //Betreff der Bestätigungsmail


Bei den Datums- und Zeitvariablen bin ich gescheitert!

Ist das so korrekt?


Gruß

dbs

Dieser Beitrag wurde von dbs bearbeitet: 03. Dezember 2005 - 00:41

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0