Editieren von Einträgen

hmm ich weiß nicht so genau was du meinst kannst du das bitte etwas genauer erklären.

Wie hast du es in der txt abgespeichert ?
 
also in meiner txt datei kann nicht nur
variable1|variable2 stehn, sondern je nach eingabe auch
variable1|variable2|variable3
jetzt kann ich ja nicht mehr beim zweiten Eintrag den Umbruch machen, weil er ja nicht mehr der lezte ist und muss deshalb beim dritten den umbruch machen

ach hab da nochwas:

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

<?

if($submit){

$verzeich = file("verzeich.txt");
$pfad = $verzeich[0];
$file = "$pfad/$datei";
$array = file($file);
$anzahl = count($array);
for ($i = 0;$i<$anzahl;$i++){

if ($nr == $i){
$eintrag = explode("#",$array[$i]);

$newtext = $array;

$newtext[$i] = str_replace("$eintrag[0]","$text0",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[3]","$text3",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[5]","$text5\r\n",$newtext[$i]);

  $fp=fopen($file,"w+");
  $neu=implode("",$newtext);
  fwrite($fp,"$neu");
  fclose($fp);
  print "Änderung gespeichert!";
  header("Location:user.php&datei=$datei");
}}}
else{
$verzeich = file("verzeich.txt");
$pfad = $verzeich[0];
$file = "$pfad/$datei";
$array = file($file);
$anzahl = count($array);
$eintrag = explode("#",$array[$eintragnr]);
}
 



?>

<form name="form1" method="post" action="<? echo"$PHP_SELF?nr=$eintragnr&datei=$datei"; ?>">
<table width="993" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td width="993" height="481" valign="top"> 
</p> 
<p> Überschrift
<input name="text0" type="text" id="text0" value="<? print $eintrag[0]?>"> 
</p> 
<p> Artikel
<textarea name="text3" id="text3"><? print $eintrag[3]?></textarea>  
</p>
<p> Bildunterschrift
<input name="text5" type="text" id="text5" value="<? print $eintrag[5]?>"> 
</p>
<input type="submit" name="submit" value="Ok"> 
<input type="reset" name="Submit2" > 
</p> 
<p>  </p> 
</td> 
</tr> 
</table> 
</form>
</body> 
</html>
bei dem Code ersetzt er mir, wenn ich eine varaibel änder, alles in datei. also zb. ich geb "er" und er erstetzt mir auch sup"er". kann mir wer sagen wo der fehler liegt?
 
Zuletzt bearbeitet:
es gibt mehrer möglichkeiten wie du es machen kannst.hier mal eine die ich mir überlegt habe. is recht easy.

1. mit if

also wenn jetzt zb einer was ändert und ein feld is leer dann amchst das so :

if ($text == ""){
$text = "nichts";
}
usw
dann steht das in der txt dann so :
variable1|variable2|nichts´

und wenn du es jetzt ausliest kannst du es wieder mit ner if abfrage machen und zwar

if ($eintrag1 == "nichts"){
$text = "";
echo "$text";
}else{
echo "$text";
}

hofff du verstehst was ich meine

hmm wegen dem ersetzen muss mal schauen

mfg nucle
 
Zuletzt bearbeitet:
das mit der if schleife ist ja nicht so dass problem, bin nach einigem überlegen selbst draufgekommen. was mir immernoch probleme macht ist das editieren
 
hmm funktioniert es bei dir nicht oder was geht nicht ?

post einmal den ganzen code dann schau ich mir das mal an

mfg nucle
 
ok :)

user.php
PHP:
$inhalt = file($file);
$anzahl = count($inhalt);
for($i = 0; $i < $anzahl; $i++){
        
        $edit = "<a href=\"edit2.php?datei=$datei&eintragnr=$i\">Artikel vom $datum editieren</a>";
        $loeschen = "<a href=\"loeschen.php?datei=$datei&eintragnr=$i\">Artikel löschen</a>";
       echo "<center>$edit - $loeschen<br>";
}
edit2.php
PHP:
if($submit){

$verzeich = file("verzeich.txt");
$pfad = $verzeich[0];
$file = "$pfad/$datei";
$array = file($file);
$anzahl = count($array);
for ($i = 0;$i<$anzahl;$i++){

if ($nr == $i){
$eintrag = explode("#",$array[$i]);

$newtext = $array;

$newtext[$i] = str_replace("$eintrag[0]","$text0",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[3]","$text3",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[5]","$text5\r\n",$newtext[$i]);

  $fp=fopen($file,"w+");
  $neu=implode("",$newtext);
  fwrite($fp,"$neu");
  fclose($fp);
  print "Änderung gespeichert!";
  header("Location:user.php&datei=$datei");
}}}
else{
$verzeich = file("verzeich.txt");
$pfad = $verzeich[0];
$file = "$pfad/$datei";
$array = file($file);
$anzahl = count($array);
$eintrag = explode("#",$array[$eintragnr]);
}

so wenn das jetzt der eintrag wär : holla#holla#holla@mail.de
und ich die erste variable in ulu ändenr will
macht er mir überall ulu hin also ulu#ulu#ulu@mail.de#
 
hmm ich glaub ich weiß was dein problem ist

du ersetzt die ganze zeile die in der txt ist und nicht die bestimmte die du willst

bei user.php

würde ich zuerst die daten herauslesen
zb
name :text1
jetzt kannst das dann in ruhe bearbeiten

und wenn du jetzt auf den button eintragen klickst kommst du auf die seite edit
und bearbeitest das dannn mit dem
$newtext[$i] = str_replace("$eintrag[0]","$text1",$newtext[$i]);

solltest das nicht zusammenbekommen dann post ich mal mein script
dann kannst du es dir anschauen
mfg nucle
 
Zurück