Forum > Formitude > Tips & Codeschnipsel +

Sortieren nach: Eintragsdatum
Darkpriest schrieb am 05.01.2007 um 13:57 Uhr:

Lösung - Select

Hallo an alle,

ich stelle mal hier meine Lösung rein, wie ich das Problem "Daten aus Mysql" nach Array gelöst habe:

$SQL = "SELECT Id, Betriebe FROM Standorte ORDER BY Betriebe";
$tab = mysql_query($SQL);

$anzahl = mysql_num_rows($tab);

for ($i=0; $i<$anzahl; $i++)
{
    $Id = mysql_result($tab,$i,'Id');
    $Betriebe= mysql_result($tab,$i,'Betriebe');

    $tp[$Id] = $Betriebe;    
}

Das Array $tp kann normal weiterverabeitet werden von Formitude!

Gruß an alle!

Michi

Carsten aus Borkum schrieb am 26.12.2006 um 22:49 Uhr:

Re: Formitude Daten in eine CSV-Datei schreiben

Zu dem Beitrag von Stephan noch die folgenden Anmerkungen:

1. Vor dem Schreiben in die Datei sollte diese per
flock($fh, LOCK_EX);
gesperrt und der Dateizeiger danach mittels
fseek($fh, 0, SEEK_END);
an das Ende der Datei gesetzt werden. Ansonsten könnten sich zwei Einträge gegenseitig überschreiben, wenn diese gleichzeitig übertragen werden.

2. Die Datei legt man am besten gleich außerhalb von DocRoot ab, dann ist das Sperren über die .htaccess überflüssig.

Grüße und einen schönen Abend
Carsten

Stephan Müller aus Schweiz schrieb am 26.12.2006 um 22:14 Uhr:

Formitude Daten in eine CSV-Datei schreiben

Vielleicht interessiert es jemand ein Beispiel zu haben wie man die Formulardaten in eine CSV-Datei schreibt könnte, die man dann wieder per PHP auslesen kann. Oder man kann diese auch einfach per FTP vom Webserver holen und dann mit z.B. Calc oder Excel weiterverarbeiten.
---------------------------------------------------------------------------------------
/* CSV-Datenstring in gewünschter Reihenfolge und gewünschtem Trennzeichen, Zeilenendezeichen erstellen. Aktuelles Datum hinzufügen.*/

    $antworten = array(date('d.m.y'), $values['vorname'], $values['nachname'], $values['email'], $values['kategorie'], $values['weiteresarrayfeld1'], $values['weiteresarrayfeld2'], $values['weiteresarrayfeld3'], $values['kommentar']);
    $csvdata = implode(';', $antworten)."\n";

    // CSV-Daten in Datei schreiben

    $csvdatei = "beispiel.csv";
    $csvdateipfad = "./data/";
    if ($fh = @fopen("$csvdateipfad"."$csvdatei",'a')){
        fputs($fh, $csvdata);
        fclose($fh);
        print "Deine Daten wurden gespeichert.<br>";
    } else {
         print "!!! Daten konnten nicht in eine Datei geschrieben werden !!!<br>";
        }
---------------------------------------------------------------------------------------
In diesem Beispiel wird die CSV-Datei in ein Unterverzeichnis Namens data geschrieben, das man natürlich vorgängig erstellt, Schreibrechte vergibt. Achtung, das Verzeichnis data ist vor HTTP-Zugriffen zu schützen. Ansonsten können Spamrobots, Suchmaschinen oder geschickte User die Daten auslesen. Auf einem Apache Server kann man das mittels einer .htaccess Datei machen. Inhalt könnte so aussehen:
# .htaccess Datei die das Verzeichnis in der sie liegt
# fuer http-Webzugriffe sperrt
Order Allow,Deny
Deny from All

Gruss Stephan

Carsten aus Borkum schrieb am 09.11.2006 um 16:23 Uhr:

Zeit- und Datumsfelder

Um die von Zeit- und Datumsfeldern übergebenen Strings zu parsen, können die Funktionen formitude_parse_date() und formitude_parse_time() wie folgt verwendet werden:

$datum = formitude_parse_date($values['datum']);
print 'Monat: '.$datum[0];
print ', Tag: '.$datum[1];
print ', Jahr: '.$datum[2];

$uhrzeit = formitude_parse_time($values['uhrzeit']);
print 'Stunde: '.$uhrzeit[0];
print ', Minute: '.$uhrzeit[1];
print ', Sekunde: '.$uhrzeit[2];

Die Variablen $values['datum'] und $values['uhrzeit'] enthalten die Usereingaben als Strings und müssen ggf. an die tatsächlichen Control-Namen angepaßt werden.

Carsten Meier aus Borkum schrieb am 19.08.2006 um 21:08 Uhr:

Mailversand

Wer die mit einem Formular gesammelten Daten per E-Mail versenden möchte, dem sei das Paket "Mail-Drudge" empfohlen, das ebenfalls auf dieser Website zu finden ist. E-Mails werden damit standardkonform kodiert, was bei einem direkten Versand per mail() nicht unbedingt gegeben ist. Außerdem ist eine Funktion enthalten, mit der sich Platzhalter in E-Mail-Vorlagen durch eingegebene Werte ersetzen lassen. Die integrierten Sicherheitsmaßnahmen verhindern Header-Injections.

Patrik Gfeller schrieb am 06.10.2005 um 10:03 Uhr:

Problem mit "formitude_perform_multipage_dialog"

Ein kleines problem hab ich mit'nem work around adressiert:
zuerst hat mir

$str = formitude_get_entries($form, $dummy);

nur die letzte seite (page9) zurück gegeben ... es funktioniert aber, wenn ich $form['items'] mit allen seiten des "multipage dialogs" setzte vor dem Aufruf.

$form['items'] = array_merge($page1, $page2, $page3, $page4, $page5 , $page6, $page7, $page8, $page9);

mit freundlichem Gruss,
Patrik Gfeller

Carsten Meier aus Borkum schrieb am 03.10.2005 um 17:48 Uhr:

Mehrseitige Formulare

Bei mehrseitigen Formularen mit "formitude_perform_multipage_dialog" müssen die Formularseiten wie folgt abgelegt werden:

$pages = array(

'seite1' => array(
formitude_create_check_box('alles_klar1', 'Alles klar 1'),
formitude_create_check_box('ach_so1', 'Ach so 1')
),

'seite2' => array(
formitude_create_check_box('alles_klar2', 'Alles klar 2'),
formitude_create_check_box('ach_so2', 'Ach so 2')
)

);

Das $pages-Array enthält als Schlüssel die Seitennamen und als Werte Arrays mit den Items für die entsprechenden Seiten.