Gästebuch

Infamous

Grünschnabel
Guten Morgen erstmal ^^!

Ich habe mir ein Gästebuch programmiert. Dieses läuft auch soweit ganz gut, nur wenn ich Einträge löschen oder editieren will, löscht oder editiert es nicht nur den einen Eintrag, sondern alle Einträge die in dem Textfile stehen!

Ich hab schon vieles ausporbiert, doch komme einfach nicht auf eine sinnvolle Lösung! VIelleicht könnt ihr mir ja helfen!

gästebuch

Ihr dürft es gerne mal ausprobieren.

Das PW ist: admin


Falls ich den Code posten werd ich das noch nachholen!

gretz Inf4
 
-

Guten Morgen!

Tue dir einen Gefallen und poste die relevanten Codestellen hier im Board. Ich persönlich habe keine Lust, die 8 Dateien komplett zu durchsuchen, um erstmal den Fehler überhaupt zu finden.
 
Nagut dann mach ich es eben so! Hab halt gedacht sonst wird der Beitrag viel zu lange!


edit.php
PHP:
<?PHP

$find = false;

$d = ($id-1);

	$datei = "gb.txt";
	$fd = fopen($datei, "r");
    $inhalt = fread($fd, filesize($datei));
 	fclose($fd);
 	$lines = explode("\n", $inhalt);
 	$anz_lines = count($lines)-1;

 		for ($i = 0; $i <= $anz_lines-1; $i++) {
  		$line = explode("|µ|", $lines[$i]);
  		if ($i==$d) {

$find=true;
$line[4]=str_replace("<br>","\r\n",$line[4]);

?>

<form action="edit_do.php" method="post">

<table border="0" cellspacing="0" cellpadding="0">
	<tr>
		<td width="100"><font face="Verdana" size="1">Password:</font></td>
		<td width="150" colspan="2"><input type="password" name="password"></td>
	</tr>
	<tr>
		<td colspan="3" height="15">&nbsp;</td>
	</tr>
	<tr>
		<td width="100"><font face="Verdana" size="1">Name:</font></td>
		<td width="150" colspan="2"><input type="text" name="name" value="<?PHP echo "$line[1]"; ?>"></td>
	</tr>
	<tr>
		<td width="100"><font face="Verdana" size="1">E-mail:</font></td>
		<td width="150" colspan="2"><input type="text" name="mail" value="<?PHP echo "$line[2]"; ?>"></td>
	</tr>
	<tr>
		<td width="100"><font face="Verdana" size="1">Homepage:</font></td>
		<td width="150" colspan="2"><input type="text" name="url" value="<?PHP echo "$line[3]"; ?>"></td>
	</tr>
	<tr>
		<td colspan="3" height="15">&nbsp;</td>
	</tr>
	<tr>
		<td width="100" valign="top"><font face="Verdana" size="1">Eintrag:</font></td>
		<td width="350" colspan="2"><textarea rows="9" name="eintrag"><?PHP echo "$line[4]"; ?></textarea></td>
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td width="75"><input type="submit" name="submit" value="submit"></td>
		</td>
	</tr>
	<tr>
		<td><input type="hidden" name="entry" value="<?PHP echo "$lines[$i]"; ?>"><input type="hidden" name="datum" value="<?PHP echo "$line[0]"; ?>"></td>
	</tr>

</table>

</form>

<?PHP
  }
 }
if ( $find == false ){
	echo "<font face'Verdana' size='1'>Eintrag nicht gefunden.<br><a href='gbook.php'>gästebuch</a></font>";
}

?>


edit_do.php

PHP:
<?PHP

if ( $password == $pw ){

	if ( $name == "" || $mail == "" || $url == "" || $eintrag == "" ){
		echo "<font face='Verdana' size='1'>Bitte alle Felder ausfüllen.</font>";
		}else{

$modi=false;
$neuer_inhalt="";
$eintrag=str_replace("\r\n","<br>",$eintrag);
$daten = "$datum|µ|$name|µ|$mail|µ|$url|µ|$eintrag";

$datei="gb.txt";
$fd = fopen($datei, "r+");
$alter_inhalt = fread($fd, filesize($datei));
fclose($fd);

$lines = explode("\n", $alter_inhalt);
$anz_lines = count($lines)-1;

for ($i = 0; $i <= $anz_lines-1; $i++) {
  $de = explode("|µ|", $entry);
  $fe = explode("|µ|", $lines[$i]);
  if ($de[0] == $fe[0]) {
    $modi = true;
    $neuer_inhalt = "$neuer_inhalt$daten\r\n";

  } else {
    $neuer_inhalt = "$neuer_inhalt$lines[$i]\r\n";
  }
}
$fd=fopen($datei, "w");
fwrite($fd,$neuer_inhalt);
fclose($fd);

if ( $modi == true ){
	 echo "<font size='1' face='Verdana'>Eintrag geändert.<br><a href='gbook.php'>gästebuch</a></font>";
	 }else{ 
	 	echo "<font size='1' face='Verdana'>Eintrag nicht gefunden.<br><a href='gbook.php'>gästebuch</a></font>";
	 }

}

}else{
	echo "<font face='Verdana' size='1'>Falsches Password.</font>";
	}

?>

Wenn ich die edit hinbekomme, dürfte die delete bestimmt auch keine Probleme mehr machen!

thx
 
Zurück