Eintrag aus txt-datei löschen

RageNo1

Erfahrenes Mitglied
Hi Leut habe eine Frage,
Ich habe eine Art Terminplaner geschrieben blicke aber nicht so ganz
durch was das löschen eines einzelnen Eintrages angeht.

Ich habe mir folgendes vorgestellt:
1.Ich öffne z.b. delete.php und alle einträge werden angezeigt.
2.hinter allen einträgen ist ein link für löschen.
3.durch anklicken wird nur dieser eine eintrag gelöscht.

Ich habe schon die Foren durchsucht bin aber nicht schlau draus geworden bzw. habe nix passendes gefunden.

Ich hoffe ihr könnt mir weiterhelfen.
 
ja vielen dank caminus ichn sagte doch das ich da nicht durchsteige
bzw. nix passendes gefunden habe.

Hier mal die delete.php:
<?php

$eintrag=file('termine.txt');
$ausgabe="<br>";
$temp=count($eintrag)-1;
for($i=$temp;$i>=0;$i--)

{
$element=explode('~',$eintrag[$i]);
$ausgabe.="<td width=\"20%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[0]."</font></td>";
$ausgabe.="<td width=\"70%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[1]."</font></td>";
$ausgabe.="<td witdh=\"10%\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">del</font></td>";
$ausgabe.="<tr></tr>";
}

echo
"<table width=\"500\" border=\"1\">
$ausgabe
</table>";

?>

nun will ich dort eine löschfunktion einbauen und
"del" dementsprechend verlinken.

hier das script im betrieb
delete.php
 
PHP:
<?php 
$eintrag=file('termine.txt'); 

if (isset($_GET["action"]) && ($_GET["action"] == "delete")) {
  $eh = fopen("termine.txt", "w");
  for ($i=count($eintrag)+1; $i>=0; $i--) {
    if ($i != $_GET["did"])
      fputs ($eh, $eintrag[$i]."\r\n");
  }
  fclose($eh);
  $eintrag = file("termine.txt");
}

$ausgabe="<br>"; 
$temp=count($eintrag)-1; 
for($i=$temp;$i>=0;$i--) { 
  $element=explode('~',$eintrag[$i]); 
  $ausgabe .= "<tr>\n";
  $ausgabe .= "<td width=\"20%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[0]."</font></td>\n"; 
  $ausgabe .= "<td width=\"70%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[1]."</font></td>\n"; 
  $ausgabe .= "<td witdh=\"10%\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">
    <a href=\"del.php?action=delete&did=".$i."\">del</a>
  </font></td>\n"; 

  $ausgabe .= "</tr>\n"; 
} 

echo "<table width=\"500\" border=\"1\"> $ausgabe </table>"; 

?>
 
Zuletzt bearbeitet von einem Moderator:
vielen dank Nuinmundo

wenn ich auf den link klicke macht er zwar was aber gelöscht wird der eintrag nicht????

kann es sein das noch irgendwo ein fehler drin ist?

<?php
$eintrag=file('termine.txt');

if (isset($_GET["action"]) && ($_GET["action"] == "delete")) {
$eh = fopen("termine.txt", "w");
for ($i=count($eintrag)+1; $i>=0; $i--) {
if ($i != $_GET["did"])
fputs ($eh, $eintrag[$i]."\r\n");
}
fclose($eh);
$eintrag = file("termine.txt");
}

$ausgabe="<br>";
$temp=count($eintrag)-1;
for($i=$temp;$i>=0;$i--) {
$element=explode('~',$eintrag[$i]);
$ausgabe .= "<tr>\n";
$ausgabe .= "<td width=\"20%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[0]."</font></td>\n";
$ausgabe .= "<td width=\"70%\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$element[1]."</font></td>\n";
$ausgabe .= "<td witdh=\"10%\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">
<a href=\"delete.php?action=delete&did=".$i."\">del</a>
</font></td>\n";

$ausgabe .= "</tr>\n";
}

echo "<table width=\"500\" border=\"1\"> $ausgabe </table>";

?>

hier nochmal der link delete.php
 
Mach mal asu der zeile:
PHP:
if (isset($_GET["action"]) && ($_GET["action"] == "delete")) {
Die hier:
PHP:
if (isset($_GET["action"])) {

Oder füge zur Kontrolle in die erste if oder for Schleife irgend einen echo-Befehl ein.
 
Ich danke dir schonmal sehr für deine hilfe nur ich bin relativ neu auf diesem gebeit und verstehe nicht was du meinst.
(die zeile ändern hat nix bewirkt)

Oder füge zur Kontrolle in die erste if oder for Schleife irgend einen echo-Befehl ein.
 
Dass es dann ungefär so aussieht:
PHP:
if (isset($_GET["action"]) && ($_GET["action"] == "delete")) {
  $eh = fopen("termine.txt", "w");
  for ($i=count($eintrag)+1; $i>=0; $i--) {
    if ($i != $_GET["did"])
      fputs ($eh, $eintrag[$i]."\r\n");
  }
  fclose($eh);
  $eintrag = file("termine.txt");

  echo "Test bla bla";
}

Wenn jetzt oben im Dokument Test bla bla nicht erscheint, wenn du auf del gehst, dann weisst du schonmal, dass der ganze Block mit dem Zeugs fürs löschen nicht ausgeführt wird. Also muss die if-Bedingunng irgendwie falsch sein.
 
hmm vieleicht sind globals is bei dir register_globals: off
oder wie sichd as schmpft machst mal anders

PHP:
if(isset($did) && $did != "") {
oder
PHP:
if(isset($_GET[did]) && $_GET[did] != "") {

versuchs mal eins der beiden ... und lass dafür

PHP:
if (isset($_GET["action"]) && ($_GET["action"] == "delete")) {

weg sollt ers net machen sag bescheid
 
Zurück