Formular, das in csv-Datei schreibt

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Formular, das in csv-Datei schreibt

Beitragvon christobal » Di 6. Aug 2019, 14:06

Hallo aus dem Regenland Tirol,

Ich hab ein webEdition Formular type="formmail", bei dem sich Mitglieder zu Tagungen anmelden können. Der Wunsch des Kunden ist, dass das Formular an eine bestimmte Mailadresse, ein Bestätigungsmail an den Absender gesandt wird und die Daten zusätzlich in eine csv-Datei geschrieben werden.

Ich hab in meinen Unterlagen noch ein process.tmpl gefunden inkl. einem read.tmpl, aber ich weiß nicht wie da das Procedere aussieht! Kann mir da bitte wer helfen? Wäre sehr dankbar!

Christoph

process.tmpl

Code: Alles auswählen

<?php 

// Daten aus Formular uebernehmen 
$Vorname = $_POST['Vorname']; 
$Nachname = $_POST['Nachname']; 

// Pruefen ob Datei existiert 
if (file_exists("datei.csv")){ 
$data = $Vorname.";".$Nachname."n"; 
}else{ 
$data = ";".$Vorname.";".$Nachname."n"; 
} 

//datei oeffnen (a+) am Ende der Datei Inhalt hinzufügen 
$fp=fopen("datei.csv","a+") or die("Datei konnte nicht geoeffnet werden"); 

//schreibt ein csv file 
fwrite($fp, $data); 

// Datei schliessen 
fclose($fp); 

echo("Daten in csv Datei geschrieben"); 

?> 
<a href="read.php">Datei auslesen</a> 
read.tmpl

Code: Alles auswählen

<we:ifNotEditmode>

<?php 
// HTML Dokument aufbauen 
echo "<html><head><base href="/"><title>Lesen</title></head><body bgcolor=silver>"; 

// Tabellenformatierung 
echo "<table border=0 bordercolor=black cellspacing=0 cellpadding=5 width=100% style='font-size:12pt'>"; 

// Tabelleninhalt 
echo readAndParseCSVFile("datei.csv"); 

// Tabelle abschliessen 
echo "</table></body></html>"; 


function readAndParseCSVFile($filename) { 
// Dati oeffnen 
$fp = fopen($filename,"r") or die("Datei konnte nicht geoeffnet werden"); 

// Datei auslesen 
$file = fread($fp,65535); 

// Ersetzen der Trennzeichen durch HTML Tabellen-Tags 
$replaced = eregi_replace(";", "<td>", $file); 
$replaced2 = eregi_replace("n", "<tr><td>", $replaced); 
$replaced3 = eregi_replace("r", "<tr><td>", $replaced2); 

// Datei schliessen 
fclose($fp); 

// Rueckgabe des fertigen Tabelleninhalts 
return $replaced3; 
} 

?>

</we:ifNotEditmode>
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon christobal » Mo 12. Aug 2019, 10:43

Grüß Euch aus Tirol!

Kann mir da bitte wer helfen? Wo binde ich das process.tmpl ein? Logisch wäre das beim Feedbackformular onsuccess---! Aber wie?

Wäre um Tipps sehr dankbar!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon blickfang » Mo 12. Aug 2019, 13:11

Hi christoph,
das ist eher ein ephp Aufgabenstellung als es ein webEdition Thema wäre, vielleicht antwortet deshalb noch keiner ;-)
VG, Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon christobal » Mo 12. Aug 2019, 14:26

Ah, ok, danke!!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

helas
webEdition Partner
webEdition Partner
Beiträge: 79
Registriert: Do 4. Mär 2004, 13:00
Wohnort: Hannover
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon helas » Di 13. Aug 2019, 12:30

Hallo Christoph, schreibe die Mails bzw. Formular-Angaben doch einfach zusätzlich in Objekte.
Dann kannst du/dein Kunde diese als CSV auch aus webEdition exportieren.

Mit ein paar "Handgriffen" ist das schnell erstellt. Haben wir an unterschiedlichsten Stellen schon gemacht.

Vielleicht noch ein Hinweis: der Nutzer sollte über die Datenspeicherung vorab informiert werden. Stichwort DSGVO :)

Beste Grüße, Lars
<we:can>yes</we:can>

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon christobal » Di 13. Aug 2019, 14:16

Grüß Dich Lars!

Danke für den Hinweis! Kannst Du mir bitte einen Tipp geben, wie ich

Code: Alles auswählen

<we:form type="formmail" name="Kontaktformular" ... >
mit

Code: Alles auswählen

<we:write type="object" formname="Kontaktformular" publish="true" classid="19" onduplicate="overwrite" onpredefinedname="overwrite" forceedit="true" searchable="true" />
zusammenbringen kann?

Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon haydi » Do 15. Aug 2019, 09:52

Hallo Christoph,

hier ein schnipselchen wie es mit php geht...

Code: Alles auswählen

// neuer wert in DB abspeichern
$obj = new we_objectFile(); // klasse initialisieren
//$obj->initByID(123); --- wenn ein vorhandenes objekt überschrieben werden soll ;-)
$obj->we_new(); // wir legen aber ein ein neues an
$obj->TableID = 1; // id der klasse
$obj->setRootDirID(true);
$obj->resetParentID();
$obj->restoreDefaults();
$obj->Text = 'meinobjektname'; // objektname
$obj->Path = $obj->getParentPath().(($obj->getParentPath() != "/") ? "/" : "").$obj->Text;
$obj->setElement('meinfeld', 'meinvalue'); // dies hier so oft wiederholen und mit den werten der klasse mit seinen einträgen wiederholen wie man eben felder hat
//$obj->we_save(); -- ueberfluessig :-)
if (!$obj->we_publish()) {
 // schreiben war nicht erfolgreich
}
ciao
haydi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Formular, das in csv-Datei schreibt

Beitragvon mokraemer » Do 15. Aug 2019, 23:45

ohne es ausprobiert zu haben, ist doch evtl. die Variante die Daten erst in ein Objekt zu schreiben und dann mit den gespeicherten Daten eine Mail zu verschicken die einfachere Variante.
Man müßte das doch dann einfach mittels we:sendMail machen können - oder irre ich?
webEdition-Kern-Entwickler

helas
webEdition Partner
webEdition Partner
Beiträge: 79
Registriert: Do 4. Mär 2004, 13:00
Wohnort: Hannover
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon helas » Fr 16. Aug 2019, 14:25

...richtig. Auf der Zielseite erst we:sendmail... und dann

Code: Alles auswählen

<we:write type="object" formname="anmeldung" publish="true" classid="1" onduplicate="increment" onpredefinedname="appendto" />
Also, alles easy mit webEdition. :D
<we:can>yes</we:can>

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon christobal » Di 20. Aug 2019, 09:46

Hallo und vielen Dank für Eure Hilfe, bin schon weiter, Mail und Bestätigungsmail werden versandt, Objekte werden zwar angelegt aber nicht mit Inhalt befüllt?!

Hab es jetzt so gelöst, aber vermutl. noch einen Denkfehler eingebaut:

Code: Alles auswählen

<we:form type="object" name="anmeldung" classid="33"id="self">
<input type="text" id="Vorname" name="Vorname">
<input type="text" id="Nachname" name="Nachname">
<input type="email" id="email" name="email">
<button type="reset">verwerfen</button> 
<button type="submit">absenden</button>
<input type="hidden" name="sent" value="1" />
</we:form>

<we:ifVar name="sent" match="1" type="request">

<we:var type="request" name="email" to="global" nameto="recipientccmail"/>

<we:sendMail id="5011" subject="Bewerbung" recipient="admin@bigdetail.com" from="admin@bigdetail.com" mimetype="text/html" includeimages="false" useformmailLog="true" useformmailBlock="true" />

<we:sendMail id="5010" subject="Bestätigung für Bewerbung" recipient="\$recipientccmail" from="admin@bigdetail.com" mimetype="text/html" includeimages="false" useformmailLog="true" useformmailBlock="true" />

<we:write type="object" formname="anmeldung" publish="true" searchable="true" classid="33" onduplicate="increment" onpredefinedname="appendto" />

</we:ifVar>
Version: 8.0.6
und <we:sessionStart /> steht am Anfang...

Hat vielleicht wer noch eine Idee?
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: Formular, das in csv-Datei schreibt

Beitragvon mediavantis » Di 20. Aug 2019, 13:44

Hallo Christobal,

so wird das wahrscheinlich nichts... Die Felder im Objekt werden in Deinem Formular gar nicht angesprochen.
Entweder, du schreibst die Einträge Deiner <inputs> in Variablen um diese per php in das Objekt zu schreiben, oder Du verwendest

statt
<input type="text" id="Vorname" name="Vorname">

besser
<we:userInput type="textinput" name="Vorname" />

Natürlich musst Du dann Deine Variablen in der Email, die Du dann per sendmail versendest, aus dem angelegten Objekt ziehen, sofern Du diese per Email noch an den User bestätigen möchtest.

Code: Alles auswählen

<we:ifNotVarEmpty match="Absenden" type="post">
<we:write type="object" formname="anmeldung" publish="false" classid="33" charset="UTF-8" />
</we:ifNotVarEmpty>

<we:ifWritten type="object" formname="anmeldung">

<we:sendMail id="5011" subject="Bewerbung" recipient="admin@bigdetail.com" from="admin@bigdetail.com" mimetype="text/html" includeimages="false" useformmailLog="true" useformmailBlock="true" />
<we:sendMail id="5010" subject="Bestätigung für Bewerbung" recipient="\$recipientccmail" from="admin@bigdetail.com" mimetype="text/html" includeimages="false" useformmailLog="true" useformmailBlock="true" />
            
<we:else />
<?php $action=($_SERVER['REQUEST_URI'])."#succes"; ?>
<we:form type="object" action="\$action" name="anmeldung" classid="33" method="post">
            
<we:userInput type="textinput" name="Vorname"  />
<we:userInput type="textinput" name="Name"  />
......
<button type="submit">absenden</button>          
</we:form>
</we:ifWritten>  

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Formular, das in csv-Datei schreibt

Beitragvon christobal » Di 20. Aug 2019, 15:19

Danke vielmals Ulrich,

hab ich jetzt auf <we:userinput...> geändert und jetzt legt er brav Objekte an.

Kannst Du mir bitte helfen, wie ich aus dem frischen Objekt die Felder in Variablen umwandeln und dann per sendmail als email verschicken kann?

Wer nichts weiß muss alles glauben!
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: Formular, das in csv-Datei schreibt

Beitragvon mediavantis » Di 20. Aug 2019, 15:34

z. B. mit <we:var type="request" name="we_ui_anmeldung[Name]" /> in Deinem Email-Template

in diesem Fall beziehst Du die Daten direkt aus dem Formular


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 7 Gäste