Support Telefon: 0228 / 280 56 68 - Mo-Fr. 09-18.00

Suche

Suche

Partner & Reseller CMS werden

Support

Forum Plugins

Formularmanager

Guten Tag,

ich habe da mal eine Frage zum Formularmanager. Ich gebe die Daten in das Formular ein und will Sie versenden. Nach dem Klick auf den OK-Bottom kommt z.B. die im Manager angegebene Nachricht: "Das von Ihnen angeforderte Blabla wird morgen versendet." Realisiert wird das durch folgenden Code:

----------------------
----------------------

if ($this->checked->fertig == 1) {
// $this->cms->make_lang_id();
$sql = sprintf("SELECT * FROM %s
WHERE form_manager_id_id='%s'
AND form_manager_lang_id='%s'",
$this->cms->tbname['papoo_form_manager_lang'],
$this->db->escape($this->checked->form_manager_id),
$this->db->escape($this->cms->lang_id)
);
$result = $this->db->get_results($sql);
// print_r($result);
if (!empty ($result)) {
foreach ($result as $spalte) {
$this->content->template['form_html'] = "nodecode:" . $spalte->form_manager_antwort_html;
}
}

----------------------
----------------------

Soweit so gut. Nun möchte ich aber dort zusätzlich die Inhalte der Formularfelder haben. Da ich was PHP angeht ein nOOb bin, mich aber natürlich täglich weiter entwickle, bekomm ich das einfach nicht hin. Ich habe schon versucht die Formularfelder (vorher als Variable definiert) über $_Post auszugeben... nur Fehlermeldungen. Kann mir da bitte jemand einen Denkanstoß geben.


Von nicinudel am 29.05.2008; 10:22:25 Uhr [1142 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hi,

naja, das ist nicht ganz trivial. Du bist da schon an der richtigen Stelle...
if ($this->checked->fertig != 1) {
$_SESSION['formdat']=$this->checked;

}
if (!empty ($result)) {

//hier erweitern
foreach ($_SESSION['formdat'] as $key=>$value)
{
//debugging
echo $key;
echo $value;
//Hier noch filtern auf xss und böses HTML

...

//Dann ausgabe an das template
$this->content->template[$key]=$value;
}

}

Das sollte dir weiterhelfen.

Viele Grüße,

Carsten



Von Carsten Euwens am 30.05.2008; 11:24:57 Uhr [64 Hits] Kunden Papoo Enterprise (manuell)

Re: Formularmanager

Aber warum denn jetzt ungleich ...

if ($this->checked->fertig != 1)

Oder soll ich da eine neue Abfrage rein bauen? Und wie stell ich das filtern an, kannst Du mir da bitte ein Beispiel nennen.


Von nicinudel am 03.06.2008; 11:57:11 Uhr [6 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hi,

wie gesagt das ist nicht trivial.

Das Formular wird nach dem Verschicken neu geladen und dann kommt erst die Ausgabe.

Daher wird die Session Variable da befüllt um die Daten rüberzugeben.

Viele Grüße,

Carsten



Von Carsten Euwens am 03.06.2008; 14:01:48 Uhr [15 Hits] Kunden Papoo Enterprise (manuell)

Re: Formularmanager

Ok, das hab ich verstanden. Eine Sache noch, was meinst Du mit

//Hier noch filtern auf xss und böses HTML

?


Von nicinudel am 03.06.2008; 16:05:02 Uhr [21 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hi,

z.B.:
http://de.wikipedia.org/wiki/Cross-Site_Scripting

Das sollte man beachten.

Viele Grüße,

Carsten



Von Carsten Euwens am 03.06.2008; 18:37:20 Uhr [16 Hits] Kunden Papoo Enterprise (manuell)

Re: Formularmanager

So, hab wieder bissl Zeit gefunden. Danke für den Link.

Das Script funktioniert "fast".

Wenn ich folgenden Code stehen lasse, kommt zwar ne Fehlermeldung, aber in der Fehlermeldung übergibt er mir die Daten. Die Variablen sind also gefüllt.
..
//debugging
echo $key;
echo $value;
..

Die Datenausgabe an das Template hab ich angepasst:

..
$this->content->template['form_html']= 'test';
..

--> Er gibt "test" aus.

Wenn ich nun aber die Variablen ausgeben möchte, zeigt er mir nur "Array" an.

..
$this->content->template['form_html'][$key] = $value;
..

--> --> Er gibt "Array" aus.

Ich komm leider nicht auf den Fehler. Irgendwie schaffe ich es nicht die Variablen anzuzeigen. Kannst Du mir da BITTE einen Tipp geben?

Ach ja: Bei der "vorgegebenen" Variante ($this->content->template[$key]=$value;) gibt der Browser gar keine Daten zurück.


Von nicinudel am 04.06.2008; 11:27:15 Uhr [15 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hi,

ich denke das hilft dir weiter:
http://www.smarty.net/manual/en/language.function.foreach.php

Viele Grüße,

Carsten



Von Carsten Euwens am 04.06.2008; 13:32:18 Uhr [6 Hits] Kunden Papoo Enterprise (manuell)

Re: Formularmanager

Ok, hab's endlich geschnallt. Ich muß meinen Arbeitgeber mal zu einem PHP-Kurs übereden!? Ein Prob gibt es zwar noch, er gibt mir jetzt noch unwichte Werte (für den Besucher) aus wie menuid oder rootid. Aber das bekomm ich sicher noch raus.

Vielen Dank.
Gruß Andreas


Von nicinudel am 04.06.2008; 15:53:42 Uhr [97 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hallo, ich noch mal. Sorry, aber jetzt bin ich verwirrt. Mitfolgendem Code habe ich gestern noch alle Formulardaten (Name, Strasse, Ort, ...) ausgeben können.

---------------------
-----------------------
if ($this->checked->fertig == 1) {

$result = $this->db->get_results($sql);

if (!empty ($result)) {

//hier erweitern
foreach ($_SESSION['formdat'] as $key=>$value)
{
//debugging
$formausgabe .= $key . ": " . $this->html2txt($value) . "\n";

//Dann ausgabe an das template
//$this->content->template[$key]=$value;
$this->content->template['form_html'] = $formausgabe;

}
}

------------------------
------------------------

Jetzt werden mir nur folgende Werte ausgegeben:

menuid: 21
fertig: 1
template: db_formular/templates/form.html
db_formular_id: 1
page:
mod_style_id: 60
msgid: 0
forumid:
formmenuid: 0
forumid_tmpl: 0
formforumid: 0
rootid: 0
formmsgid: 0
reporeid: 0
spamcode:

Ich komm da einfach nicht weiter.


Von nicinudel am 11.06.2008; 12:45:18 Uhr [48 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Ich fang noch mal von vorne an, siehe folgendes Script (Anfang des Threads):

if ($this->checked->fertig == 1) {
// $this->cms->make_lang_id();
$sql = sprintf("SELECT * FROM %s
WHERE form_manager_id_id='%s'
AND form_manager_lang_id='%s'",
$this->cms->tbname['papoo_form_manager_lang'],
$this->db->escape($this->checked->form_manager_id),
$this->db->escape($this->cms->lang_id)
);
$result = $this->db->get_results($sql);
// print_r($result);
if (!empty ($result)) {
foreach ($result as $spalte) {
$this->content->template['form_html'] = "nodecode:" . $spalte->form_manager_antwort_html;
}
}

-------------------------

Dieses Script hab ich zu Testzwecken radikal abgeändert:

if ($this->checked->fertig == 1) {

$result = $this->db->get_results($sql);
if (!empty ($result)) {
$this->content->template['form_html'] = $_SESSION['cPLZ'];
}

-------------------------

Vor dem ersten "if" füll ich die Variable wie folgt:

$_SESSION['cPLZ'] = 'testinhalt';

Ergebnis: Ausgabe von: testinhalt (Klappt also)

-------------------------

Dann füll ich die Variable mit dem Inhalt eines Formularfeldes:

$_SESSION['cPLZ'] = $_POST["PLZ"];

Ergebnnis: Keine Ausgabe (Die Variable ist vor dem ersten if aber gefüllt, hab es getestet mit ... echo $_SESSION['cPLZ'] ... (Ausgabe von: 12345)

--------------------------

Warum werden feste Werte wie 'testinhalt' übernommen, aber keine $_Post? Das kann doch bei PHP nicht so schwierig sein. Hängt das mit dem Papoointernen Script zusammen? Wäre echt super, wenn Ihr mir da weiter helfen könntet!?

Gruß Andreas


Von nicinudel am 12.06.2008; 15:54:23 Uhr [105 Hits] Kunde Papoo Business 4.0.3

Re: Formularmanager

Hallo Andreas,

vermutlich heißt das Feld nicht "PLZ" sondern "cPLZ". Du solltest im HTML-Code sehen wie deine FElder genau heißen. <input .. name="xxx"... />



Von b.legt210 am 16.06.2008; 12:16:25 Uhr [61 Hits] Entwickler

Re: Formularmanager

Ach ja, hab ganz vergessen die Lösung zu präsentieren.

Bevor die Abfrage beginnt einfach die Daten in eine Session schreiben. Etwa so:

//Starten der Session - Formulardaten werden in einer Session gespeichert
session_start();
foreach($_POST as $key => $value){
$_SESSION['formulardaten'][$key] = $value;
}

----------------------

Dann die Werte ausgeben. Z.B.:

$_SESSION['formulardaten'];

oder die einzelnen Werte:

$_SESSION['formulardaten']['nameFormularfeld'];

Natürlich immer in Verbindung mit:

$this->content->template['form_html'] = ...


Von nicinudel am 02.07.2008; 09:55:23 Uhr [84 Hits] Kunde Papoo Business 4.0.3

Sie müssen sich anmelden, um einen Beitrag schreiben zu können.

Anfrage stellen

Warenkorb

Derzeit befindet sich nichts in Ihrem Warenkorb.
#start#

Facebook

Newsletter abonnieren.

Ihre Daten

Login

Login




Registrierung.
. Passwort vergessen?
.

Seminarkalender

Mo Di Mi Do Fr Sa So
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
.

xxnoxx_zaehler

.

xxnoxx_zaehler