PHP, AJAX, Mailversand

breakone

Grünschnabel
Zuerst einmal ein Hallo an alle.
bin ganz neu hier und versuche mich grad mit dem Einbau von Ajax in eine PHP-Seite.

Ich such jetzt schon stundenlange herum, aber komm nicht auf das Problem.
Und zwar habe ich folgendes:

Ich habe ein bestehendes PHP-Script zum Mailversand mit meinem Formular, Aufbau der Seite:

Code:
<?php  include ("php_mail/mail.cfg.php");?>
<form action="kontakt.php">
<input id="name" class="eingabe" maxLength="50" name="name" size="20" value="<?php echo $t_name; ?>" >
...
</form>

In der MAIL.CFG.PHP setze ich unter anderem den Mail-Text zusammen und sende es dann, wie wahrscheinlich bekannt ist:

Code:
mail($to,$subject,$m_text,$from);

So, es funktioniert jetzt alles wunderbar, aber...
Jetzt möchte ich aber nicht wieder die ganze Seite neu laden, sondern einfach eine Nachricht auf der Seite ausgeben, dass die Mail versandt wurde. Ich dachte mir, das wär optimal, um Ajax auszuprobiern. Also dann, meine Javascript-Datei schaut wie folgt aus:

Code:
//naja http request halt definieren
var http_request = false;
	
// Function MAKEPOSTREQUEST
function makePOSTRequest(url, parameters) 
{	
	http_request = false;
	//falls die funktion mehrmals aufgerufen wird nochmal auf false setzen
	//überprüfen ob IE / mozilla safari opera etc und XMLhttprequest bzw XMLHttp laden
	
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
            http_request.overrideMimeType('text/html');
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	
	//prüfen ob die entsprechende kompo geladen wurde
	if (!http_request) 
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	  
	//rückgabefunktion definieren
	http_request.onreadystatechange = alertContents();
	  
  
	  
	//verbindung öffnen
	http_request.open('POST', url, true);
      
	//header senden
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
      
	//parameter senden
	http_request.send(parameters);
	
	//Ausgabe auf Seite
	document.getElementById('outerdiv').style.visibility = "visible";
	document.getElementById('innerdiv').innerHTML = "E-Mail wurde versandt...<br><br><a href=\"javascript:closeDiv();\">Zurück zur Seite</a><p>"; 
}
// END Function MAKEPOSTREQUEST

// Function ALERTCONTENTS   
function alertContents() 
{
	//wenn der request fertig ist
	if (http_request.readyState == 4) 
	{
		//und erfolgreich war
		if (http_request.status == 200) 
		{
			//alert(http_request.responseText);
			result = http_request.responseText;			
		}
		else
		{
			alert('There was a problem with the request.');
		}
	}
}
// END Function ALERTCONTENTS
   
// Function CLOSEDIV
function closeDiv()
{
	document.getElementById('outerdiv').style.visibility = "hidden";
}
// END Function CLOSEDIV

// Function GET
function get() 
{
	//alle felder holen und zusammenbauen anhand von id
	var poststr = 
	"name=" + encodeURI( document.getElementById("name").value ) +
	"&firma=" + encodeURI( document.getElementById("firma").value ) + 
	"&strasse=" + encodeURI( document.getElementById("strasse").value ) +
	"&plz=" + encodeURI( document.getElementById("plz").value ) +
	"&ort=" + encodeURI( document.getElementById("ort").value ) +
	"&land=" + encodeURI( document.getElementById("land").value ) +
	"&telefon=" + encodeURI( document.getElementById("telefon").value ) +
	"&fax=" + encodeURI( document.getElementById("fax").value ) +
	"&email=" + encodeURI( document.getElementById("email").value ) +
	"&web=" + encodeURI( document.getElementById("web").value ) +
	"&woher=" + encodeURI( document.getElementById("woher").value ) +
	"&text=" + encodeURI( document.getElementById("text").value );

	//hier wird der eigentliche vorgang in gang gesetzt				
	makePOSTRequest('kontakt.php', poststr);

}
// END Function GET

Der Aufruf schaut jetzt eben wie folgt aus:

Code:
<form action="javascript: get();" >


Jetzt komm ich einfach nicht drauf, warum das ganze nicht klappt?
Das Div wird brav angezeigt, aber die Mail einfach nicht versandt.

Wär wirklich super, wenn ihr da mal drüber schaun könntent.

Lg breakone
 
Was wird denn in der Php-datei gemacht?
So wie ich das sehe, wird im Moment nur Javascript benutzt...
Und der Code ist ziemlich aufgebläht ehrlich gesagt...
Aber ich bin auch müde...
 
In welcher PHP-Datei?
Also in der, in der das Formular steht (kontakt.php), werden eben Daten wie Name, Adresse, usw. eingegeben:

PHP:
<?php  include ("php_mail/mail.cfg.php");?>
<?php  if ($vs_1 != "0") { ?>
<form action="kontakt.php" method=post>
<input type="hidden" name="vs" value="1">
<input id="name" class="eingabe" maxLength="50" name="name" size="20" value="<?php echo $t_name; ?>" >
<input id="firma" class="eingabe" maxLength="50" name="firma" size="20" value="<?php echo $t_firma; ?>">
...
<input class="button" name="submit" type="submit" value="Abschicken">
</form>


und danach soll das Formular abgeschickt werden und die 2. PHP-Datei abgearbeitet werden, welche im ganzen wie folgt ausschaut.

PHP:
<?php

//Festlegen der Anrede
$betreff="Anfrage über Kontaktformular";
$t_name="Nachname, Vorname";
$t_firma="Firma";
$t_strasse="Straße, Nr.";
$t_plz="PLZ";
$t_ort="Ort";
$t_land="Land";
$t_email="Mailadresse";
$t_web="http://Ihre-Seite.at";
$t_telefon="Telefonnummer";
$t_fax="Faxnummer";
$t_woher="Woher kennen Sie uns?";
$t_text="Teilen Sie uns Ihre Wünsche oder Fragen mit...";
$e_name="Bitte geben Sie Ihren Namen ein!";
$e_email="Bitte geben Sie Ihre E-Mail-Adresse ein!";
$e_betreff="Bitte geben Sie einen Betreff ein!";
$e_text="Bitte geben Sie einen Text ein!";
$success="Vielen Dank! ...";


//Überprüfung, ob Mail versandt oder nicht
switch ($vs)
	{
	case '1':
//----------------------------------------
		$send="1";
		echo "<tr><td colspan=2><ul><br>";
		if ($name==""){ echo $e_name . "<br>"; $send="0"; $vs_1 = "0";}
		if ($email==""){ echo $e_email . "<br>"; $send="0"; $vs_1 = "0";}
		if ($betreff==""){ echo $e_betreff . "<br>"; $send="0"; $vs_1 = "0";}
		if ($text==""){ echo $e_text . "<br>"; $send="0"; $vs_1 = "0";}
		switch ($send)
		{
			case '1':
		
			//Mailtext generieren
			$to = $w_email;
			$subject = $betreff;
			$m_text = "Anfrage vom Kontaktformular ( $w_url )\r\n\r\n";
			$m_text .= "Name: ";
			$m_text .= " $name\r\n";
			$m_text .= "Firma: $firma";
			$m_text .= "\r\n";
			$m_text .= "Straße: $strasse";
			$m_text .= "\r\n";
			$m_text .= "PLZ, Ort: $plz $ort";
			$m_text .= "\r\n";
			$m_text .= "Land: $land";
			$m_text .= "\r\n";
			$m_text .= "Telefon: $telefon";
			$m_text .= "\r\n";
			$m_text .= "Fax: $fax";
			$m_text .= "\r\n";
			$m_text .= "E-Mail: $email";
			$m_text .= "\r\n";
			$m_text .= "Webseite: $web";
			$m_text .= "\r\n";
			$m_text .= "Woher kennen Sie uns: $woher";
			$m_text .= "\r\n\r\n";
			$m_text .= "Nachricht:\r\n"; 
			$m_text .= "============================================\r\n";
			$m_text .= "$text\r\n";
			$m_text .= "============================================";					
			//Absender generieren
			$from = "From: " . $email . "\n";
		
			//Mail generieren und versenden
			mail($to,$subject,$m_text,$from);
			echo $success . "<br>";
			$vs_1 = "0";
		break;
		default:break;
		}
		echo "<br><a href=\"javascript:history.back();\">zurück</a><br>&nbsp;";
		echo "</ul></td></tr>";
//----------------------------------------
	break;
	
	default:
	break;
	}
?>
 
Code:
http_request.onreadystatechange = alertContents();

sollte das nich

Code:
http_request.onreadystatechange = alertContents;

sein?

sodass du dann
Code:
//Ausgabe auf Seite
	document.getElementById('outerdiv').style.visibility = "visible";
	document.getElementById('innerdiv').innerHTML = "E-Mail wurde versandt...<br><br><a href=\"javascript:closeDiv();\">Zurück zur Seite</a><p>";

nicht direkt in deine Request funktion schreibst sondern eben die antwort des PHP Scriptes abwartest um eventuell auf fehler bei der eingabe hinzuweisen.

Ansonsten kann man dir nur noch zu der Firefox Extension Firebug raten. Aktiviere dort das Netzwerk Modul und schau genau was eigentlich zurückgeliefert wird, wie die Seite aufgerufen usw. Vielleicht stimmt ja hier schon etwas nicht. Zudem kann man eben die Sachen schön debuggen.


Und die Variable des äußeren Switches ist auch undeffiniert? sodas er nie zu den überprüfungen kommt.
Es ist auch kein empfänger der mails bestimmt da $w_email undeffiniert ist.

Und zuletzt sei gesagt das man register Globals meiden sollte, und lieber die variablen direkt aus $_GET[] abholen.
 
Zuletzt bearbeitet:
Code:
http_request.onreadystatechange = alertContents();

sollte das nich

Code:
http_request.onreadystatechange = alertContents;

sein?

sodass du dann
Code:
//Ausgabe auf Seite
	document.getElementById('outerdiv').style.visibility = "visible";
	document.getElementById('innerdiv').innerHTML = "E-Mail wurde versandt...<br><br><a href=\"javascript:closeDiv();\">Zurück zur Seite</a><p>";

nicht direkt in deine Request funktion schreibst sondern eben die antwort des PHP Scriptes abwartest um eventuell auf fehler bei der eingabe hinzuweisen.

Ansonsten kann man dir nur noch zu der Firefox Extension Firebug raten. Aktiviere dort das Netzwerk Modul und schau genau was eigentlich zurückgeliefert wird, wie die Seite aufgerufen usw. Vielleicht stimmt ja hier schon etwas nicht. Zudem kann man eben die Sachen schön debuggen.


Und die Variable des äußeren Switches ist auch undeffiniert? sodas er nie zu den überprüfungen kommt.
Es ist auch kein empfänger der mails bestimmt da $w_email undeffiniert ist.

Und zuletzt sei gesagt das man register Globals meiden sollte, und lieber die variablen direkt aus $_GET[] abholen.

Ich hab jetzt mit Firebug nachgesehn, in der Console erhalte ich dann eigentlich ein positives Ergebnis, sprich...

Code:
POST http://xy.com/kontakt.php

Post:
Code:
email	Mailadresse
fax	Faxnummer
firma	Firma
land	Land
name	Nachname, Vorname
ort	Ort
plz	PLZ
strasse	Straße, Nr.
telefon	Telefonnummer
text	Teilen Sie uns Ihre Wünsche oder Fragen mit...
web	http://Ihre-Seite.at
woher	Woher kennen Sie uns?

Die restlichen Sachen, die du erwähnt hast, wie zB.

Code:
http_request.onreadystatechange = alertContents;

hab ich ausgebessert...
 
Sieht so aus, als ob noch keiner eine Lösung dafür gefunden hat.
Ich bin leider selbst auch noch auf keinen grünen Ast gekommen...

Auf jeden Fall wird ja eine Anfrage mittels POST abgesendet und eine Antwort geschickt...jetzt schauts nur so aus, als ob er danach nix mehr macht, sprich: meine Funktion zum Mailversand wird nicht aufgerufen.

lg breakone
 
Hast du denn auch die anderen sachen die ich geschrieben habe ausgebessert?

PHP:
switch ($vs)

wird am anfang gemacht, aber $vs vorher auf keinen Wert gesetzt

dann
PHP:
switch ($send)

was auch auf keinen Wert gesetzt ist. die $to Variable wird wohl auch immernoch auf keinen Wert gesetzt sein.

unter diesen Umständen kann die Mail natürlich nicht abgesendet werden. Da kann man ja gleich ein if(0) darüber schreiben.

Warum machst du überhaupt so komische gebilde mit den Swichtes, das ließt sich nicht allzufein. Gerade wenn du doch eh nur einen Fall hast.
 
Warum machst du überhaupt so komische gebilde mit den Swichtes, das ließt sich nicht allzufein. Gerade wenn du doch eh nur einen Fall hast.

Das lag daran, dass vorher mehrere Möglichkeiten zur Auswahl standen.

so, habs jetzt gelöst...auf vereinfachte Weise ;)

Mein Javascript:

Code:
//naja http request halt definieren
var http_request = false;
	
// Function MAKEPOSTREQUEST
function makePOSTRequest(url, parameters) 
{	
	http_request = false;
	//falls die funktion mehrmals aufgerufen wird nochmal auf false setzen
	//überprüfen ob IE / mozilla safari opera etc und XMLhttprequest bzw XMLHttp laden
	
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
            http_request.overrideMimeType('text/html');
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	//prüfen ob die entsprechende kompo geladen wurde
	if (!http_request) 
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	  
	parameters = decodeURI(parameters);  
	
	//rückgabefunktion definieren
	http_request.onreadystatechange = alertContents; 
	  
	//verbindung öffnen
	http_request.open('POST', url, true);
      
	//header senden
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	
	//parameter senden
	http_request.send(parameters);
}
// END Function MAKEPOSTREQUEST

// Function ALERTCONTENTS   
function alertContents() 
{
	//wenn der request fertig ist
	if (http_request.readyState == 4) 
	{
		//und erfolgreich war
		if (http_request.status == 200) 
		{
			
			//Ausgabe auf Seite
			document.getElementById('outerdiv').style.visibility = "visible";
			document.getElementById('innerdiv').innerHTML = "<b>E-Mail wurde versandt...</b><br><br><a href=\"javascript:closeDiv();\">Zur&uuml;ck zur Seite</a><p>"; 
			
		}
		else
		{
			alert('Ihr Browser unterstützt kein AJAX, welches zur Anzeige der Seite benötigt wird. Informieren Sie sich bitte entsprechend über die Aktivierung...');
		}
	}
}
// END Function ALERTCONTENTS
   
// Function CLOSEDIV
function closeDiv()
{
	document.getElementById('outerdiv').style.visibility = "hidden";
}
// END Function CLOSEDIV

// Function GET
function get() 
{
	//alle felder zusammenbauen anhand von id
	var poststr = 
	"name=" + encodeURI( document.getElementById("name").value ) +
	"&firma=" + encodeURI( document.getElementById("firma").value ) + 
	"&strasse=" + encodeURI( document.getElementById("strasse").value ) +
	"&plz=" + encodeURI( document.getElementById("plz").value ) +
	"&ort=" + encodeURI( document.getElementById("ort").value ) +
	"&land=" + encodeURI( document.getElementById("land").value ) +
	"&telefon=" + encodeURI( document.getElementById("telefon").value ) +
	"&fax=" + encodeURI( document.getElementById("fax").value ) +
	"&email=" + encodeURI( document.getElementById("email").value ) +
	"&web=" + encodeURI( document.getElementById("web").value ) +
	"&woher=" + encodeURI( document.getElementById("woher").value ) +
	"&text=" + encodeURI( document.getElementById("text").value ) +
	"&vs=1";


	if(check_content() == true)
	{
		//hier wird der eigentliche vorgang in gang gesetzt				
		makePOSTRequest('Mail/mail.cfg.php', poststr);
	}	
}
// END Function GET

function check_content() 
{
	
	id = new Array; id[0] = new Array(); id[1] = new Array(); id[2] = new Array(); 
	
	id[0][0]= "name";
	id[0][1]= "'Name' ist ein Pflichtfeld";
	id[0][2] = "Nachname, Vorname *";

	id[1][0]= "email";
	id[1][1]= "'E-Mail' ist ein Pflichtfeld";
	id[1][2] = "Ihre@Mailadresse.at *";

	id[2][0]= "text";
	id[2][1]= "Tragen Sie bitte eine Nachricht ein";
	id[2][2] = unescape("Teilen Sie uns Ihre W%FCnsche oder Fragen mit... *");
	
		
	var error_msg_1 = "<b>Folgende Fehler sind aufgetreten: </b><p>";
	var error_msg = "";
	
	var i=0;
	while(i < id.length)
	{
		if(document.getElementById(id[i][0]).value == "" ||
			document.getElementById(id[i][0]).value == id[i][2])
		{
			error_msg += id[i][1] + "<br>";
		}
		
		i++;
	}
	
	if(error_msg != "")
	{
		error_msg = error_msg_1 + error_msg + "</p><a href=\"javascript:closeDiv();\">Zur&uuml;ck zur Seite</a><p>";
		
		document.getElementById('outerdiv').style.visibility = "visible";
		document.getElementById('innerdiv').innerHTML = error_msg;
		
		return false;
	}
	else
	{
		return true;
	}
}

Ausschnitt konakt.php:

Code:
<div id="outerdiv"><div id="innerdiv"></div></div>
	<img src="Bilder/kontaktformular.png" alt="Kontaktformular" width="186" height="44"/>
	<?php  include ("Mail/mail.cfg.php");?>
	<form action="javascript: get();" method="post" name="postdataform" id="postdataform">
    <input type="hidden" name="vs" value=""/>
    <table border="0" align="center">
      <tbody>
        <tr> 
          <td>
            <input id="name" class="eingabe" maxLength="50" name="name" size="20" value="<?php echo $t_name; ?>" /> 
            <input id="firma" class="eingabe" maxLength="50" name="firma" size="20" value="<?php echo $t_firma; ?>"/></td>
        </tr>
        <tr> 
          <td>
            <input id="strasse" class="eingabe" maxLength="50" name="strasse" size="20" value="<?php echo $t_strasse; ?>"/>
            <input id="plz" class="eingabe" maxLength="5" name="plz" size="5" value="<?php echo $t_plz; ?>"/>
            <input id="ort" class="eingabe" maxLength="40" name="ort" size="11" value="<?php echo $t_ort; ?>"/>
			</td>
        </tr>
        <tr> 
          <td>  
            <img src="Bilder/spacer_index.png" alt="Spacer" width="245" height="1"/>
            <input id="land" class="eingabe" maxLength="50" name="land" size="20" value="<?php echo $t_land; ?>"/></td>
        </tr>
        <tr> 
          <td> 
            <input id="telefon" class="eingabe" maxLength="20" name="telefon" size="20" value="<?php echo $t_telefon; ?>"/>
            <input id="fax" class="eingabe" maxLength="20" name="fax" size="20" value="<?php echo $t_fax; ?>"/></td>
        </tr>
        <tr> 
          <td> 
            <input id="email" class="eingabe" maxLength="50" name="email" size="20" value="<?php echo $t_email; ?>"/>
          <input id="web" class="eingabe" maxLength="50" name="web" size="20" value="<?php echo $t_web; ?>"/></td>
        </tr>
        <tr height="10px"> 
          <td></td>
        </tr>
        <tr> 
          <td> 
          <input class="eingabe" id="woher" maxLength="44" name="woher" size="44" value="<?php echo $t_woher; ?>"/></td>
        </tr>
        <tr height="10px"> 
          <td></td>
        </tr>
        <tr> 
          <td> 
            <textarea id="text" cols="33" name="text" rows="8"><?php echo $t_text; ?></textarea>          </td>
        </tr>
        <tr height="5px"> 
          <td></td>
        </tr>
        <tr> 
          <td>
          	<table width="100%" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td width="96"><input class="button" name="submit" type="submit" value="Abschicken"/></td>
                <td width="423" valign="bottom"><font style="font-size:11px; color:#8b0000">*</font><font style="font-size:11px;"> Pflichtfelder m&uuml;ssen ausgef&uuml;llt werden!</font></td>
              </tr>
            </table>
   	      </td>
        </tr>
      </tbody>
    </table>
</form>

Die mail.cfg.php:

Code:
<?php
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//E-Mailadresse des Webmasters
//-------------------->
$w_email="adresse@test.at";
//-------------------->
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//URL zur Website
//-------------------->
$w_url="http://www.test.at";
//-------------------->
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Titel der Website
//-------------------->
$w_titel="Titel";
//-------------------->
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

include ("mail.class.php");

?>

Die mail.class.php:

Code:
<?php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Standardwerte setzen
$betreff="Anfrage über Kontaktformular";
$t_name="Nachname, Vorname *";
$t_firma="Firma";
$t_strasse="Straße, Nr.";
$t_plz="PLZ";
$t_ort="Ort";
$t_land="Land";
$t_email="Ihre@Mailadresse.at *";
$t_web="http://Ihre-Seite.at";
$t_telefon="Telefonnummer";
$t_fax="Faxnummer";
$t_woher="Woher kennen Sie uns?";
$t_text="Teilen Sie uns Ihre Wünsche oder Fragen mit... *";
$e_name="Bitte geben Sie Ihren Namen ein!";
$e_email="Bitte geben Sie Ihre E-Mail-Adresse ein!";
$e_betreff="Bitte geben Sie einen Betreff ein!";
$e_text="Bitte geben Sie einen Text ein!";
$success="Vielen Dank! Wir wünschen Ihnen noch einen schönen Tag!";

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Mailtext generieren
$to = $w_email;
$subject = $betreff;

$m_text = "<html>";
$m_text .= "<head>";
$m_text .= "<title>Kontaktformular von www.test.at</title>";
$m_text .= "<style type=\"text/css\">";
$m_text .= "<!--";
$m_text .= "	body { font-family: arial; font-size: 11px; }";
$m_text .= "	h2 { color: #FFFFFF; padding: 5px; padding-left: 10px; font-size: 14px;}";
$m_text .= "	.daten td { font-family: arial; font-size: 12px; padding: 5px; padding-left: 10px; padding-right: 10px;}";
$m_text .= "	.desc { font-weight: bold; }";
$m_text .= "	a { color:#FFFFFF; text-decoration:none; }";
$m_text .= "	h1 { font-size: 26; font-weight: bold; padding-top: 10px;}";
$m_text .= "-->	";
$m_text .= "</style>";
$m_text .= "</head>";
$m_text .= "<body>";
$m_text .= "<table style=\"border: 1px solid #acacac;\" width=\"490\" border=\"0\">";
$m_text .= "  <tr>";
$m_text .= "    <td><div align=\"center\"><h1>Kontaktformular</div></h1></td>";
$m_text .= "  </tr>";
$m_text .= "  <tr bgcolor=\"8b0000\">";
$m_text .= "    <td><h2>Anfrage( <a href=\"$w_url\">$w_url</a> )</h2></td>";
$m_text .= "  </tr>";
$m_text .= "  <tr>";
$m_text .= "    <td bgcolor=\"acacac\"><table class=\"daten\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">";
$m_text .= "      <tr>";
$m_text .= "        <td width=\"175\" height=\"10\" class=\"desc\"></td>";
$m_text .= "        <td width=\"285\" height=\"10\"></td>";
$m_text .= "      </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Name:</td>";
$m_text .= "        <td>$name</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Firma:</td>";
$m_text .= "        <td>$firma</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Adresse:</td>";
$m_text .= "        <td>$strasse</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">&nbsp;</td>";
$m_text .= "        <td>$plz $ort, $land</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Telefon:</td>";
$m_text .= "        <td>$telefon</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Fax:</td>";
$m_text .= "        <td>$fax</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">E-Mail:</td>";
$m_text .= "        <td>$email</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Webseite:</td>";
$m_text .= "        <td>$web</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Woher kennen Sie uns?</td>";
$m_text .= "        <td>&nbsp;</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td colspan=\"2\">$woher</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td height=\"10\" class=\"desc\"></td>";
$m_text .= "        <td height=\"10\"></td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td class=\"desc\">Ihre Nachricht:</td>";
$m_text .= "        <td>&nbsp;</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td colspan=\"2\">$text</td>";
$m_text .= "        </tr>";
$m_text .= "      <tr>";
$m_text .= "        <td height=\"10\" class=\"desc\"></td>";
$m_text .= "        <td height=\"10\"></td>";
$m_text .= "        </tr>";
$m_text .= "    </table></td>";
$m_text .= "  </tr>";
$m_text .= "</table>";
$m_text .= "</body>";
$m_text .= "</html>";

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Absender generieren
if($email != "" )
{
	$from = "From: " . $email . "\n";
}
else
{
	$from = "From: kontaktformular@test.at \n";
}

$from .= "MIME-Version: 1.0\n"; 
$from .= "Content-type: text/html; charset=utf-8\n"; 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if($_POST['vs'] == "1")
{
	//Mail generieren und versenden
	mail($to,$subject,$m_text,$from);
}
?>


So funktioniert alles, der Fehler lag wirklich am php-Script, wie schon erwähnt, wurden die Variablen teilweise nicht gesetzt.

Vielen Dank für die Hilfe...
 
Zuletzt bearbeitet:
Zurück