Autor |
Nachricht |
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Sa 13.01.2007 15:29
Titel [php] [sql] formulardaten => CSV |
|
|
Hallo.
Problem: Formulareingaben sollen in eine CSV datei als Datensatz gespeichert werden. also ein formular mit sagen wir name, postleitzahl, lieblingsfarbe wird 10 mal ausgefüllt und abgesendet und rauskommen soll eine csv-datei mit inhalt
Code: |
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
name;postleitzahl;lieblingsfarbe
|
einzige verwendung der formulardaten ist hier die csv-datei, die dann in unterschiedlichen abständen runtergeladen wird. es erfolgt also nie wieder ein zugriff auf bereits geschriebene daten, also kein sortieren, suchen, umstrukturieren, bearbeiten etc.
ist es hier nicht völlig ausreichend, die csv im vorfeld zu erstellen und in der formularauswertung dann einfach mit
Code: |
fopen("daten.csv","a+");
|
zu öffnen, zeile mit fwrite zu schreiben und datei wieder zu schließen?
eine datenbank wäre doch hier nicht wirklich sinnvoll, oder? (zumal ich nicht den geringsten plan habe, wie sowas funktioniert). was spricht gegen diese umsetzung => sicherheit bezüglich schreibfehler, datenverlust... mit a+ kann da doch nicht wirklich viel passieren, oder?)
kann jemand helfen?
danke :)
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Sa 13.01.2007 20:21
Titel
|
|
|
Noe -- kannst du machen; sieh nur zu, dass man die Datei nicht unbedingt mit dem Browser aufrufen kann!
|
|
|
|
|
Anzeige
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Mo 15.01.2007 14:03
Titel
|
|
|
Zitat: | Noe -- kannst du machen; |
Naja, nachdem ich nochmal bissl überlegt hab: nee kann ich nich so machen.
Was passiert, wenn 2 Clients gleichzeitig in die Datei schreiben? Im schlimmsten Fall ALLE Daten weg.
Helfen könnte flock() um die Datei vorm Schreiben für exklusives Schreiben zu sperren. Aber so richtig sicher scheint das auch nicht zu sein.
Also mein Lösungsansatz:
- Formulardaten jedes versendeten Formulars in eine neue Datei auf dem Server speichern (am sichersten ist wohl zufälliger Dateiname + vorher nochmal mit file_exists prüfen)
- 2tes Skript öffnet nacheinander alle Dateien im Verzeichnis, liest jeweils die 1te Zeile und schreibt diese dann in eine CSV. dieses skript wird dann eben nur von mir ausgeführt, wenn ich die daten gesammelt benötige, somit ist ein gleichzeitiger schreibzugriff dann wohl ausgeschlossen
Zitat: | sieh nur zu, dass man die Datei nicht unbedingt mit dem Browser aufrufen kann! |
.htaccess
Code: |
Order allow,deny
Allow from none
|
so.
Zuletzt bearbeitet von fuchsbau am Mo 15.01.2007 14:07, insgesamt 2-mal bearbeitet
|
|
|
|
|
Mac
Dabei seit: 26.08.2005
Ort: Köln
Alter: 62
Geschlecht:
|
Verfasst Mo 15.01.2007 14:27
Titel
|
|
|
fuchsbau hat geschrieben: | ...
- Formulardaten jedes versendeten Formulars in eine neue Datei auf dem Server speichern (am sichersten ist wohl zufälliger Dateiname + vorher nochmal mit file_exists prüfen)
.. |
Nimm lieber einen Zähler (fortlaufende Nummer oder Datum/Uhrzeit und fortlaufende Nummer)
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Mo 15.01.2007 14:43
Titel
|
|
|
Warum ist flock() nicht sicher?
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Mo 15.01.2007 14:43
Titel
|
|
|
MacCon hat geschrieben: | Nimm lieber einen Zähler (fortlaufende Nummer oder Datum/Uhrzeit und fortlaufende Nummer) |
der bequemlichkeit halber für's wiedereinlesen oder wie? reproduziert doch aber nur o.g. problem, oder?
was ist nämlich, wenn die file_exists prüfung zur selben zeit durchgeführt wird, bei beiden negativ ist, ein client erstellt die datei, der andere öffnet sie, flock() versagt evtl. auch => beide schreiben gleichzeitig in die selbe datei.
bei zufallsnamen müsste zusätzlich zu den genannten umständen dann noch beide die gleiche zufallszahl erhalten, was dann doch eher unrealistisch ist.
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Mo 15.01.2007 14:47
Titel
|
|
|
schachbrett hat geschrieben: | Warum ist flock() nicht sicher? |
http://manuals.phpforum.de/php/function.flock.php => abschnitt "warnung"
außerdem, was passiert wenn beide clients gleichzeitig ein flock() anmelden und es bei einem nicht klappt oder gar bei beiden nicht? wollte ich nicht zu ende denken
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst Mo 15.01.2007 17:13
Titel
|
|
|
Gesunde Bedenken sind das ja schon, aber vielleicht lohnt es sich doch mal die Problematik zu Ende zu denken... Deiner Methode mit den vielen Dateien fehlt - in meinen Augen - irgendwie der Sexapeal
Was ist, wenn du eine zweite Datei nur zum locken anlegst??? Also "daten.txt" + "daten.txt.lock".
|
|
|
|
|
|
|
|
Ähnliche Themen |
Formulardaten in csv
Formulardaten in Datenbank und PDF ausgeben
InDesign CS6: PDF Formulardaten senden
OOP in PHP für Noob - Formulardaten verarbeiten
PDF Formulardaten Sende-Problem
hilfe: formulardaten per email versenden(php)
|
|