zeile aus textdatei löschen

ClD

Mitglied
ja ich habe die suche genutzt und habe auch was gefunden, aber mich interessiert trotzdem der Fehler in meinem Versuch. Denn bei mir klappt es nicht. Vielleicht kannmir jemand sagen wo der Fehler ist.
Beim Aufruf der Datei wird delete.php?zeile=$zeile übergeben

PHP:
$zeile = ($_POST["$zeile"]);
	######################### löschen
	$daten = file("../0815daten.txt"); 
	$daten = array_reverse($daten); 
	unset($daten[$zeile]);
	$neuerInhalt = fopen("../0815daten",'w');
	fputs($neuerInhalt,implode("",$daten)); 
	fclose($neuerInhalt);

Vielen Dank
 
Ich habe es jetzt einfach so gemacht
PHP:
$zeile="$zeile";

Dann ein echo um zu gucken ob die zeile richtig übergeben wird. Das klappt auch. Aber er tut trotzdem nicht löschen.

Hier mal er ganze Code der delete.php
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Adminbereich</title>
<link href="../gaestebuch.css" rel="stylesheet" type="text/css">

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

<body>
<?php 

$zeile = "$zeile";
echo("$zeile");
	######################### löschen
	$daten = file("../0815daten.txt"); 
	$daten = array_reverse($daten); 
	unset($daten[$zeile]);
	$neuerInhalt = fopen("../0815daten",'w');
	fputs($neuerInhalt,implode("",$daten)); 
	fclose($neuerInhalt);   
echo("löschen");
	########################## Ausgeben
	if (file_exists("../0815daten.txt")) 
		{
	  		$eintraege = file("../0815daten.txt");
			$anzahl = count($eintraege);
			$eintraege= array_reverse($eintraege);
			for($i = "0"; $i < ($anzahl); $i++) 
			{ 
   
				# Zeile zerteilen 
        		$eintrag = explode("%%",$eintraege[$i]); 
				# variabeln defenieren 
        		$datum = $eintrag[1]; 
        		$name = $eintrag[2]; 
        		$text = $eintrag[3]; 
        		$homepage = $eintrag[4]; 
		        
				echo ("<style type=\"text/css\">
				<!--
				.Stil1 {
				font-family: Arial, Helvetica, sans-serif;
				font-weight: bold;
				font-size: 14px;
				}
				-->
				</style>
				<table width=\"98%\" border=\"0\" align=\"center\" cellpadding=\"1\" cellspacing=\"2\" class=\"rand\">
  					<tr bgcolor=\"#E9E9E9\">
    				<td bgcolor=\"#FFFFFF\" >
				 	 <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
        			<tr bgcolor=\"#E9E9E9\"> 
          			<td bgcolor=\"#FFFFFF\"> 
            			<span class=\"fett\">Von $name</span></td>
          			<td align=\"right\" valign=\"bottom\" nowrap bgcolor=\"#FFFFFF\" class=\"texteinfach\"> 
            		$homepage  Eintrag vom $datum</td>
        			</tr>
      				</table></td>
  					</tr>
  					<tr bgcolor=\"#E9E9E9\">
  					  <td class=\"text\"><span class=\"text\">$text</span></td>
  					</tr>
  					<tr> 
    				<td align=\"left\"><form name=\"form1\"  method=\"post\" action=\"delete.php?zeile=$i\">
    				  <input type=\"submit\" class=\"deletebutton\" name=\"delete\" value=\"löschen\">
  				  </form></td>
					</tr>
					</table>
					<br>");
			}  ### for ende
			echo("<center><a href=\"../index.php\">zum G&auml;stebuch</a></center>");
		}  ### if fileexists ende

?>
</body>
</html>
 
Ein bisschen mehr Informationen wären nett.

Evtl. sowas wie : bei echo $zeile gibt er mir tatsächlich etwas aus.
Wenn nicht benutze $_GET bzw. $_POST['zeile'] ....

Ist der CHMOD richtig gesetzt, sprich kann die Datei überhaupt
beschrieben werden?

Gibt es eine Fehlermeldung.
 
Ich versuche es mal. Es gibt keinerlei Fehlermeldungen.
Mit dem echo meinte ich, das ich mir den Inhalt der Variablen Zeile habe ausgeben lassen umzu prüfen dass der Wert auch richtig ankommt. Das tut er!

Chmod der textatei steht auf 777.

Das ganze soll im rahmen eines Gästebuches sein. Neue Einträge werden ja auch gespeichert.

Die Dateidelete.php ruft sich selbst wieder auf beim klick auf den button löschen. Es wird nur nicht gelöscht....
 
Ich habe meinen Fehler gefunden. Wenn man statt 0815daten.txt nur 0815daten schreibt, kann es passieren das die Datei nicht gefunden wird.....
Ich bin so .......

Und das hat mich jetzt 4 Tage lang beschäftigt.
Ich könnte ausrasten.

Danke!
 
Zurück