Einträge aus Textfile bearbeiten

Extremniki

Erfahrenes Mitglied
Hallo allerseits.

Wie man generell ein Textfile in eine Textarea einliest und es dann bearbeitet und speichert ist mir klar (Siehe Tutorial). Da wird das Textfile einfach per include eingefügt!

Wenn ich jedoch die einzelnen Variablen sauber in jeweils einem Textfeld darstellen möchte, also ähnlich einem Eingabeformular, dann geht das ja schlecht per include. Was muss ich denn dafür nehmen?

Suchfunktion ausgereizt, jedenfalls mit den mir geläufigen Begriffen!
 
wie immer führen viele wege ans ziel

wenn deine werte im textfile in jeweils einer zeile sind kannste mit
$werte = file("datei");
einlesen

und dann zb.

echo "<input type=text value='$werte[3]'>";

einsetzen
da wir einfach die 3 zeile als wert eingesetzt
 
also das mit dem einlesen der werte in die einzelnen textfelder klappt nun hervoragend. jedoch habe ich jetzt das problem, dass ich die daten nicht wieder erneut speichern kann.

ich schreib mal am besten das ganze script hier rein:

PHP:
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
$e = file("../files/impressum.txt");

?>
<table width="641" border="1">
  <tr> 
    <td width="455"> <form action="admin_impressum.php" method="post">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr> 
            <td height="342" valign="top"><table width="319" border="0">
 <tr> 
<td width="163">Name Ihres Betriebes</td>
<td width="146"><input name="e[0]" type="text" id="e[0]" value="<? echo $e[0] ?>"></td>
</tr>
<tr> 
<td>Strasse, Nr.</td>
 <td><input name="e[1]" type="text" id="e[1]" value="<? echo $e[1] ?>"></td>
</tr>
<tr> 
<td>PLZ, Ort</td>
 <td><input name="e[2]" type="text" id="e[2]" value="<? echo $e[2] ?>"></td>
</tr>
<tr> 
 <td>Telefon</td>
<td><input name="e[3]" type="text" id="e[3]" value="<? echo $e[3] ?>"></td>
</tr>
<tr> 
<td>Telefax</td>
<td><input name="e[4]" type="text" id="e[4]" value="<? echo $e[4] ?>"></td>
</tr>
<tr> 
<td>Email</td>
<td><input name="e[5]" type="text" id="e[5]" value="<? echo $e[5] ?>"></td>
</tr>
<tr> 
<td>Internet</td>
<td><input name="e[6]" type="text" id="e[6]" value="<? echo $e[6] ?>"></td>
</tr>
<tr> 
<td>Gesch&auml;ftsf&uuml;her</td>
<td><input name="e[7]" type="text" id="e[7]" value="<? echo $e[7] ?>"></td>
</tr>
<tr> 
<td>Handelsregister</td>
<td><input name="e[8]" type="text" id="e[8]" value="<? echo $e[8] ?>"></td>
</tr>
<tr> 
<td>Steuer-Ident-Nr.</td>
<td><input name="e[9]" type="text" id="e[9]" value="<? echo $e[9] ?>"></td>
</tr>
</table></td>
</tr>
<tr> 
<td><input type="reset" name="Submit" value="Zur&uuml;cksetzen">
<input type="submit" name="submit" 
id="submit" value="Anderung speichern"></td>
</tr>
</table>
</form></td>
  </tr>
</table>
<?
if ($submit == "Anderung speichern")
    {
    $fp = fopen("../files/impressum.txt","w");
    $data = "$inhalt";
    $data = str_replace("\r","",$data);
    fputs($fp,$data); 
    fclose($fp); 
  
    
    echo "<meta http-equiv=\"Refresh\" content=\"1; url=admin_impressum.php?\">"; 
    $check_ok = "<font color = 'red'>Ihre Daten wurden erfolgreich geändert!
	<br>Bitte warten sie bis die Daten aktualisiert werden.</font>"; 
    echo "$check_ok";
        }
		?>
</body>
</html>

ich will also ein script haben, wo ich daten eingebe und diese sich dann in dem selbigen wieder aktualisieren.

da steht ziemlich am ende eine zeile, die auch nicht richtig sein kann, weil sie sich auf ne variable bezieht, die nicht vorkommt: $data = "$inhalt"; aber ich habs auch schon mit meiner $e probiert, das klappt auch nicht. komm da nicht weiter, kann mir jemand den fehler zeigen?
 
Zuletzt bearbeitet:
also dein e ist ja ein array mit allen daten das speicherste so:


$fp = fopen("../files/impressum.txt","w");

for ($lo=0;$lo<sizeof($e);$lo++) {

fputs($fp,$e[$lo]);
}
fclose($fp);
 
ok, das klingt logisch (hab noch nicht so viel ahnung von der ganzen sache), aber es werden keine daten gespeichert, die vorhandenen bleiben immer drin. habe im textfile per hand über den editor einfach folgendes eingetragen:

1
2
3
4
5
6
7
8
9
0

also in jede zeile einen wert. diese zahlen werden auch schön in den textfeldern angezigt, aber editieren kann ich sie nicht.
 
ich vermute mal fehlende rechte der datei

chmod 666 impressum.txt

:-)

und zur kontrolle machste in die speicher loop sowas:

echo "$e[$lo]<br>";

(anyway wie ist die einstllung von register globals in php.ini?)
 
also register_globals steht auf on und meine impressum.txt hat auch alle rechte, sogar 777 (zumindest in der testphase).

habe dein "echo" grad hinzugefügt, wird auch unter der ganzen table schön angezeigt, jedoch nur das, was eh schon in der txt steht, nicht das, was ich in die felder eingegeben hab.
 
hmm sieht aber alles toll aus codetechnisch

da hilft nur mehr debug trenne doch mal die eingabe vars und
die vars die editiert wurden:

statt:
<td><input name="e[2]" type="text" id="e[2]" value="<? echo $e[2] ?>"></td>
das:
<td><input name="ex[2]" type="text" id="e[2]" value="<? echo $e[2] ?>"></td>

und die speicher schleife so:

$fp = fopen("../files/impressum.txt","w");

for ($lo=0;$lo<sizeof($ex);$lo++) {
echo "$ex[$lo]<br>";

fputs($fp,$ex[$lo]);
}
fclose($fp);
 
ja, jetzt klappts vom prinzip her schon, jedoch schreibt er jetzt alles in einer zeile ins textfile, so dass nach der aktualisierung alles im ersten textfeld steht und in den weiteren nix!
 
Zurück