tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
528
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Muckel1986 Muckel1986 ist offline Mitglied Gold
    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:
    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

    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.

    Hoffe sehr, dass ihr meiner Betriebsblindheit weiterhelfen könnt.
    Gute Nacht
    Muckel
     

  2. #2
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    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.

    PHP-Code:
    fwrite($fp$input); 
    Das kann so nicht gehen, da $input ein Array ist, fwrite aber einen String erwartet.

    PHP-Code:
    fwrite($fpimplode("\t"$resultArray) . "\n"); 
    oder

    PHP-Code:
    fputcsv($fpresultArray"\t"); 
    Ist es übrigens Absicht, dass in Deinem $required_input-Array ein leerer Wert vorhanden ist?

    LG
     
    Da 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.

  3. #3
    Muckel1986 Muckel1986 ist offline Mitglied Gold
    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:
    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; 
                ........... 
        }     

    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:
    $forgotten_input=array_diff($required_input,$input_ok);  
    //prüfen ob etwas vergessen wurde 
    if(count($forgotten_input)==0){ 
    Jetzt fehlt aber noch das direkte schreiben / hinzufügen / anhängen in die Datei. Ich hatte es ja so versucht:
    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 

    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($fpimplode("\t"$resultArray) . "\n");   //Felder in die Datei schreiben 
    }else{ 
        
    //zeige Fehlermeldung/-seite 

    Das ganze Script würde dann so ausschauen:
    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($fpimplode("\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.

    Vielen Dank für Deine Hillfe!

    Gruß Muckel
     

  4. #4
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von Muckel1986 Beitrag anzeigen
    vielen Dank schonmal für deine Antwort.
    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.)

    Oder habe ich dort schon ein Fehler?
    Gegenfrage:
    4. Warum beantwortest Du meine Frage nicht:

    Zitat Zitat von kuddeldaddeldu
    Ist es übrigens Absicht, dass in Deinem $required_input-Array ein leerer Wert vorhanden ist?
    Also erstmal die Punkte abarbeiten, vorher ergibt eine Fehlersuche, wenn dann welche vorhanden sein sollten, keinen Sinn.

    LG
     
    Da 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.

  5. #5
    Muckel1986 Muckel1986 ist offline Mitglied Gold
    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 das
    PHP-Code:
    fwrite($fpimplode("\t"$resultArray) . "\n"); 
    die Lösung war.

    Ist es übrigens Absicht, dass in Deinem $required_input-Array ein leerer Wert vorhanden ist?
    Nein, ist es nicht. Da ich der annahme war, dass ich jenen mit
    PHP-Code:
    $required_input=array('vorname','nachname','anschrift1''anschrift2''','postleitzahl','ort''land','email',); 
    fülle. Also den Daten aus dem Formular.

    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?
    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?

    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

  1. Formular nach überprüfung in Datei schreiben
    Von Black Panter im Forum PHP
    Antworten: 8
    Letzter Beitrag: 27.02.09, 13:14
  2. Antworten: 2
    Letzter Beitrag: 12.02.08, 18:21
  3. Antworten: 2
    Letzter Beitrag: 27.04.07, 08:16
  4. Aus Datei lesen und in eine andere Datei schreiben
    Von Computerpinguin im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 03.05.05, 14:29
  5. Antworten: 4
    Letzter Beitrag: 25.04.05, 22:15