• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formmailer - Daten werden nicht übernommen

f0rd42

Neues Mitglied
Hallo

ich bin gerade dabei, eine schnelle Übersicht zu erstellen, aus der unsere Kollegen erkennen können, welche iPhone Apps auf den Firmengeräten erlaubt sind.
Am Ende der Übersicht soll ein Formular sein, wo neue Apps zur Prüfung beantragt werden können. Die Felder gehen dann per HTTP_POST an eine formmailer.php und werden dort versendet.

Mein Problem ist nun, dass irgendwie die Daten aus dem Formular nicht übernommen / übergeben werden, denn die Email kommt zwar an, trägt als absender jedoch immer "[email protected]" und im Body nur

Code:
 Gesendet am $tag, den $n.$monat.$jahr - $time Uhr von $email_from

wobei $email_from eben "[email protected]" ist :-(

hier der Formularausschnitt:

HTML:
<h1>Formular</h1>
	<p>
		Um Anfragen zu neuen Apps m&ouml;glichst schnell und reibungslos bearbeiten zu können, haben wir Euch nachstehendes Formular
    zur Verf&uuml;gung gestellt.<strong> Felder mit einem * sind Pflichtfelder!</strong></p>
	<p> Eure Anfrage wird automatisch and das Technical Services Ticket System weitergeleitet, Antworten erhaltet Ihr also &uuml;ber die bekannten Wege per EMail.
	</p>
	<hr />
	<form id="form1" name="form1" method="post" action="formmailer.php">
	  <p><span id="sprytextfield1">
      <label>Email Adresse *
        <input name="email" type="text" id="email" size="30" />
      </label>
      <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span></p>
	  <p><span id="sprytextfield2">
      <label>Name der App *
        <input name="appname" type="text" id="appname" size="60" />
      </label>
      <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span>
	    <label>Hersteller der App
	      <input name="hersteller" type="text" id="hersteller" size="60" />
        </label>
	    <label>Version
	      <input name="version" type="text" id="version" size="10" />
        </label>
	  </p>
	  <p>
	    <label>Kosten *
	      <input type="text" name="kosten" id="kosten" />
        </label>
	    <label>
	      <input type="checkbox" name="kostenlos" id="kostenlos" />
	      Kostenlos</label>
	  </p>
	  <p>Kosten&uuml;bernahme beantragen?  
	    <label>
	      <input type="radio" name="radio" id="kostenuebernahme" value="kostenuebernahme" />
	      Ja</label>
	    <label>
	      <input type="radio" name="radio" id="kostenuebernahme2" value="kostenuebernahme" />
	      Nein</label>
	  </p>
	  <p>Wenn eine Kosten&uuml;nernahme beantragt wird, ist im untenstehenden Feld eine Begr&uuml;ndung anzugeben.</p>
	  <p>
	    <label>Grund
	      <textarea name="grund" cols="100" rows="3" id="grund"></textarea>
        </label>
	  </p>
	  <p>&nbsp;</p>
	  <p>
	    <label>
	      <input type="submit" name="send" id="send" value="Senden" />
        </label>
	  </p>
</form>

und hier dann der "formmailer.php"

PHP:
<?php 

$email_from = "[email protected]";   //Absender falls keiner angegeben wurde 
$sendermail_antwort = 1;      //E-Mail Adresse des Besuchers als Absender. 0= Nein ; 1 = Ja 
$name_von_emailfeld = "email";   //Feld in der die Absenderadresse steht 


//$send_dat ist ein mehrdimensionales Array, in dem zuerst die Empfängeradresse steht, 
//dann die CC-Adresse, dann der Betreff und dann die URL, auf die der Besucher weitergeleitet 
//wird, wenn die Mail gesendet wurde und zum Schluss die URL, auf die der Besucher weitergeleitet 
//wird, wenn ein Fehler beim senden auftrat 
$send_dat = array( 

"dat1" => array("[email protected]", "", "iPhone App Request","http://technet.acme.com/iphone/danke.html", "http://www.url.de/fehler.php"), 

"dat2" => array("[email protected]", "[email protected]", "Betreff2","http://www.url.de/ok.php", "http://www.url.de/fehler.php"), 

); 


//Diese Felder werden nicht in der Mail stehen 
$ignore_fields = array('send_index','Submit','senden_y'); 

//Hier wird ausgehwählt, welcher "Datensatz" aus $send_dat die Mail bekommt 
$send_index = $HTTP_POST_VARS['send_index']; 

//Wenn kein send_index gesetzt wurde, bekommt der 1 Datensatz die Mail 
if ($send_index!="") 
    { 
   $st="$send_index"; 
    } 
else 
    { 
   $st="dat1"; 
    } 


$mailto = $send_dat[$st][0];   //An diese Adresse geht die Email 
$mail_cc = $send_dat[$st][1];  //Das ist der CC-Empfänger 
$subject = $send_dat[$st][2];  //Betreff der Mail 





//Datum, wann die Mail erstellt wurde 
$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"); 
$tag =$name_tag[$num_tag]; 
$jahr = date( "Y"); 
$n = date( "d"); 
$monat = date( "m"); 
$time = (date("H:i")); 

//Erste Zeile unserer Email 
$msg = ">> Gesendet am $tag, den $n.$monat.$jahr - $time Uhr von $email_from<<<br><br>"; 

//Hier werden alle Eingabefelder abgefragt 
while (list($name,$value) = each($HTTP_POST_VARS)) 
    { 
   if (in_array($name, $ignore_fields)) 
        { 
        continue; //Ingnore Feld wird nicht in die Mail eingefügt 
        } 
    $msg .= ">> $name << <br>$value<br><br>"; 
} 

$msg = str_replace("<br>", "\n", $msg); 
$msg = stripslashes($msg); 

//E-Mail Adresse des Besuchers als Absender 
if ($sendermail_antwort==1 and isset($HTTP_POST_VARS["$name_von_emailfeld"])) 
    { 
   $email_from = $HTTP_POST_VARS["$name_von_emailfeld"]; 
    } 

$header="From: $email_from"; 


if (!empty($mail_cc)) 
    { 
   $header .= "\n"; 
   $header .= "Cc: $mail_cc"; 
    } 



$mail_senden = mail ($mailto,$subject,$msg,$header); 

//Weiterleitung, hier konnte jetzt per echo auch Ausgaben stehen 
if($mail_senden == true) 
    { 
   Header("Location: ".$send_dat[$st][3]); //Mail wurde gesendet 
    } 
else 
    { 
    Header("Location: ".$send_dat[$st][4]); //Fehler beim Senden 
   } 
?>

den Formmailer habe ich irgendwo aus dem Internet (kann mich nicht mehr erinnern, von wo)

Wie gesagt, eigentlich funktioniert alles prima, nur die Werte aus dem Formular scheinen nicht übergeben zu werden.

Sicherlich (wie immer) eine total logische Sache, aber ich tüftel hier nun schon seit Stunden und komme nicht drauf.

Jede Hilfe / jeder Tip ist gerne gesehen.

Danke

f0rd42
 
ich seh' jetzt nur, dass die superglobalen (HTTP_POST_VARS) veraltet sind und mal ausgewechselt werden sollten...

Nils aka XraYSoLo
 
Zurück
Oben