Page 1 of 2

Userdefiniertes Tag

Posted: Mon Sep 18, 2006 12:12 am
by Grega
Moin.

Da ich ja solche Probleme mit dem FeedbackForm habe, habe ich mich mal an den Userdefinierten Tags versucht. Dazu habe ich ein neues UDT erstellt. Oben wird eine Validierungs-Klasse included, darunter ist ein simples Formular mit den Feldern "name", "email" und "kommentar". Die Klasse ist, wie schon gesagt, zum Überprüfen der Eingaben da. Läuft auch wunderbar. Ist dies nicht richtig ausgefüllt meckert er, ist jenes nicht richtig pöbelt er auch, bis alles richtig ausgefüllt ist. Drückt man dann auf den Sendebutton, erhalte ich eine Mail und im Browser wird mir die "Danke blablabla"-Meldung angezeigt. Wo ist also das Problem? Jaaaa, meine Mail ist leer! Sie kommt wunderbar an, hat nur keinen Inhalt. :( Das Skript läuft sonst in handgeklöppelten Seiten 1a. Gibt es Probleme beim Übergeben von Variablen? Das untere Ende des Formulars schaut so aus:

Code: Select all

(...)
if ($processor->validate()) {

 $empfaenger = 'meinname@meinedomain.de';
 $betreff = 'Kontakt via Formular';
 $header = "From: meinname@meinedomain.de" . "\n" .
   	"Reply-To: ".$email."" . "\n" .
   	"X-Mailer: PHP/" . phpversion();

 mail($empfaenger,$betreff,$kommentar,$header);
 echo "<p>Vielen Dank für Dein Interesse. Blablabla</p>";
} else {
 $processor->display();
}
Liegt das an CMSMS?

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 1:14 pm
by Piratos
Na ich würde zumindest aus dem Formular die $_POST - Inhalte auslesen, sonst wird das nichts.

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 1:43 pm
by Darien
Grega wrote: Moin.

Da ich ja solche Probleme mit dem FeedbackForm habe, habe ich mich mal an den Userdefinierten Tags versucht.
Ich weiß nicht, ob ich das schon gefragt habe, aber hast Du schon das FormBuilder-Modul probiert ? Bei mir läuft es mit CMSms 1.0.1 problemlos !

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 2:13 pm
by Grega
@Piratos: Jep. das war's. Danke. Schussel ich.

@Darien: Ja, läuft auch gut. Nur wollte ich das Formular in seiner Syntax ändern (weg vom tabellen-Layout) und dazu muss ich an die Files ran. Da es aber via XML installiert ist, sind die Rechte so blöde und man kommt nicht ran. Also entschied ich mich für eine hausgemachte Lösung. :)

Zum Thema: Das Skript funktioneirt nun klasse. Es bekommt die Variablen wunderschön übergeben. Aber: Das leidige Thema mit den Sonderzeichen. Also habe ich meinen Header erweitert und dabei kam das heraus, was aber leider nicht klappt. Wo liegt der Hund begraben?

Code: Select all

(...)
if ($processor->validate()) {
   
$empfaenger = 'meinname@meinedomain.de';
$betreff = 'Kontakt via Formular';
$header = "MIME-Version: 1.0". "\n".
	"Content-type: text/html; charset=iso-8859-1". "\n".
	"From: meinname@meinedomain.de" . "\n" .
  	"Reply-To: ".$_POST['email']."" . "\n" .
   	"X-Mailer: PHP/" . phpversion();

mail($empfaenger,$betreff,$_POST['kommentar'],$header);
	echo "<p>Vielen Dank für Dein Interesse. Blablabla</p>";
} else {
    $processor->display();
}
Was ich übrigens nicht verstehe. Schau ich in den Header meiner empfangenen Mail, dann steht da nämlich u.a.:
(...)
Mime-Version: 1.0
Content-Type: text/html; charset=iso-8859-1
X-Mailer: PHP/4.4.1
(...)

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 2:57 pm
by Piratos
Zum Thema Sonderzeichen:

da must du mal testweise so etwas einbauen:

$meinevariable = htmlentities($meinevariable,ENT_NOQUOTES,'ISO-8859-1');


Zum Setzen über Parameter würde ich das einbauen:

$encode =isset($params['encode']) ? $params['encode']:'ISO-8859-1';

dann wird es also  $meinevariable = htmlentities($meinevariable,ENT_NOQUOTES,$encode)

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:10 pm
by Grega

Code: Select all

(...)
if ($processor->validate()) {

$dertext = htmlentities($_POST['kommentar'],ENT_NOQUOTES,'ISO-8859-1');
$empfaenger = 'meinname@meinedomain.de';
$betreff = 'Kontakt via Formular';
$header = "MIME-Version: 1.0". "\n".
		"Content-type: text/html; charset=iso-8859-1". "\n".
		"From: meinname@meinedomain.de" . "\n" .
  		"Reply-To: ".$_POST['email']."" . "\n" .
   		"X-Mailer: PHP/" . phpversion();

mail($empfaenger,$betreff,$dertext,$header);
Ne. Das klappt so leider nicht. Kommen immer noch vermurkse Sonderzeichen bei heraus. :(

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:21 pm
by cyberman
Grega wrote:

Code: Select all

(...)
$dertext = htmlentities($_POST['kommentar'],ENT_NOQUOTES,'ISO-8859-1');
Kommen immer noch vermurkse Sonderzeichen bei heraus. :(
Standardmäßig ist CMSms auf utf-8 eingestellt. Wenn du dein CMSms NICHT auf ISO-8859-1 angepasst/umgestellt hast (config.php) liefert dein Formular wahrscheinlich die Daten im utf-8 Format.

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:37 pm
by Grega
Habe schon vorher etwas rumgespielt. Jetzt also die volle Packung: Sowohl Piratos' Hinweis, als auch eine Umstellung auf iso-8859-1 in den Meta-Tags der Seite und eine Umstellung auf iso-8859-1 in der config.php. Es gibt immer noch nur:
Schöne grüne Äpfel.
Und schön sind die nicht... :(

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:41 pm
by cyberman
Und du hast sicherlich auch schon daran gedacht, nach der Änderung an der config.php den Cache zu löschen  ??? ...

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:44 pm
by Grega
Natürlich.... - nicht. *flöt* Aber auch nach dem Löschen des Chaches bekomme ich nur faule Äpfel, jedoch keine Umlaute.

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 3:45 pm
by Piratos
Die CMS läuft normal unter UTF-8, deswegen ja Übergabe als Parameter zum testen.

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 4:27 pm
by Grega
Ok, dann muss ich mich mal outen als nicht ganz wissend, was Du damit meinst. Schaut bei mir jetzt so aus (mata-Angabe immer noch auf iso, ebenso in der config.php):

Code: Select all

(...)
if ($processor->validate()) {
$encode =isset($params['encode']) ? $params['encode']:'ISO-8859-1';
$dertext = htmlentities($_POST['kommentar'],ENT_NOQUOTES,$encode);
$empfaenger = 'meinname@meinedomain.de';
$betreff = 'Kontakt via Formular';
$header = "MIME-Version: 1.0". "\n".
		"Content-type: text/html; charset=iso-8859-1". "\n".
		"From: meinname@meinedomain" . "\n" .
  		"Reply-To: ".$_POST['email']."" . "\n" .
   		"X-Mailer: PHP/" . phpversion();

mail($empfaenger,$betreff,$dertext,$header);
So klappt es jedenfalls nicht. Denke aber einmal, ich habe Dich da auch falsch verstanden?

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 4:29 pm
by Piratos
Einfach mal verschiedene Charsets probieren  aber vorher mal phpinfo ansehen, welche charsets dein webserver akzeptiert.

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 4:51 pm
by Grega
Ach da war der Fehler... In der config.php sah ich nur ein utf-8, das ich in ISO-8859-1 geändert habe. Das war $config['admin_encoding'] = 'utf-8'; (hier wieder in utf-8 geändert)). Jetzt noch einmal darüber den Iso-Wert eingeben ($config['default_encoding'] = 'ISO-8859-1';) und das mit dem Mailen klappt. Nur, dass nun in der Navigation (und der Brotkrume) keine Sonderzeichen mehr dargestellt werden. *zumverzweifeln*  :-\

Re: Userdefiniertes Tag

Posted: Mon Sep 18, 2006 5:50 pm
by Piratos
UTF-8 müsste eigentlich für die cms i.O. sein.

Vielleicht liegt es aber einfach an den Einstellungen deines Email Programmes.  Bei Thunderbird ist es bei mir z.B. ISO 8859-15 und 0 Probleme.