ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
528
528
EMPFEHLEN
-
11.09.08 23:19 #1
- Registriert seit
- Sep 2007
- Ort
- Salzgitter, Germany, Germany
- Beiträge
- 190
Guten Abend,
ich möchte mir ein kleines Script bauen, in dem Leute die Möglichkeit haben, ihre Angaben zu machen (In einem normalen Formular) und jenes möchte ich dann in einer Datei speichern, die die Daten mittels Tabulatoren trennt. Der Grund ist hierfür, dass ich die Daten dann sehr einfach in Thunderbird oder Horde importieren kann.
Doch leider werden die Daten nicht in der txt gespeichert. Daher die Frage, wo mein Fehler liegt? Den html aufbau brauche ich euch wohl nicht schicken, oder? Der php Teil ist folgender, den ich aus zwei Tutorials zusammen gebaut habe:Desweiteren ist mir nicht klar, wie ich es mache, dass es auch eine Tabulatorgetrennte Datei ist?! Zu finden ist das ganze unter jurtenrunde.de/test/adressen.htm.PHP-Code:$required_input=array('vorname','nachname','anschrift1', 'anschrift2', '','postleitzahl','ort', 'land','email',);
$input=$_POST['input'];
$input_ok=array();
while(list($k,$v)=each($input)){
switch($k){
'email':
[i]alles ok[/i]=check_Syntax($v);
'str':
'plz':
'name':
'ort':
if([i]alles ok[/i]){
$input_ok[]=$k;
}
break;
...........
}
}
$forgotten_input=array_diff($required_input,$input_ok);
//prüfen ob etwas vergessen wurde
if(count($forgotten_input)==0){
/*in die Datei schreiben...*/
$fp = fopen("test2.txt","a+");// Datei erstellen wenn nicht vorhanden
fwrite($fp, $input); //Felder in die Datei schreiben
}else{
//zeige Fehlermeldung/-seite
}
Hoffe sehr, dass ihr meiner Betriebsblindheit weiterhelfen könnt.
Gute Nacht
Muckel
-
12.09.08 01:01 #2
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
als erstes müsstest Du Dir mal ein Array mit leeren Werten und allen Keys aufbauen, die möglich sind, damit Du eine feste Struktur hast. Sonst hast Du hinterher als z.B. 11. Wert mal eine ICQ-Nummer, mal ein Geburtsdatum stehen. Mit array_merge() kannst Du die Werte aus dem Input-Array dann übernehmen.
Das kann so nicht gehen, da $input ein Array ist, fwrite aber einen String erwartet.PHP-Code:fwrite($fp, $input);
oderPHP-Code:fwrite($fp, implode("\t", $resultArray) . "\n");
Ist es übrigens Absicht, dass in Deinem $required_input-Array ein leerer Wert vorhanden ist?PHP-Code:fputcsv($fp, resultArray, "\t");
LGDa es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
-
12.09.08 07:50 #3
- Registriert seit
- Sep 2007
- Ort
- Salzgitter, Germany, Germany
- Beiträge
- 190
Guten Morgen,
vielen Dank schonmal für deine Antwort. Ich habe ein Formular, wo Daten ein gegeben werden. Die einzelnen Felder sind so auf gebaut:Code :1
<input type="text" name="input[bezeichnung]">
Ich möchte für einige Angaben überprüfen, ob sie ein gegeben wurden. Das geht, so dachte ich es zumindest, mit:Oder habe ich dort schon ein Fehler? Wenn die Daten ein gegeben wurden, sollen sie in die Datei test2.txt geschrieben werden bzw. zu den vorhandenen Daten hinzu gefügt werden. Das sollte so gehen:PHP-Code:$required_input=array('vorname','nachname','anschrift1', 'anschrift2', '','postleitzahl','ort', 'land','email',);
$input=$_POST['input'];
$input_ok=array();
while(list($k,$v)=each($input)){
switch($k){
'email':
[i]alles ok[/i]=check_Syntax($v);
'str':
'plz':
'name':
'ort':
if([i]alles ok[/i]){
$input_ok[]=$k;
}
break;
...........
}
}
Jetzt fehlt aber noch das direkte schreiben / hinzufügen / anhängen in die Datei. Ich hatte es ja so versucht:PHP-Code:$forgotten_input=array_diff($required_input,$input_ok);
//prüfen ob etwas vergessen wurde
if(count($forgotten_input)==0){
Baue ich das jetzt um, so wie Du es geschrieben hast, erhalte ich dieses:PHP-Code:/*in die Datei schreiben...*/
$fp = fopen("test2.txt","a+");// Datei erstellen wenn nicht vorhanden
fwrite($fp, $input); //Felder in die Datei schreiben
}else{
//zeige Fehlermeldung/-seite
}
Das ganze Script würde dann so ausschauen:PHP-Code:/*in die Datei schreiben...*/
$fp = fopen("test2.txt","a+");// Datei erstellen wenn nicht vorhanden
fwrite($fp, implode("\t", $resultArray) . "\n"); //Felder in die Datei schreiben
}else{
//zeige Fehlermeldung/-seite
}
Oder habe ich dort noch einen Fehler? Kann das leider gerade nicht testen, da ich in der Berufsschule bin. Da ich ja eine Tabulatorgetrennte Datei erhalten möchte, besteht noch die Frage, wie ich die einzelnen Eingaben/Felder mit einem Tabulator getrennt in die Datei schreibe.PHP-Code:$forgotten_input=array_diff($required_input,$input_ok);
//prüfen ob etwas vergessen wurde
if(count($forgotten_input)==0){
/*in die Datei schreiben...*/
$fp = fopen("test2.txt","a+");// Datei erstellen wenn nicht vorhanden
fwrite($fp, implode("\t", $resultArray) . "\n"); //Felder in die Datei schreiben
}else{
//zeige Fehlermeldung/-seite
}
Vielen Dank für Deine Hillfe!
Gruß Muckel
-
12.09.08 11:57 #4
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
Bitte schön. Aber hast Du sie auch gelesen? Warum gehst Du überhaupt nicht darauf ein?
1.Wo hast Du ein Array mit allen möglichen Keys definiert?
2.Wo füllst Du das dann mit den Werten aus dem Input-Array?
3.Warum schaust Du Dir den Code, den ich Dir gepostet habe, nicht mal an, statt nur zu kopieren und merkst, dass Du gar keine Variable $resultArray hast. Die müsstest Du erstmal definieren (s. 1. und 2.)
Gegenfrage:Oder habe ich dort schon ein Fehler?
4. Warum beantwortest Du meine Frage nicht:
Also erstmal die Punkte abarbeiten, vorher ergibt eine Fehlersuche, wenn dann welche vorhanden sein sollten, keinen Sinn.
Zitat von kuddeldaddeldu
LGDa es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
-
12.09.08 14:08 #5
- Registriert seit
- Sep 2007
- Ort
- Salzgitter, Germany, Germany
- Beiträge
- 190
Guten Tag,
ich habe mir deinen Post sehr wohl durch gelesen und war der Meinung, dass dasdie Lösung war.PHP-Code:fwrite($fp, implode("\t", $resultArray) . "\n");
Nein, ist es nicht. Da ich der annahme war, dass ich jenen mitIst es übrigens Absicht, dass in Deinem $required_input-Array ein leerer Wert vorhanden ist?fülle. Also den Daten aus dem Formular.PHP-Code:$required_input=array('vorname','nachname','anschrift1', 'anschrift2', '','postleitzahl','ort', 'land','email',);
Ich war der Meinung, dass ich den Array mit dem ersten Abschnitt gefüllt hätte. Also um genau zu sein mit der Zeile, die ich zuletzt Zitiert habe. Aber das bezieht sich nur auf die Überprüfung?1.Wo hast Du ein Array mit allen möglichen Keys definiert?
2.Wo füllst Du das dann mit den Werten aus dem Input-Array?
Habe mit php vorher leider noch nicht wirklich gearbeitet - daher die Missverständnisse und die vielleicht unqualifizierten Fragen.
Gruß und vielen Dank
Muckel
Ähnliche Themen
-
Formular nach überprüfung in Datei schreiben
Von Black Panter im Forum PHPAntworten: 8Letzter Beitrag: 27.02.09, 13:14 -
[C#] Kanäle aus Stereo WAV Datei in je eine neue WAV Mono Datei schreiben
Von Webrat im Forum .NET Grafik und SoundAntworten: 2Letzter Beitrag: 12.02.08, 18:21 -
Zeilenweise aus Ini Datei lesen und in neue Datei schreiben
Von Putzwied im Forum C/C++Antworten: 2Letzter Beitrag: 27.04.07, 08:16 -
Aus Datei lesen und in eine andere Datei schreiben
Von Computerpinguin im Forum C/C++Antworten: 1Letzter Beitrag: 03.05.05, 14:29 -
viele errechnete werte sofort in datei schreiben oder sammeln und dann schreiben?
Von larss im Forum JavaAntworten: 4Letzter Beitrag: 25.04.05, 22:15





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren