Kontaktformular

Hier dreht sich alles um die auf der Webseite veröffentlichten Tutorials. // This forum is all about the APF tutorials.
Avedo

Re: Kontaktformular

Beitrag von Avedo » 22.03.2010, 00:00:51

Guten Abend!

Habe mal die entsprechende Zeile geändert. Das funktionierte auch soweit. Dann gab es nur noch einen Fehler beim Absenden der Email, dass in der Klasse Singleton die Klasse Logger nicht bekannt sei. Ein einfaches

Code: Alles auswählen

import("core::logging", "Logger");
löste das Problem sofort. Leider besteht weiterhin das Problem, dass der Absender nicht richtig eingetragen wird. Die entsprechende Konfigurationsdatei ist jedoch eingebunden.

Liebe Grüße,

Andreas

EDIT: Mir ist gerade noch aufgefallen, dass er nun, nachdem ich die zeile geändert habe, Probleme bei der Umstellung der Mehrsprachigkeit hat. Alle Umstellungen auf Basis von Sprachdateien sind kein Problem, jedoch wird immer im Namespace blablubb::de nach Content-Dateien gesucht.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 22.03.2010, 10:56:57

Hallo Andreas,
Dann gab es nur noch einen Fehler beim Absenden der Email, dass in der Klasse Singleton die Klasse Logger nicht bekannt sei.
Das ist sehr komisch. Der Logger wird bereits in der pagecontroller.php implizit über

Code: Alles auswählen

import('core::errorhandler','errorhandler');
import('core::exceptionhandler','exceptionhandler');
eingebunden, die jeweils ein

Code: Alles auswählen

import('core::logging','Logger');
enthalten. Das darf nicht passieren. Was hast du für eine PHP-Version? Es gab zu diesem Phenomen mal einen Bug in 5.1.x, der entweder das Inkludieren innerhalb von Funktionen ganz oder nur ab einer gewissen Schachtelungs-Tiefe verweigerte. Ich hoffe in neueren Versionen ist der raus.
Leider besteht weiterhin das Problem, dass der Absender nicht richtig eingetragen wird. Die entsprechende Konfigurationsdatei ist jedoch eingebunden.
Da scheint doch an einigen Stellen nach dem Refactoring in 1.12 der Wurm drin zu sein. Ich mache dir einen Vorschlag: spare das Kontakt-Formular mal aus und fahre mit dem Rest deiner TODOs fort, ich schau mir das heute Abend an (habe leider gerade keine Entwicklungs-Umgebung zur Hand) und melde mich mit einem funktionierenden Stand. Alles andere kostet dir einfach zu viel Zeit.
EDIT: Mir ist gerade noch aufgefallen, dass er nun, nachdem ich die zeile geändert habe, Probleme bei der Umstellung der Mehrsprachigkeit hat. Alle Umstellungen auf Basis von Sprachdateien sind kein Problem, jedoch wird immer im Namespace blablubb::de nach Content-Dateien gesucht.
Das ist genau das Problem, von dem ich in meiner Mail gesprochen habe. ;) Die Mehrsprachigkeit ist in diesem Fall nicht optimal umgesetzt, man hätte das komplett auf einer index.php basierend umsetzen können, dann müsstest du keine derartigen Anpassungen vornehmen. Für den konkreten Fall müsstest du in den Templates für die unterschiedlichen Sprachen auch die Ordner-Struktur (/de und /en) beachten und die Links jeweils diesbezüglich anpassen.

Besser wäre jedoch ein Satz von Templates mit Sprach-abhängigen Inhalten aus entsprechenden Dateien oder einer Datenbank. Das Umschalten der Sprache kannst du dann per Abfrage in der index.php und einem setLanguage() oder einer entsprechenden FC-Action erledigen. Wenn du möchtest, können wir die geplanten Tutorials schon in diesem Zug beginnen und eine saubere Seitenstruktur aufsetzen.
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 22.03.2010, 14:04:18

Guten Morgen!
Was hast du für eine PHP-Version?
Ich verwende momentan PHP Version 5.2.6-1+lenny3. Kann das auch leider nicht ändern, da ich nur einfachen Webspace habe.
... melde mich mit einem funktionierenden Stand ...
Das wäre wirklich super. Vielen Dank!
... man hätte das komplett auf einer index.php basierend umsetzen können ...
Könntest du mir das kurz skizzieren, wie du das meinst. Schaust du in meinen Quellcode wirst du feststellen, das ich bereits etwas von der Vorgehensweise der Demo-Version abgewichen bin. Allerdings würde ich dann schon gerne auf die geschicktere Variante umsteigen.
... können wir die geplanten Tutorials schon in diesem Zug beginnen und eine saubere Seitenstruktur aufsetzen.
Das hört sich gut an. Ich schreibe zwar die Tage noch eine Klausur, werde mich dennoch so bald wie möglich an einen kurzen Einstieg, wie du ihn in deiner Struktur auch vorgesehen hattest, setzen. Freue mich schon.

Liebe Grüße,

Andreas

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 22.03.2010, 20:55:04

Hallo Andreas,

ich habe nun das Kontakt-Formular fix refactored und getestet. Sowohl lokal als auch auf dem 1&1-Server auf dem die adventure-php-framework.org läuft funktioniert das Formular. In der DEFAULT_mailsender.ini steht bei mir

Code: Alles auswählen

[ContactForm]
Mail.SenderName = "Christian Achatz"
Mail.SenderEMail = "christian.achatz@adventure-php-framework.org"
Mail.ReturnPath = "christian.achatz@adventure-php-framework.org"
Mail.ContentType = "text/plain; charset=iso-8859-1"
und in den ankommenden Mails ist auch

Code: Alles auswählen

Betreff:  	 	Test2  	
Von: 		Christian Achatz <christian.achatz@adventure-php-framework.org> 	
An: 		        *** 	
Datum: 		22.03.10 19:45:43
enthalten. Ich behaupte also, dass es nun auch bei dir funktionieren muss. Beim Refactoring habe ich die Einbindung etwas verändert, das einzubindende Template ist nun nicht mehr kontakt.html sondern contact.html.

Sollte das bei dir nicht funktionieren, baue ich mal lokal ein Package mit einer funktionierenden Konfiguration auf und stelle es dir zur Verfügung. Vielleicht finden wir so den Fehler leichter.
Viele Grüße,
Christian

Avedo

Re: Kontaktformular

Beitrag von Avedo » 23.03.2010, 01:39:17

Guten Abend!

Ich habe Kopfschmerzen. So oft kann man garnicht den Kopf auf die Tischplatte knallen. Nun wird der Name richtig angezeigt. Bei mir stand in der Konfigurationsdatei Kontaktformular. In deiner stand ContactForm ich habe es geändert und siehe da... es funktioniert. Steht denn auch Standard bei dir oder etwas anderes?

Liebe Grüße,

Andreas

Benutzeravatar
dr.e.
Administrator
Beiträge: 4537
Registriert: 04.11.2007, 16:13:53

Re: Kontaktformular

Beitrag von dr.e. » 23.03.2010, 08:44:32

Hallo Andreas,

schön, dass es nun läuft. :geek:

Ich habe gerade mal geprüft, in der Beispiel-Konfiguration steht tatsächlich noch "Kontaktformular", was natürlich für das Setup extrem blöd ist. :roll: Ich hab das gleich mal ausgebessert und oben im Tutorial den richtige Sektions-Kenner eingesetzt.
Steht denn auch Standard bei dir oder etwas anderes?
Jep, Die EXAMPLE_mailsender.ini sieht jetzt wie folgt aus:

Code: Alles auswählen

[Standard]
Mail.SenderName = "adventure-php-framework.org"
Mail.SenderEMail = "info@adventure-php-framework.org"
Mail.ReturnPath = "info@adventure-php-framework.org"
Mail.ContentType = "text/plain; charset=iso-8859-1"

[ContactForm]
Mail.SenderName = "adventure-php-framework.org"
Mail.SenderEMail = "info@adventure-php-framework.org"
Mail.ReturnPath = "info@adventure-php-framework.org"
Mail.ContentType = "text/plain; charset=UTF-8"
Viele Grüße,
Christian

Nova
Beiträge: 31
Registriert: 22.07.2010, 11:57:29

Re: Kontaktformular

Beitrag von Nova » 22.07.2010, 12:03:10

kleine OT Frage:

gibt es eigentlich die Möglichkeit ein Formularelement mithilfe von zwei Validierungen zu überprüfen und ggf. Fehlermeldungen auszugeben?
z.B.:
Eine Postleitzahl darf sowohl nur Zahlen haben,
und sollte aus genau 5 Zeichen bestehen

gibt der User nun Buchstaben ein,
sollte die Fehlermeldung "Bitte nur Zahlen eingeben" ausgeben,
gibt er weniger als 5 Zeichen ein
sollte die Fehlermeldung "Bitte genau 5 Zeichen eingeben" ausgegeben werden.

Ist soetwas möglich?
und wenn ja: wie packe ich das am besten an?

Gruß,
Nova

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: Kontaktformular

Beitrag von Coach83 » 22.07.2010, 12:36:53

Ich würds so lösen - aber selbst noch Neuling :-):

Code: Alles auswählen

<html:form name="my-form">
  <form:addvalidator class="TextLengthValidator" control="plz"  button="send"  /> 
  <form:addfilter class="OnlyIntegersFilter" button="send" control="plz"  />
  <form:text name="plz" minlength="5" maxlength="5"/>   
  <form:button name="send" value="Save" /> 
</html:form>

Nova
Beiträge: 31
Registriert: 22.07.2010, 11:57:29

Re: Kontaktformular

Beitrag von Nova » 22.07.2010, 13:08:22

schonmal danke für deine antwort
spezifisch auf das postleitzahlbeispiel funktioniert das natürlich mit maxlenght,
jedoch suche ich eher nach einer allgemeinen lösung bezüglich zweier validierungen

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Kontaktformular

Beitrag von Screeze » 22.07.2010, 13:14:14

Mit der aktuellen Version von 1.12 sollte das möglich sein, wie hier beschrieben. Die dokumentation dazu ist glaube ich noch nicht online, villeicht hilft das aber schonmal:

http://wiki.adventure-php-framework.org ... r-Listener

Nova
Beiträge: 31
Registriert: 22.07.2010, 11:57:29

Re: Kontaktformular

Beitrag von Nova » 22.07.2010, 13:48:33

ok, das sollte mit schonmal gut weiterhelfen, muss mich erstmal einlesen in das thema, aber vielen dank.

noch 2 Anfängerfragen zum Forular:

für jede Formularseite wird eine eigene table erstellt,
die UserID wir bei der ersten Seite erstellt, und soll danach übergeben werden.
Wie realisiert man das am besten?

und

bei einem Formularelement gibt es 10 Checkboxen,
davon sollen maximal 2 ausgewählt werden können.
wie kann man das sinnvoll realisieren?

Gruß,
Nova

APFelsahne
Beiträge: 222
Registriert: 18.03.2010, 13:13:07
Wohnort: Ludwigshafen am Rhein
Kontaktdaten:

Re: Kontaktformular

Beitrag von APFelsahne » 22.07.2010, 13:57:16

1. punkt bin ich nich ganz sicher ob ich das problem richtig verstanden habe. aber wenn du die userid an ein 2. script weiter geben möchtests kannst du den bsp. an die url anhängen (Also ein get-parameter) oder es über die session speichern (um nur zwei möglichkeiten zu nennen).

2.punkt: ich würd den checkboxen ein gleiches namensschema geben ( cb_[0-9]+ ). dann kannst du clientseitig (javascript) und serverseitig (php) die übergebenen elemente abfragen. im http-protokoll werden nur gesetzte checkbox-elemente übermittelt.
also kannst du serverseitig testen, ob mehr als 2 cb_*-elemente in $_GET existieren. wenn ja - fehlermeldung


grüße
Grüße, Florian
BildAPF-Extension wsCatalyst

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Kontaktformular

Beitrag von Screeze » 22.07.2010, 14:07:24

bei einem Formularelement gibt es 10 Checkboxen,
davon sollen maximal 2 ausgewählt werden können.
wie kann man das sinnvoll realisieren?
Hierfür würde ich versuchen einen einen validator zu schreiben, der in der validate() methode auf eine globale variable oder eine extra erstellte statische oder singleton klasse zugreift, in der bei jedem validate vorgang z.b. eine variable hochgezählt wird, und geprüft wird wie hoch die variable steht.
Sollte die mal über 2 kommen, wird jede folgende checkbox als invalid gekennzeichnet.

also:

Code: Alles auswählen

validate(){
    $count = MaxCheckBoxHandler::increment();
    if($count > 2){
        // invalid
        return [...];
    }
    //valide
}
bzw:

Code: Alles auswählen

[...]
static function increment(){
    MaxCheckBoxHandler::count++;
    return MaxCheckBoxHandler::count;
}
[...]
(das is blos mal quick'n'dirty pseudocode zum verdeutlichen)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast