nach zeilen löschung in TXT DB leerer zeilenumbruch

Sorry hab ich vergessen zu schreiben. Hier:

Parse error: parse error, unexpected T_IF in /home/www/web201/html/admin/aktuell_theater/delete/script.php on line 44

Gruss Jonas
 
firstlord18 hat gesagt.:
permanent und einmal = Wiederspruch ! :-)

Hallo firstlord.
Da hast du leider unrecht. Zuerst überlegen und dann schreiben, ok?
Man kann einen Text schreiben, in dem man ab und zu klein schreibt, oder man kann einen Text schreiben wo man eben "permanent" klein schreibt. stan hat in seinem Text permanent klein geschrieben und darum hiess es: wenn er noch einmal in einem Text permanent klein schreibt....
Nun, das ist vollkommen richtig, tut mir Leid aber ist so.

Jedenfalls geht es in diesem Thread nicht darum, wer klein oder gross schreibt, sondern darum, wie die letzte Zeile auch gelöscht werden kann.
Kann mir da jemand weiter helfen. Ich habe meinen Quelltext gepostet, es funktioniert immer noch nicht und ich weiss nicht woran der Fehler liegt.
Vielen Dank schon mal.

Gruss Jonas
 
Einen Fehler, dass dort kein if stehen darf, sehe ich auch nicht.
Vielleicht änderst Du im näheren umfeld des Fehlers mal Deinen Quelltext. Auch wenn er dann nicht mehr tut, was er soll, aber vielleicht bringen neue Fehlermeldungen einen auf des Rätsels Lösung.
 
Darum kam ich auch nicht weiter, ich versuche mal etwas zu basteln, vielleicht geht es ja auch noch anders. Ich melde mich, wenn ich etwas herausgefunden habe.

Gruss Jonas
 
Ich habe meinen alten Quelltext noch einmal angeschaut.
Wenn ich dort anstatt fwrite() einfach fputs() nehme, dann kann ich damit ohne Problem die letzte Zeile löschen und der Quelltext ist dabei nicht einmal so kompliziert :)

Hier der Quelltext.


PHP:
<?php


 $bnr = $HTTP_POST_VARS['bnr'];
 
 $fehler = "<table width=\"100%\" ><tr><td width=\"10\">&nbsp;</td><td width=\"*\">ERROR. Im BNR Feld muss eine Zahl eingegeben werden!<a href='javascript:history.back()'><b> Bitte Hier klicken</b></a></td></tr></table>";
 $fehler2 = "<table width=\"100%\" ><tr><td width=\"10\">&nbsp;</td><td width=\"*\">ERROR. BNR nicht vorhanden!<a href='javascript:history.back()'><b> Bitte Hier klicken</b></a></td></tr></table>";
 $fehler3 = "<table width=\"100%\" ><tr><td width=\"10\">&nbsp;</td><td width=\"*\">ERROR. Konnte keinen Eintrag loeschen!<a href='javascript:history.back()'><b> Bitte Hier klicken</b></a></td></tr></table>";
 $fehler4 = "<table width=\"100%\" ><tr><td width=\"10\">&nbsp;</td><td width=\"*\">ERROR. Es wurde keine Datei gefunden!<a href='javascript:history.back()'><b> Bitte Hier klicken</b></a></td></tr></table>";
 $erfolg = "<table width=\"100%\" ><tr><td width=\"10\">&nbsp;</td><td width=\"*\">GELOESCHT. Der Eintrag wurde erfolgreich geloescht!</td></tr></table>";
 
 $datei = "dateiname.txt";

if(file_exists($datei))
{
   if($post)
   { 
   		if ($bnr =="")	
 		{
			echo("$fehler");
 		}
		else
		{
			$array = file($datei);
			$anzahl = count($array);
			$inhalt = fopen($datei,"r");
 			$nr = $bnr;
 		
 			if($anzahl <= $nr)
 			{
 				echo("$fehler2");
 			}
 			else
 			{ 
 				global $datei,$array,$anzahl,$nr;
 				
 				if($anzahl == 0)
 				{
 					echo("$fehler3");
 				}
 				else
 				{
 					unset($array[$nr]);
 					$newinhalt = fopen($datei,"w"); 
					fputs($newinhalt,implode("",$array)); 
					fclose($newinhalt); 
					echo("$erfolg"); 
				}
			}
			fclose($inhalt);
		}
	}
	
	$inhalt = file($datei,"r");
	$anzahl = count($inhalt);
		for($i = 0; $i < $anzahl; $i++)
		{
			$eintrag = explode("|-|",$inhalt[$i]); //Inhalt zerteilen
			// Variablen definieren
			$tag = $eintrag[0];
			$datum1 = $eintrag[1];
			$datum2 = $eintrag[2];
			$datum3 = $eintrag[3];
			$zeit = $eintrag[4];
			$stueck = $eintrag[5];
			$ort = $eintrag[6];
			$location = $eintrag[7];
			$reservation = $eintrag[8];
			$eintragnummer = $i;
			$datum = "$datum1.$datum2.$datum3";
		
			// Daten ausgeben
			echo"<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"30\">$tag</td><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"70\">$datum</td><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"70\">$zeit</td><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"150\">$stueck</td><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"100\">$ort</td><td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"100\">$location</td><td width=\"10\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"*\">$reservation</td><td width=\"10\">&nbsp;</td><td align=\"left\" valign=\"top\" width=\"10\">$eintragnummer</td><td width=\"10\">&nbsp;</td></tr></table>\n";
		}
} 
else 
{ 
	echo("$fehler4");
}

Gruss und vielen Dank für alles.

Gruss jonas
 
[phpf]fputs[/phpf]:
fputs() ist ein Alias für die Funktion fwrite(), und ist in jeder Hinsicht identisch mit ihr.
Das es klappt erstaunt mich.
Lässt er denn am Ende auch keine Leerzeile, wenn man die Textdatei direkt im Editor öffnet?

Kannst Du mir den Gefallen tun, wie es bei [phpf]fopen[/phpf] und [phpf]fwrite[/phpf] steht, fopen mal mit dem dort angesprochen Parameter b anzusprechen und fwrite verwenden, und sehen, ob das einen Unterschied macht?

Danke hpvw
PS: Da hab ich wohl wieder was gelernt.
 
Das stimmt hatte mich auch erstaunt.
Ich habe es noch einmal überprüft, mit fwrite() geht es auch, was ja auch logisch ist.
Die letzte Zeile kann ich aber löschen.
Wie hast du das gemeint mit dem b bei fopen()? Anstatt "w", oder anstatt "r"?
Wieso b? Auf jeden Fall geht beides nicht.

Gruss Jonas
 
Bei der php.net Beschreibung zu [phpf]fopen[/phpf] steht, dass man (bei Windows-Servern) die Textdateien mit dem zusätzlichen Paramter b explizit als Binärdateien öffnen kann.
PHP:
$handle = fopen ("/home/rasmus/file.gif", "wb");
Sollte sich jetzt aber erledigt haben, wo es auch mit fwrite() geht.

Gruß hpvw
 
Zurück