Formmailer Version 1.0

xundy
Da ich diesen hack nicht im Detail kene gehe ich mal davon aus, das kein korrekter heder erstelt wird und somit keine html-nachrichten möglich sind daher werden <br />-Tags nicht umgesetzt, allerdings sollten Mails mit normalen Zeilenumbrüchen funktionieren, es sei denn der nachrichtentext wird im Script nochmal mit nl2br behandelt!

Vielleicht schaust du mal in meinem forum da gibts nen Newsletter Addon da kannste zusätzlich auch noch Vorlagen erstelln und newsletter an ausgewählte Usergruppen versenden ;9

mfg
sys2064
Zitat:
Original von xundy
Da ich diesen hack nicht im Detail kene gehe ich mal davon aus, das kein korrekter heder erstelt wird und somit keine html-nachrichten möglich sind daher werden <br />-Tags nicht umgesetzt, allerdings sollten Mails mit normalen Zeilenumbrüchen funktionieren, es sei denn der nachrichtentext wird im Script nochmal mit nl2br behandelt!

Vielleicht schaust du mal in meinem forum da gibts nen Newsletter Addon da kannste zusätzlich auch noch Vorlagen erstelln und newsletter an ausgewählte Usergruppen versenden ;9

mfg


Öhmmm evtl. verwirrt also eigendlich dachte ich den Formmailer/Meldeformular als Funktion für Leute die sich nicht registrieren wollen aber dennoch News und Infos an mich weiter geben wollten. smile

Ob mir da der gut gelungene Newsletter Addon von dir helfen kann wage ich mal recht blauäugig zu bezweifeln. War da gestern schon bei dir schauen und hatte ausser der einen kleinen php nichts gefunden gehabt.

Währe halt schön wenn dieses hier weiter Supportet werden würde.
Denn Probleme tauchen halt auf und könnten gelöst werden.
Ist nämlich auch recht nett gemacht auch wenn sich Flüchtigkeitsfehler eingeschlichen haben. Wenn sich hier nichts mehr tut würd ich vorschlagen das du oder Günny den Support in eure Hände nehmt großes Grinsen

Muss das leider wieder mal herausheben das ihr zu den Herausragenden Persönlichkeiten in der WBB Scene gehört. Und die Qualität der Produkte schon recht genial ist und ein Top Service noch dazu. [/schleimmodus]

Schade das solche Dinge für mich einfach böhmische Dörfer sind...
und ich weder Zeit und Nerven habe um mir das selbst bei zubringen.
Denn das einzigste was ich entdeckt hatte hatte ich schon geändert.
Aber der Teufel steckt nun mal im Detail oder irgendwo hier drunter nehme ich mal an. Augenzwinkern

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
<?php
$filename="kontakt_auswertun.php"; 
require("./global.php");

$lang->load("KONTAKT");

function formregister()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }

       }

   } 
}
$errors=0;
$error="{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERRORS']}<ul>";
formregister('POST','Name');
formregister('POST','Email');
formregister('POST','Homepage');
formregister('POST','Betreff');
formregister('POST','Text');
$Text=preg_replace("/(\015\012)|(\015)|(\012)/","&nbsp;<br />", $Text);if($Name=="" || $Email=="" || $Betreff=="" || $Text=="" ){
$errors=1;
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR1']}";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR2']}";
$errors=1;
}
if($errors==1) eval("\$kontakt_error .= \"".$tpl->get("kontakt_error")."\";");
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Name: ".$Name."
Email: ".$Email."
Homepage: ".$Homepage."
Betreff: ".$Betreff."
Text: ".$Text."
";
$message = stripslashes($message);

mail("$webmastermail","$Betreff (Nachricht von $Name)",$message,"From: $master_board_name");
eval("\$kontakt_danke .= \"".$tpl->get("kontakt_danke")."\";");
}
eval("\$tpl->output(\"".$tpl->get("kontakt_auswertung")."\");");
?>
sys2064
Hmehh hat da noch keiner eine Lösung für das Problem das nicht nur ich habe... nicht mal der Ersteller dess gut gelungenen Hacks ?

Will ihn erlich gesagt eigendlich NICHT ausbauen sondern vernünftig nutzen mit mehr als nur einer Zeile smile
sys2064
Einmal probiere ich es noch oder wurde der Support eingestellt?
Ist das Prob wirklich so schwer zu lösen.
Noch nicht mal die Leute bei dehnen es funktioniert melden sich zu Wort.
unglücklich
xundy
versuchs mal so:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
<?php
$filename="kontakt_auswertun.php"; 
require("./global.php");
$lang->load("KONTAKT");
function formregister()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }
       }
   } 
}
$errors=0;
$error="{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERRORS']}<ul>";
formregister('POST','Name');
formregister('POST','Email');
formregister('POST','Homepage');
formregister('POST','Betreff');
formregister('POST','Text');
$Text=preg_replace("/(\015\012)|(\015)|(\012)/","&nbsp;<br />", $Text);if($Name=="" || $Email=="" || $Betreff=="" || $Text=="" ){
$errors=1;
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR1']}";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR2']}";
$errors=1;
}
if($errors==1) eval("\$kontakt_error .= \"".$tpl->get("kontakt_error")."\";");
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Name: ".$Name."
Email: ".$Email."
Homepage: ".$Homepage."
Betreff: ".$Betreff."
Text: $Text
";
$message = stripslashes($message);

mail("$webmastermail","$Betreff (Nachricht von $Name)",$message,"From: $master_board_name");
eval("\$kontakt_danke .= \"".$tpl->get("kontakt_danke")."\";");
}
eval("\$tpl->output(\"".$tpl->get("kontakt_auswertung")."\");");
?>


Ist zwar alles ein wenig unsinnig formatiert, warum man das Betreff und alles nochmal im nachrichtentext ausgibt ist mir schleierhaft, ein richtiger Header wird auch nicht gesendet(damit hohe wahrscheinlichkeit an Spamfiltern hängen zu bleiben) und html-Mails sind auch nicht möglich.

mfg
Mfg
sys2064
Erstmal Danke xundy smile
Hat aber leider nichts geändert eine Zeile Sauber,
aber dann wie gehabt kein Zeilenumbruch in der Mail...
auf Standartformatierungen könnte ich ja verzichten.
Aber mehr als eine Zeile, und ein vernünftiger Umbruch derselben.
Wenn das Teil nicht so nice ausschauen würde hätte ich es schon längst rausgeschmissen :motz
xundy
Hi versuche es mal damit:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
<?php
$filename="kontakt_auswertun.php"; 
require("./global.php");
$lang->load("KONTAKT");
function formregister()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }
       }
   } 
}
$errors=0;
$error="{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERRORS']}<ul>";
formregister('POST','Name');
formregister('POST','Email');
formregister('POST','Homepage');
formregister('POST','Betreff');
formregister('POST','Text');
$Text=preg_replace("/(\015\012)|(\015)|(\012)/","&nbsp;<br />", $Text);if($Name=="" || $Email=="" || $Betreff=="" || $Text=="" ){
$errors=1;
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR1']}";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR2']}";
$errors=1;
}
if($errors==1) eval("\$kontakt_error .= \"".$tpl->get("kontakt_error")."\";");
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message= stripslashes($Text);

mail("$webmastermail","$Betreff (Nachricht von $Name)",$message,"From: $master_board_name");
eval("\$kontakt_danke .= \"".$tpl->get("kontakt_danke")."\";");
}
eval("\$tpl->output(\"".$tpl->get("kontakt_auswertung")."\");");
?>


Mfg
sys2064
code:
1:
1234&nbsp;<br />test&nbsp;<br />hallo&nbsp;<br />ware liebe alles beschissen


war jetzt das Anzeigeergebniss verwirrt

könnte das evtl vielleicht noch mit dem Mailserver etwas zu tun haben ?
Board oder Hoster
Währe halt seltsam weil alles andere auch systemeldungen kommen per html und clean.
Ebenso dein Newsletter absolut Problemlos.
xundy
habe den Fehler gerade erst gesehen, ersetze den Code nochmals mit diesem:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
<?php
$filename="kontakt_auswertun.php"; 
require("./global.php");
$lang->load("KONTAKT");
function formregister()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }
       }
   } 
}
$errors=0;
$error="{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERRORS']}<ul>";
formregister('POST','Name');
formregister('POST','Email');
formregister('POST','Homepage');
formregister('POST','Betreff');
formregister('POST','Text');
if($Name=="" || $Email=="" || $Betreff=="" || $Text=="" ){
$errors=1;
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR1']}";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR2']}";
$errors=1;
}
if($errors==1) eval("\$kontakt_error .= \"".$tpl->get("kontakt_error")."\";");
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message= stripslashes($Text);

mail("$webmastermail","$Betreff (Nachricht von $Name)",$message,"From: $master_board_name");
eval("\$kontakt_danke .= \"".$tpl->get("kontakt_danke")."\";");
}
eval("\$tpl->output(\"".$tpl->get("kontakt_auswertung")."\");");
?>


Damit sollte es nun klappen

Mfg
günny
das mit dem zeilenumbruch, klappt jetzt das einzige was allerdings nicht mehr in der mail angezeigt wird ist:

Name:
Email:
Homepage:
sys2064
Zitat:
Original von günny
das mit dem zeilenumbruch, klappt jetzt das einzige was allerdings nicht mehr in der mail angezeigt wird ist:

Name:
Email:
Homepage:


same bei mir auch aber ein gewaltiger Fortschritt geschockt
Denke mal das xundy das auch noch hinbekommt.

Erst mal thx Freude
xundy
Das mit Betreff und Empfänger hae ich rausgenommen da dies eigentlich schon im Header stehen sollte, aber eagl dann herrscht hoffentlich endlich Ruhe Augenzwinkern
hier noch der Code mit diesen Angaben im Mailtext:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
<?php
$filename="kontakt_auswertun.php"; 
require("./global.php");
$lang->load("KONTAKT");
function formregister()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }
       }
   } 
}
$errors=0;
$error="{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERRORS']}<ul>";
formregister('POST','Name');
formregister('POST','Email');
formregister('POST','Homepage');
formregister('POST','Betreff');
formregister('POST','Text');
if($Name=="" || $Email=="" || $Betreff=="" || $Text=="" ){
$errors=1;
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR1']}";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>{$lang->items['LANG_KONTAKT_AUSWERTUNG_ERROR2']}";
$errors=1;
}
if($errors==1) eval("\$kontakt_error .= \"".$tpl->get("kontakt_error")."\";");
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Name: ".$Name."
Email: ".$Email."
Homepage: ".$Homepage."
Betreff: ".$Betreff."
Text: ".$Text."
";
$message= stripslashes($message);

mail("$webmastermail","$Betreff (Nachricht von $Name)",$message,"From: $master_board_name");
eval("\$kontakt_danke .= \"".$tpl->get("kontakt_danke")."\";");
}
eval("\$tpl->output(\"".$tpl->get("kontakt_auswertung")."\");");
?>


Mfg
sys2064
Zitat:
Original von xundy
Das mit Betreff und Empfänger hae ich rausgenommen da dies eigentlich schon im Header stehen sollte, aber eagl dann herrscht hoffentlich endlich Ruhe Augenzwinkern


Na also von meiner Seite her gibt es da nix mehr zu meckern
Evtl vielleicht andere die nach xhtmlvalid oder so fragen aber so vermessen bin ich nicht großes Grinsen

Und sollange du nicht selbst so ein Teil bei dir veröffentlichst werde ich diesen nutzen. Wollte ja niemanden Nötigen Augenzwinkern

Mail die gekommen ist und soweit sitzt das jetzt auch

Zitat:
Name: Besucher
Email: sys2064@gmx.ch
Homepage: http://www.kusel-lebt.de
Betreff: Testmail
Text: Das der "xundy" doch mal gut hinbekommen großes Grinsen
1234
5678 noch mal testen
Digges Dankeschön für den Support
günny
und für alle die den betreff gerne vorgegeben hätten anstatt das der user ihn selber tippen muß macht folgendes:

suche im template kontakt nach:

code:
1:
2:
3:
<tr><td class="tableb"> {$lang->items['LANG_KONTAKT_FORMULAR_BETREFF']}{$lang->items['LANG_KONTAKT_FORMULAR_NOTWENDIG']}</td>
<td class="tableb">
<input name='Betreff' type=text /></td></tr>


ersetze diesen code gegen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<tr><td class="tableb"> {$lang->items['LANG_KONTAKT_FORMULAR_BETREFF']}{$lang->items['LANG_KONTAKT_FORMULAR_NOTWENDIG']}</td>
<td class="tableb">
  <select name='Betreff' type=text />
  <option value="">
</option>
<option value="Style WBB 2.3.x">
Style WBB 2.3.x</option>
<option value="Style WBB 2.2.x">
Style WBB 2.2.x</option>
<option value="Style WBB 2.1.x">
Style WBB 2.1.x</option></td></tr>


wobei Style WBB 2.3.x usw. angepasst werden muß an euren text

das ganze ist beliebig erweiterbar siehe bild
sys2064
großes Grinsen der Günny mal wieder
Eine Starke Erweiterung ... Mega THX dafür Freude
buddha
na eeendlich! Augenzwinkern

endlich das problem aus der welt geschafft..

ein paar kleine fehler sind da immer noch,
die mich zwar nich stören,..
aber damit es komplett sauber is... Augen rollen

also im quelltext kleiner schreibfehler:

nicht:
php:
1:
$filename="kontakt_auswertun.php";


sondern:
php:
1:
$filename="kontakt_auswertung.php";


und:

bei der 'auswertung' kriegt man z.b. folgendes zu sehn:
Zitat:
Kontakt
Vielen Dank!
Ihr Nachricht wurde versendet und wir werden uns schnellst möglich darum kümmern.

Inhalt der Email:
Name: sgfsdfs
Email: ssdfsd@aol.com
Homepage: asdad
Betreff: asdad
Nachricht: asdasdasdasd sa das das das das das dasd asdasasdsd


obwohl man mit absätzen geschriebn hat:
Zitat:

| Nachricht:* |

asdasdasdasd
sa
das
das
das
das
das
dasd
asdasasdsd


kann man diesen kleinen fehler für alle mal beseitigen? smile
vielen.. vielen dank!


MfG
buddha
mensl
kannst du bitte mal hetzt die download datei auf den neusten stand bringen?

denn ich weiß net wie und was ich da ändern soll damit das klapt
buddha
ja.. selbstverständlich! Augenzwinkern

hab alle fehler behobn,
die gelöst wurdn... und die umlaute
in den templates korrigiert...
also alle fehler...
bis auf die, die ich grad oben^^ genannt hab... smile


MfG
buddha
forum_jo
Hallo,
ich habe mein Board auf offline geschaltet, ich möchte aber dass die user trotzdem per formmailer in kontakt mit mir treten können.

Bloß jetzt geht dass nicht... weil immer die Offline Meldung kommt. Wie geht es dass das Board offline bleibt die User mir aber trotzdem per forrmailer nachrichten übermitteln können?
xaser
Hm Für den über mir, habe ich keine Ahnung fröhlich . Aber hier eine kleine Sache, Für leute, die nur registrierten Usern das senden erlauben wollen, und als Name gleich den benutzernamen des Users eingetragen haben wollen, eine kleine erweiterung, oder änderung:

Suche in der kontakt.tpl

php:
1:
<input type=text name='Name'></td></tr>


Ersetze durch

php:
1:
<input type=text name='Name' value=$nick readonly></td></tr>


Suche in der kontakt.php

php:
1:
require("./global.php");


Füge darunter ein:

php:
1:
$nick=$wbbuserdata['username'];



Fertig, nun steht da der Username, wenn man aufs formular geht, und er ist nicht weglöschbar fröhlich

Ist jetzt nicht in dem sinn eine erweiterung, sondern nur für die leute die es brauchen, so wie ich.

Natürlich müst ihr dann auch noch die Rechte in der PHP Datei coden, das gäste eben die access_error seite sehen!

WICHTIG - Die Änderungen gelten für die Basis Version, nicht die weitergeschriebene von den Usern, hier im Thread

fröhlich

Have Fun