Helft mir - guestbook.php spinnt :<

Hallo.com :slight_smile:

Da ihr mir schon 3 mal geholfen habt, tue ich das recht ungern… Aber zur Zeit weiss ich einfach nicht weiter…
Ich habe mir ein 150 Zeilen langes Gästebuch geschrieben, auf TXT basierend, mit Blätterfunktion…
Naja… BEVOR ich die Blätterfunktion reingeschrieben habe, klappte es wunderbar :<

Naja ich kopiere hier erstmal den Code für die Ausgabe der Eintraege, dann die guestbook.txt, dann die Seite und erzähl ich, was mein Problem ist :frowning:

Ausgabeteil im Gästebuch:

[code]<?php

$eintraege = file('guestbook/guestbook.txt');
rsort($eintraege);
$anzahlseiten = ceil(sizeof($eintraege)/$bproseite);
$num = count($eintraege);


if(!$_GET['showentries']){
	$site = 0;
} else {
	$site = $_GET['showentries']-1;
}

$stelle = $site*$bproseite;
for($x = $stelle; $x < $stelle+$bproseite; $x++){
	if(!$eintraege[$x]){
		break;
	} else {
		$e = explode("|", $eintraege[$x]);

?>







          </table>
          <br><br>
<?php $num--; } } if($site != 0){ $f = $site; echo "< "; } for($x = 1; $x <= $anzahlseiten; $x++){ if($x != $anzahlseiten){ if($x == $_GET['site']){ echo $x.", "; } else { echo "".$x.", "; } } else { if($x == $_GET['site']){ echo $x; } else { echo "".$x.""; } } } if($site != $anzahlseiten-1){ $n = $site+2; echo " >"; }[/code] guestbook.txt: [code]1|24.02.2008|0:20:56|erster|1 2|24.02.2008|0:21:5|zweiter|2 3|24.02.2008|0:21:13|dritter|3 4|24.02.2008|0:21:20|vierter|4 5|24.02.2008|0:21:27|fünfter|5 6|24.02.2008|0:21:50|sechster|6 7|24.02.2008|0:22:5|siebter|7 8|24.02.2008|0:22:12|achter|8 9|24.02.2008|0:22:19|neunter|9 10|24.02.2008|0:22:27|zehnter|10[/code] Die Seite selber: [semikolon.bplaced.net/chantrarli ... =guestbook](http://semikolon.bplaced.net/chantrarlies/index.php?site=guestbook) So: Bei der Ausgabe wird es z.Z. folgendermaßen gezeigt: Seite 1: 1, 9, 8, 7, 6, 5 Seite 2: 4, 3, 2, 10 Und ich FINDE den Fehler einfach nicht... Warum ist 1 mit 10 vertauscht?! Manchmal fängt er auch bei 9 an, zählt auf 1 runter und ganz hinten kommt Eintrag 10... Naja schaut euch die Seite an... Dann versteht ihr mein Problem, wenn ihr es vorher noch nicht verstanden habt.. (was ich verstehen könnte ^^) Wenn ich noch irgendwas posten soll, einfach hier rein schreiben :slight_smile: mfg Semi
".$e[0]." schrieb am “.$e[1].” um “.$e[2].” folgendes:"; ?>
<?php echo $e[3]; ?>

achja… $num könnt ihr ignorieren, werde ich heute rausschreiben…

probier dochmal die zahlen so zu schreiben:
01, 02, 03 ,04, 05, 06 ,07 ,08 ,09, 10

in die guestbook.txt?
nein, da ist das problem nicht, gb.php die .txt ja als array liest und dann bei [0] anfängt und hochzählt…

deswegen weiss ich eigentlich nicht, woran es liegen könnte :smoke:
das ist schon ärgerlich, wenn man 2-3 stunden so ein script geschrieben hat ^^

warum benutzt du nicht einfach mysql :ps:
Ansonsten würde ich an der Blätter funktion rumschrauben. Manchmal liegts an falschen Rechnungen etc.

Versuch mal die for, die alle Eingträge abarbeitet zu loggen

file_put_contents("gb.log","Eintrag: $i \ŧ Inhalt: $xyz");

Ich bin mir sicher, dass du den Fehler erkennst, außerdem kannst du das setzen;

error_reporting(E_ALL);

ich kann mit mysql nich umgehen, ich weiss ich sollte das lernen ^^
aber mit textdateien hab ichs gelernt…
hast du sonst ein gutes tutorial zu mysql? ich muss es verstehen, schritt für schritt und nicht einfach abschreiben :<

ich denke auch, dass es an der blätterfunktion liegt, doch da frage ich ja euch, da ich einfach nichts finde :neutral_face:

@michi
in gb.log steht NUR folgende Zeile:

semikolon.bplaced.net/chantrarli … ook/gb.log

Warum ausgerechnet und NUR eintrag 5?!

Weils, mein Fehler war :ps:

file_put_contents("gb.log","Eintrag: $i \ŧ Inhalt: $xyz",FILE_APPEND);

file_put_contents überschreibt satndardmäßig :wink:

Eintrag: 1 Inhalt: erster Eintrag: 9 Inhalt: neunter Eintrag: 8 Inhalt: achter Eintrag: 7 Inhalt: siebter Eintrag: 6 Inhalt: sechster Eintrag: 5 Inhalt: fünfter

.<

wieso hört er bei 5 auf, und warum fängt er mit 1 an? wenn ich das script durchgehe und mit den get variablen rechne etc… kommt bei mir 10 als erstes raus, dann 9, 8, 7 etc… -.-

interresant o.O
vll, liegts an $array[0] (hast du vll. vergessen, dass PHP bei 0 anfängt?)

PS: Deine txt ist im Falschen Format :wink:

naja er soll ja je nachdem, wo get[‘show’] ist im array anfangen und bei get[‘show’]+$bproseite aufhören (blätterfunktion eben)^^

werde mal mit + oder - 1 was dranhängen, mal gucken was passiert…
obwohl ich das nicht gerne tue, ich möchte wissen was ich mache :wink:

wie meinst du das, meine txt ist im falschen format?!

wenn ich vor der for-schleife:
echo $e[0];

eintippe, kommt

das verstehe ich nicht … es muss sich vorher irgendwo verdreht haben… kann es sein, dass es an rsort() liegt?

mir array_reverse und krsort ist alles in der richtigen reihenfolge, jedoch falschherum (von 1 aufsteigend nach 10 (einträge))…

gibt es eine ähnliche funktion wie rsort, die die eintraege im array umdreht?
keine ahnung, warum rsort(); es so falsch macht…

nimm doch sort() statt rsort()

Sortiere gar nicht o.O
Warum solltest du sortieren?

weil er mit dem letzten eintrag anfangen soll…
also 10, 9, 8, 7 … 3, 2, 1, break;

und ich mit der for schleife mit 0 anfange, eintrag 10 aber im array ( file(gb/gb.txt) ) an stelle [9] sitzt…

bei sort() sortiert er auch sehr merkwürdig:
10, 2, 3, 4, 5, 6, 7, 8, 9, 1

einfach nicht sortieren:

for($i=$end_post;$i--;$i > $end_post - $step)

:wink:

SUPER MICHI :hail:

jetzt hab ich allerdings ein nächstes problem…
get[‚showentries‘] = 2 ignoriert er anscheinend…

moment :slight_smile:

muahahaha
es funktioniert!..!!!

tragt euch mal ein ^^
semikolon.bplaced.net/chantrarli … =guestbook

habt ihr noch irgendwelche vorschläge, was man dran verbessern könnte (bis auf ip sperre (kommt heute noch x) ) )