php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.09.2009, 11:52  
Neuer Benutzer
 
Registriert seit: 30.09.2009
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Mufasa befindet sich auf einem aufstrebenden Ast
Standard Formulardaten zeilenweise in Textdatei schreiben

Hi Leute,

ich informiere mich ja schon seit ein paar Tagen hier im Forum und bin total begeistert. Jetzt häng ich hier an einem Problem und dachte ich poste das mal.... würde mich über jede Hilfe und Unterstützung freuen.

Ich hab ein Formular gebaut und speichere die Eingaben in eine Textdatei. Das klappt soweit auch schon ganz gut. Allerdings gibt es noch folgende Aufgaben, die ich einfach nicht hinbekomme:
  1. nur bei Checkbox="checked" Eingaben für jede Zeile übergeben
  2. Nach Übergabe Eingaben in jeder übermittelten Zeile behalten
  3. beliebig erweiterbar auf mehrere Zeilen (siehe auskommentierter Teil)
  4. Eingaben pro Zeile in Textdatei auch untereinander schreiben
  5. Bei Klick auf "Get Data" aktuelle Daten aus Textdatei hole

Hier mein Code:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=encoding">
<title>Testformular - Eingaben speichern</title>
</head>
    <body>
    <p>This ist a Test-Script for writing html form data in a text-file.</p>
    <form action="<?php echo $_SERVER["SCRIPT_NAME"?>" method="post">
<table border="0">
        <tr>
            <td><input name="01_check" type="checkbox" value="" onclick="" /></td>
            <td><input name="01_titel" type="text" size="15" maxlength="15" value="Prof. / Dr. / ..." onblur="if(this.value=='') this.value='Prof. / Dr. / ...';" onfocus="if(this.value=='Prof. / Dr. / ...') this.value=''"; /></td>
            <td><input name="01_name" type="text" size="15" maxlength="15" value="Last Name" onblur="if(this.value=='') this.value='Last Name';" onfocus="if(this.value=='Last Name') this.value=''"; /></td>
            <td><input name="01_vorname" type="text" size="15" maxlength="15" value="First Name" onblur="if(this.value=='') this.value='First Name';" onfocus="if(this.value=='First Name') this.value=''"; /></td>
            <td>
                <select name="01_geschlecht" style="width: 90px" >
                    <option selected="selected">---</option>
                    <option value="male">male</option>
                    <option value="female">female</option>
                </select>
            </td>
        </tr>
<!--
        <tr>
            <td><input name="02_check" type="checkbox" value="" onclick="" /></td>
            <td><input name="02_titel" type="text" size="15" maxlength="15" value="Prof. / Dr. / ..." onblur="if(this.value=='') this.value='Prof. / Dr. / ...';" onfocus="if(this.value=='Prof. / Dr. / ...') this.value=''"; /></td>
            <td><input name="02_name" type="text" size="15" maxlength="15" value="Last Name" onblur="if(this.value=='') this.value='Last Name';" onfocus="if(this.value=='Last Name') this.value=''"; /></td>
            <td><input name="02_vorname" type="text" size="15" maxlength="15" value="First Name" onblur="if(this.value=='') this.value='First Name';" onfocus="if(this.value=='First Name') this.value=''"; /></td>
            <td>
                <select name="02_geschlecht" style="width: 90px" >
                    <option selected="selected">---</option>
                    <option value="male">male</option>
                    <option value="female">female</option>
                </select>
            </td>
        </tr>
-->
        <tr>
            <td colspan="2" align="left"><input type="button" value="Get Data" onclick=""></td>
            <td></td>
            <td colspan="2" align="right"><input type="reset" value="Reset"> <input type="submit" value="Save"></td>
            <td></td>
            <td></td>
        </tr>        
</table>
    </form>
    
    <?php
    
// Formulareingabe speichern
if ($_POST) {
 
$titel $_POST["01_titel"]; // Variablen einlesen
 
$name $_POST["01_name"];
 
$vorname $_POST["01_vorname"];
 
$geschlecht $_POST["01_geschlecht"];
 
$text "$titel;$name;$vorname:$geschlecht;\n"// Textstring zusammensetzen

 
$dateiname "inhalt.txt"// Name der Datei
 
$handler fOpen($dateiname"a+"); // Datei zum Text anhängen Ã¶ffnen
 
fWrite($handler$text); // Dateiinhalt in die Datei schreiben
 
fClose($handler); // Datei schließen
}
    
    
?>
    </body>
</html>
Mufasa ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.09.2009, 12:09  
Benutzer
 
Benutzerbild von kremser
 
Registriert seit: 25.02.2008
Beiträge: 55
PHP-Kenntnisse:
Anfänger
kremser befindet sich auf einem aufstrebenden Ast
Standard

1. Checkbox überprüfen:
PHP-Code:
if(isset($_POST['01_check'])){ 
2. Schreibt dir jedes Feld in eine eigene Zeile
PHP-Code:
$text $titel."\n".$name."\n".$vorname."\n".$geschlecht."\n"
3. Textarea verwenden

4. Siehe 2.

5. file_get_contents() für ganze Datei oder file() für zeilenweises Einlesen

Ausserdem reicht bei fopen a anstatt a+.

kremser ist offline  
Alt 30.09.2009, 12:10  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Willkommen,

erstmal Respekt für diesen gut strukturierten Beitrag. Sieht man bei neuen Mitgliedern eher selten

Zitat:
1. nur bei Checkbox="checked" Eingaben für jede Zeile übergeben
2. Nach Übergabe Eingaben in jeder übermittelten Zeile behalten
3. beliebig erweiterbar auf mehrere Zeilen (siehe auskommentierter Teil)
4. Eingaben pro Zeile in Textdatei auch untereinander schreiben
5. Bei Klick auf "Get Data" aktuelle Daten aus Textdatei hole
1)
PHP-Code:
if (issset($_POST["name_der_checkbox"])) {
  echo 
'Checkbox wurde angeklickt';
  
// weiteren Code ausführen

2) Suchst du Affenformular (Standardverfahren) - PHP.de Wiki ?

3) Benutze eine Schleife:

PHP-Code:
<?php
for ($i 1$i <= 10$i++) {
  
// ...
  
?>
  <td><input name="<?php echo $i?>_check" type="checkbox" value="" onclick="" /></td> 
  <?php
  
// ...
}
4) Kannst du genauer erklären was du meinst? Du kannst Zeilen beim Eintragen in eine Textdatei durch \n in Zeilen trennen.
Oder willst du die Datei zeilenweise auslesen? PHP: file - Manual

5) Bietet sich wohl ebenfalls file() an, wenn ich dich richtig verstanden habe!

Gruß

Geändert von Asipak (30.09.2009 um 12:19 Uhr).
Asipak ist offline  
Alt 30.09.2009, 14:02  
Neuer Benutzer
 
Registriert seit: 30.09.2009
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Mufasa befindet sich auf einem aufstrebenden Ast
Standard

Wow hatte ja gar nicht mit so schnellen Antworten gerechnet, super!!

Zitat:
Zitat von Asipak Beitrag anzeigen
erstmal Respekt für diesen gut strukturierten Beitrag. Sieht man bei neuen Mitgliedern eher selten
Danke, das hört...äh liest man gern!

Habt mir schon sehr geholfen! Das Affenformular schau ich mir noch genauer an, aber ich denke das ist das was ich suche, hört sich sehr danach an. Bei 4.) meinte ich, es soll in der Textdatei ungefähr so aufgebaut sein
Code:
Titel1|Nachname1|Vorname1|Geschlecht1
Titel2|Nachname2|Vorname2|Geschlecht2
u.s.w.
Hab das jetzt folgendermaßen probiert, aber es wird immernoch alles in eine Zeile geschrieben. Und irgendwie wird der Vorname immer ausgelassen....
PHP-Code:
<?php
// Formulareingabe speichern
if ($_POST) {
 for (
$i 1$i <= 8$i++) {
  if (isset(
$_POST[$i."_check"])) {
      
      
$titel $_POST[$i."_titel"]; // Variablen einlesen
      
$name $_POST[$i."_name"];
      
$vorname $_POST[$i."_vorname"];
      
$geschlecht $_POST[$i."_geschlecht"];
  
//$text = "$titel;$name;$vorname:$geschlecht;\n"; // Textstring zusammensetzen 
      
$text $titel.";".$name.";".$vorname.";".$geschlecht.";"."\n"// Textstring zusammensetzen

      
$dateiname "inhalt.txt"// Name der Datei
      
$handler fOpen($dateiname"a+"); // Datei zum Text anhängen Ã¶ffnen
     
fWrite($handler$text); // Dateiinhalt in die Datei schreiben
     
fClose($handler); // Datei schließen
  
}
 }
}    
?>
Mufasa ist offline  
Alt 30.09.2009, 14:08  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

error reporting hochschrauben (E_ALL| E_STRICT) ,dann bekommst du wahrscheinlich eine Notice für $_POST[$i."_vorname"];, ein Zeilenumbruch unter Linux = \n, unter Windoof allerdings \r\n

grüße
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 01.10.2009, 12:13  
Neuer Benutzer
 
Registriert seit: 30.09.2009
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Mufasa befindet sich auf einem aufstrebenden Ast
Standard

wow das mit Error-Report bei php kannte ich jetzt gar nicht.
Habe folgendes ganz oben eingefügt:
PHP-Code:
<?php 
error_reporting
(E_ALL E_STRICT);   // in PHP 4.x E_ALL
ini_set("display_errors"0);
ini_set("log_errors"1);
ini_set("error_log""D:/log/formular.php.log");
?>
wenn ich das jetzt ausführe bekomme ich
PHP-Code:
PHP Notice:  Undefined index1_vorname 
Hab also bei 1_vorname anstatt Anführungszeichen Hochkommas gesetzt und es kommt die gleiche Meldung. Auch ganz ohne Zeichen kommt immer das selbe....
Was mich wundert ist, dass es auch nur bei vorname ist.... obwohl ich da jetzt keinen Unterschied zwischen vorname und nachname erkennen kann.


Zitat:
ein Zeilenumbruch unter Linux = \n, unter Windoof allerdings \r\n
Danke das funktioniert jetzt gut unter Windoof. Ist das eigentlich schlimm wenn ich später unter Linux das \r stehen lasse? Oder wird das da anders interpretiert?
Mufasa ist offline  
Alt 01.10.2009, 15:46  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Ist kein Prob.
var_dump auf $_POST und du siehst deinen Fehler.

grüße
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 01.10.2009, 16:44  
Neuer Benutzer
 
Registriert seit: 30.09.2009
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Mufasa befindet sich auf einem aufstrebenden Ast
Standard

Super danke!! Für den Tipp. Ich habe das so eingesetzt
PHP-Code:
$text $titel.";".$name.";".$vorname.";".$geschlecht.";"."\r\n"// Textstring zusammensetzen
var_dump($_POST);
$dateiname "inhalt.txt"// Name der Datei 
Keine Ahnung wie und warum aber jetzt wird der Vorname mit übertragen. Auch wenn ich var_dump jetzt auskommentiere klappt es. Hab eigentlich sonst nichts anderes geändert. Vorhin gings nicht, jetzt gehts...... hmmm.....
Mufasa ist offline  
Alt 14.10.2009, 11:39  
Neuer Benutzer
 
Registriert seit: 30.09.2009
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Mufasa befindet sich auf einem aufstrebenden Ast
Standard

Ich muss den Thread jetzt mal wiederbeleben

Danke erstmal nochmals für die tolle Hilfe vorher, funktioniert jetzt wunderbar. So jetzt beim gleichen Formular hab ich noch einen Button mit <input type="button" value="Get Data" onclick=""> angelegt. Dieser soll mit der PHP-Funktion function readFile() die Daten aus der Textdatei auslesen und in die entsprechenden Felder einfügen.

Wie kann ich denn jetzt diese Funktion mit diesem Button ausführen lassen?? Weil einfach bei onclick rein geht ja glaub ich nicht, oder?? Wegen Javascript->Browserseitig und Php->Serverseitig....... denk ich!
Mufasa ist offline  
Alt 14.10.2009, 12:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Richtig erkannt. Ergo geht das nur im Folgescript, indem das Form neu geladen (erzeugt) und vorausgefüllt wird. Siehe im Wiki Affenformular.
Eine Lösung mit Javascript, genauer Ajax, wäre auch denkbar.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
textdatei als html-text auslesen? kathlene PHP Tipps 2009 4 20.03.2009 11:31
Größer Textdatei einlesen BlackBroom PHP Tipps 2009 11 27.02.2009 22:40
Textdatei öffnen und Zeilenweise löschen Skazi PHP Tipps 2008 20 04.05.2008 12:08
Formular Textdatei ausgeben php_einsteiger PHP Tipps 2008 3 06.03.2008 08:02
kann textdatei nicht auslesen Eardy PHP Tipps 2008 1 28.02.2008 16:23
Variable als Textdatei Lokal speichern HSFighter PHP Tipps 2006 3 28.02.2006 12:13
Text aus Textdatei mit php an JS übergeben HTML, Usability und Barrierefreiheit 8 12.01.2006 21:58
[Erledigt] mit php umlaute un Textdatei schreiben (Apple Tiger PHP4) PHP Tipps 2007 7 29.12.2005 19:08
Mehrere Zeichenketten in Textdatei schreiben PHP Tipps 2007 3 26.12.2005 18:58
Zeilenweise im Bild PHP Tipps 2005-2 5 07.10.2005 23:31
Textdatei durchsuchen CSS PHP Tipps 2005 3 26.02.2005 15:31
Zeilenweise eine Textdatei auslesen PHP Tipps 2004 12 29.10.2004 10:29
Newsscript Ã* la Textdatei PHP Tipps 2004 10 10.09.2004 22:56
Eintrag aus Textdatei löschen? PHP Tipps 2004 1 04.09.2004 18:21
Textdatei auslesen und Dateien downloaden PHP Tipps 2004 1 15.08.2004 13:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php textdatei schreiben, daten mit php in txt datei untereinander schreiben, formulardaten in datei schreiben, php formular in datei schreiben, http://www.php.de/php-einsteiger/59471-formulardaten-zeilenweise-textdatei-schreiben.html, php zeilenweise in datei schreiben, php formulardaten in datei schreiben, formulardaten in datei schreiben php, formulardaten in txt speichern, php mehrere zeilen in datei schreiben, php code in textdatei speichern formulare, formulareingaben als txt in neuer zeile speichern, php textdatei erstellen, php formular datei schreiben, php mehrere daten in datei schreiben, post in andere zeile schreibenphp, php datei schreiben mehrere zeilen, html formulardaten in datei schreiben, formulardaten in textdatei, html button daten in textdatei schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum