Servus an alle php-Gierigen
Ich muss sagen, ich bin ein Anfänger auf dem php-Gebiet.
Jedenfalls habe ich hier im Forum von Cyberbob folgenden Code gefunden, der es ermöglicht im Mambo-Contact den Schreibenden auch Telefonnummer und ähnliches zu versenden mit der Kontaktmail.
Soweit so gut. Das habe ich eigentlich auch alles so hinbekommen, außerPHP-Code:<?php echo(_NAME_PROMPT);?>
<br />
<input type="text" name="name" size="30" class="inputbox" value="" />
<br />
<?php echo(_TEL_PROMPT);?>
<br />
<input type="text" name="tel" size="30" class="inputbox" value="" /><br />
<?php echo(_EMAIL_PROMPT);?>
<br />
<input type="text" name="email" size="30" class="inputbox" value="" />
<br />
<?php echo(_SUBJECT_PROMPT);?>
<br />
<input type="text" name="subject" size="30" class="inputbox" value="" />
<br /><br />
<?php echo(_MESSAGE_PROMPT);?>
<br />
<textarea cols="50" rows="10" name="text" class="inputbox"></textarea>
<?php
...nun mußt du in dem File contact.php, ganz unten, die Funktion sendmail suchen dort müßte dann folgender Code stehen.
Die Überprüfung, ob das Feld leer ist hab ich weggelassen ist ja auch net so wichtig.
$default = $mosConfig_sitename.' '. _ENQUIRY;
$email = trim( mosGetParam( $_POST, 'email', '' ) );
$text = trim( mosGetParam( $_POST, 'text', '' ) );
$tel = trim( mosGetParam( $_POST, 'tel', '' ) );
$name = trim( mosGetParam( $_POST, 'name', '' ) );
$subject = trim( mosGetParam( $_POST, 'subject', $default ) );
$email_copy = mosGetParam( $_POST, 'email_copy', 0 );
if ( !$email || !$text || ( is_email( $email )==false ) ) {
echo "<script>alert (\""._CONTACT_FORM_NC."\"); window.history.go(-1);</script>";
exit(0);
}
$text = _ENQUIRY_TEXT.' '.$name. ' ('. $email .') Tel:'.$tel.'' ."\r \n". stripslashes($text);
mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $email_to, $subject, $text, $tel );
...zum schluß gehst du in den Ordner language und nimmst dir die Datei germanf.php zur Brust. Suche dort nach folgendem Code:
/** classes/html/contact.php */
DEFINE('_CONTACT_TITLE','Kontakt');
DEFINE('_EMAIL_DESCRIPTION','E-Mail an diesen Kontakt senden:');
DEFINE('_NAME_PROMPT','Ihr Name:');
DEFINE('_TEL_PROMPT','Telefon:');
DEFINE('_EMAIL_PROMPT','E-Mail Adresse:');
DEFINE('_MESSAGE_PROMPT','Ihre Mitteilung:');
DEFINE('_SEND_BUTTON','Senden');
DEFINE('_CONTACT_FORM_NC','Bitte vergewissern Sie sich, dass alles ausgefüllt ist.'); // HTMLEntities werden eingefügt, sobald JavaScript im Code gefixt wurde.
DEFINE('_CONTACT_TELEPHONE','Telefon: ');
DEFINE('_CONTACT_MOBILE','Mobil: ');
DEFINE('_CONTACT_FAX','Fax: ');
DEFINE('_CONTACT_EMAIL','E-Mail: ');
DEFINE('_CONTACT_NAME','Name: ');
DEFINE('_CONTACT_POSITION','Position: ');
DEFINE('_CONTACT_ADDRESS','Adresse: ');
DEFINE('_CONTACT_MISC','Information: ');
DEFINE('_CONTACT_SEL','Kontakt auswählen:');
DEFINE('_CONTACT_NONE','Es sind keine Kontakte verf¨gbar.');
DEFINE('_EMAIL_A_COPY','Eine Kopie dieser Nachricht an Ihre E-Mail Adresse senden')
Dort sieht es bei mir anders aus. Änder ich es wie er, kommt ein php-Fehler, bezogen auf diese Zeile.PHP-Code:$text = _ENQUIRY_TEXT.' '.$name. ' ('. $email .') Tel:'.$tel.'' ."\r \n". stripslashes($text);
Ich jedenfalls habe meinen Code noch mehr geändert und zwar um Adresse, Strasse etc dort einzutragen. Sowohl in der contact.html.php , als auch in der language-Datei und auch in der contact.php. Wenn ich nun das Konatkformular auf meiner Seite aufrufe sieht es auch genau so aus wie ich es möchte. Wenn ich dann alles eintrage und wegschicke tritt nur ein Problem auf. Alle Datenfelder die ich hinzugefügt habe, zb Telefonnummer oder Strasse, werden nicht mit in der Mail versendet. Ich komm einfach nicht weiter. Es muss was mit der Sendmail zu tun haben oder? Hier mal mein Quelltext:
Also wie gesagt. Eine von Cyberbob vorgeschlagene Zeile habe ich nicht geändert, weil ich nicht weiß wie. Ob das Gesamte Problem damit zusammenhängt kann ich nicht sagen. Wäre jedenfalls echt toll, wenn mir jemand ein paar Tipps geben könnte.PHP-Code:function sendmail( $con_id, $option ) {
global $database, $Itemid;
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname;
$query = "SELECT * FROM #__contact_details WHERE id='$con_id'";
$database->setQuery( $query );
$contact = $database->loadObjectList();
$default = $mosConfig_sitename.' '. _ENQUIRY;
$email = trim( mosGetParam( $_POST, 'email', '' ) );
$text = trim( mosGetParam( $_POST, 'text', '' ) );
$tel = trim( mosGetParam( $_POST, 'tel', '' ) );
$street = trim( mosGetParam( $_POST, 'street', '' ) );
$plz = trim( mosGetParam( $_POST, 'plz', '' ) );
$city = trim( mosGetParam( $_POST, 'city', '' ) );
$name = trim( mosGetParam( $_POST, 'name', '' ) );
$subject = trim( mosGetParam( $_POST, 'subject', $default ) );
$email_copy = mosGetParam( $_POST, 'email_copy', 0 );
if ( !$email || !$text || ( is_email( $email )==false ) ) {
echo "<script>alert (\""._CONTACT_FORM_NC."\"); window.history.go(-1);</script>";
exit(0);
}
$prefix = sprintf( _ENQUIRY_TEXT, $mosConfig_live_site );
$text = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". stripslashes( $text );
mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text, $tel, $city, $plz, $street );
if ( $email_copy ) {
$copy_text = sprintf( _COPY_TEXT, $contact[0]->name, $mosConfig_sitename );
$copy_text = $copy_text ."\n\n". $text .'';
$copy_subject = _COPY_SUBJECT . $subject;
mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $email, $copy_subject, $copy_text );
}
?>
**********
Ich würde mein Problem gerne so lösen und nicht mit FacileForms oder anderen 3rd Party Addons, da ich kürzlich aufgrund von der neusten FacileFormsVersion gehackt wurde.
Danke schonmal für eure Hilfe.
bis bald
kk


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen