Seiten TXT Guestbook

js-mueller

Erfahrenes Mitglied
Hi

ich hab ein Problem. Ich kann ja super mit mysql usw umgehn doch bei txt haperts noch an nen paar stekllen aufjednefall habe ich golgendes Problem.
für mysql hab ich dieses scripts um guestbook sachen auszulesen udn die in seiten wieder zugeben. (6 post pro seite, dann neue seite anwählen können)
Code:
sichtbar = 6;
if(!isset($pos)) { $pos = 0; }
$query = "SELECT * FROM mminews WHERE game !='wc3' ORDER BY id DESC LIMIT $pos,$sichtbar";
$ergebnis = mysql_query($query, $dbhandle);
$abfrage_eintragcount = "SELECT * From mminews WHERE game !='wc3'";
$erg1 = mysql_query($abfrage_eintragcount, $dbhandle);
$eintraege = mysql_num_rows($erg1);


$anzahl_seiten = $eintraege / $sichtbar;
$anzahl_seiten = ceil($anzahl_seiten);

if($eintraege > $sichtbar)
{
$steuerung = "[ ";
for( $ii=0; $ii < $anzahl_seiten ; $ii ++ )
{
$zahl = $ii * $sichtbar;
if($pos != $zahl)
{
$steuerung = $steuerung."<a href=\"index.php?open=news&pos=$zahl\">".($ii+1)."</a> ";
}
else
{
$steuerung = $steuerung."<font class=\"red\">"
.($ii+1)."</font> ";
}
}
$steuerung = $steuerung."]";
}
else
{
$steuerung = "&nbsp;";
}
Doch ich bekomme es nicht hin, das ich es für txt umschreiben kann.
Im mom habe ich es so aber das klappt eigentlich garnet *g*
Also das auslesen von 4 einträgen schon, aber net das ich auf die nächste seite switchen kann für die nächsten einträge
Code:
<?php 
if($anzahl_seiten > $sichtbar)
{
$steuerung = "[ ";
for( $ii=0; $ii < $anzahl_seiten ; $ii ++ )
{
$zahl = $ii * $sichtbar;
if($pos != $zahl)
{
$steuerung = $steuerung."<a href=\"index.php?open=Guestbook&pos=$zahl\">".($ii+1)."</a> ";
}
else
{
$steuerung = $steuerung."<font class=\"menu\">"
.($ii+1)."</font> ";
}
}
$steuerung = $steuerung."]";
}
else
{
$steuerung = "&nbsp;";
}
echo $steuerung; ?></td>
	</tr>
<?php
while($i < $iii)
{ //ausgeben auf
$daten = explode("||@@||", $datei[$i]);

$email = $daten[0];
$poster = $daten[1];
$date = $daten[2];
$text = $daten[3];
$datum = date("d.m.Y",$date);
$uhrzeit = date("H:i",$date);
$zeit = "Geschrieben am $datum um $uhrzeit";

	?>
	<tr>
		<td ><font class="link"><b><a href="mailto:<?php echo $email; ?>"><?php echo $poster;?></a></b></font><br>
		<font class="menu"><?php echo $zeit;?></font><hr color="#000000" size="1">
		<?php echo $daten[3]; ?>
		</td>
	</tr>
	<tr>
		<td>&nbsp;</td>
	</tr>
	<?php
	$i++;
	}
	?>

Ich hoffe es kann mir wer helfen

edit: achso die txt datei s8ieht von innen so aus (testhalber die texte):
Code:
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text6||@@||
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text5||@@||
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text4||@@||
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text3||@@||
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text2||@@||
J-Miller@t-online.de||@@||Randar||@@||2147483647||@@||Hier ist nen astreiner text1||@@||
 
Zuletzt bearbeitet:
Den code habe ich nicht nach geprueft.
PHP:
<?php
$datei = file("gbook.txt");
$eintraege = count($datei);

$anzahl_seiten = $eintraege / $sichtbar;
$anzahl_seiten = ceil($anzahl_seiten);

if($eintraege > $sichtbar)
{
  $steuerung = "[ ";
  for( $ii=0; $ii < $anzahl_seiten ; $ii ++ )
  {
    $zahl = $ii * $sichtbar;
    if($pos != $zahl)
    {
      $steuerung = $steuerung."<a href=\"index.php?open=news&pos=$zahl\">".($ii+1)."</a> ";
    }
    else
    {
      $steuerung = $steuerung."<font class=\"red\">"
.($ii+1)."</font> ";
    }
  }
  $steuerung = $steuerung."]";
}
else
{
  $steuerung = " ";
}
echo $steuerung; ?></td>
</tr>
<?php
while($i < $iii)
{ //ausgeben auf
  $daten = explode("||@@||", $datei[$i]);

  $email = $daten[0];
  $poster = $daten[1];
  $date = $daten[2];
  $text = $daten[3];
  $datum = date("d.m.Y",$date);
  $uhrzeit = date("H:i",$date);
  $zeit = "Geschrieben am $datum um $uhrzeit";
?>
<tr>
<td><font class="link"><b><a href="mailto:<?php echo $email; ?>"><?php echo $poster;?></a></b></font><br>
<font class="menu"><?php echo $zeit;?></font><hr color="#000000" size="1">
<?php echo $daten[3]; ?>
</td></tr>
<tr><td>&nbsp;</td></tr>
<?php
$i++;
}
?>
 
Sorry wenn ich nochmal frage, aber ich dreh bald durch mit den scheiss .txt datein :D
Also ich hab jetzt folgendes code
PHP:
$time = $time;
$datei = file("guestbook.txt");
$fp = fopen("guestbook.txt", "r+");
$add = "$mail||@@||$name||@@||$time||@@||$text||@@||"."\n".".$datei.";
fputs($fp, $add);
fclose($fp);

So das funzt aber net, er schreibt nichts in die txt
 
also file gibt dir ein array zurueck, das die zeilen repraesentiert.

PHP:
$time = $time;
$datei = implode("\n",file("guestbook.txt"));
$fp = fopen("guestbook.txt", "r+");
$add = "$mail||@@||$name||@@||$time||@@||$text||@@||"."\n".$datei;
fputs($fp, $add);
fclose($fp);

mit
$datei = implode("\n",file("guestbook.txt"));
machst du aus deinem array einen ganz langen string, der alle zeilen beinhaltet.

Damit muesste es funzen.

Der Code ist wieder nicht geprueft.
 
Zuletzt bearbeitet:
ne da klappt was net. Der schreibt mir alles in eine zeile, er soll mir aber jeden einzelnen beitrag in ne neue zeile schreiben.
Das hat irgendwie net ganz geklappt.
 
Bei dir gab's ein Fehler und ich hatte ihn so uebernommen :mad:

Man sollte doch gucken ;)

so ist es richtig:
PHP:
$add = "$mail||@@||$name||@@||$time||@@||$text||@@||"."\n".$datei;

Noch eine Anmerkung,
fopen("guestbook.txt","r+");
Dieser Modus setzt voraus das die Datei existiert.
Wenn du willst das sie, wenn sie nicht vorhanden ist, erstellt wird, benutzte "w+".
 
Der macht das immernoch net richtuig. die textdateis sieht jetzt so aus: (file im anhng)
Also nach dem posten. Ist voll komisch. So gibt das script das dann net richtig aus.

Is voll komisch, weiss net wieso das alles net funzen will :(
 
Zuletzt bearbeitet:
versuch mal das \n dur \r zu ersetzen.

vielleicht klappt es ja dann.

PHP:
$add = "$mail||@@||$name||@@||$time||@@||$text||@@||"."\r".$datei;
 
Zurück