PHP-Gästebuch ohne MySQL aber mit \"x Einträge pro Seite\"

Begonnen von puchne, 21. Oktober 2005, 18:09:40

Vorheriges Thema - Nächstes Thema

raiser

Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt! (Marie von Ebner-Eschenbach)




Irren ist menschlich!




Wer andern eine Grube gräbt,


sollte darüber nachdenken,


ob sie tief genug ist!!!!




Kameradschaft ist, wenn der


Kamerad schafft !!!!


und noch was zur endung... es ist vollkommen rillepups welche endung deine datei hat.kannst auch test.hampelmann requiren
[/quote] Das glaube ich nicht /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" /> Denn du willst hier ja die Variablen bzw. Array Eigenschaften von PHP nutzen, weshalb das Skript auch vom Dateityp PHP sein sollte. /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
Sooo, nun zur Ausgabe ;] - hab ja schon ne Menge gelernt (danke schonmal dafür [smile]  ), aber wie schaffe ich es jetzt, bei der Ausgabe-Seite, dass nur X Einträge pro Seite angezeigt werden.[/quote] Raiser hat ja hier schon viel gepostet. Da ich jetzt zu faul bin, seine Links nochmal zu checken, schreib ich nur nochmal kurz, auf was du achten musst. /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />/uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />
Du übergibst auf die Seite, welche die Anzeige übernimmt, 2 Variablen. Eine mit der Seite, wo es los gehen soll, und eine, wo es aufhören soll. $start, $end /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" /> Dann nimmste die for-Schleife, baust deine Grenzen ein, und dazu gibst du noch ein echo (oder auch 2, oder 3) mit deinen Ausgaben (Name, Datum, Nachricht) an.
hab ja schon ne Menge gelernt (danke schonmal dafür /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" /> )[/quote] Das war der Sinn, des Threads und deshalb hab ich dir nicht immer gleich alles verraten /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" /> Ich find es auch schön, das du was gelernt hast. Ich hoffe du lernst jetzt C# und ADO.NET, und hilfst mir bei meinen Problemen weiter /uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />
 
kOOni

puchne

du musst über einen link start und ende übergeben[/quote] Genau davon hab ich keine Ahnung - in diesem blöden PHP-Buch steht davon absolut nix drin :/ - es sei denn es funktioniert ähnlich wie bei der GET-Methode.
Wie übergebe ich denn Variablen?
Sieht die URL dann etwa so aus: ausgabe.php?anfang=5&ende=10   ...?
Und hab ich damit schon die Variablen übergeben?
(also $anfang=5; $ende=10)
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\\server\\apache\\htdocs\\newpage\\kopf.php:9) in c:\\server\\apache\\htdocs\\newpage\\kopf.php on line 19[/quote] He, Raiser /uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" /> (Link: Blätterfunktion)

Wie übergebe ich denn Variablen?
Sieht die URL dann etwa so aus: ausgabe.php?anfang=5&ende=10 ...?
Und hab ich damit schon die Variablen übergeben?
(also $anfang=5; $ende=10)
[/quote]
Stimmt genau. Nur falls du dein Gästebuch auch mal öffentlich einsetzen möchtest, dann baue bitte eine Kontrolle aller eingehenden Variablen ein, sonst pump ich dir dein Gästebuch mit HTML-Code voll /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />  Aber das ist erstmal nebensächlich.
[edit]
Wenn wir hier dann fertig Sinn, dann können wir deinen Code mal noch etwas, na sagen wir mal, optimieren. Aber nur wenn du willst /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />
[/edit]
kOOni

puchne

Sooo ...
ich glaub in etwa klappt dies hier:

\";
                       $ausgabe.=$anfang;
                       $ausgabe.=\"\";
                       $ausgabe.=\"Name: \";
                       $ausgabe.=$eintrag[$anfang][\'name\'];
                       $ausgabe.=\"\";
                       $ausgabe.=\"E-Mail: \";
                       $ausgabe.=$eintrag[$anfang][\'email\'];
                       $ausgabe.=\"\";
                       $ausgabe.=\"Nachricht: \";
                       $ausgabe.=$eintrag[$anfang][\'nachricht\'];
                       $ausgabe.=\"\";
                       print($ausgabe);
                       }
   if($ende+5>=$nr) {
                   $anfang=$_GET[start]+5;
                   $ende=$nr-$ende;
                         if($ende>0) {
                                      $ende=$anfang+5;
                                      print(\"SeiteX\");
                                      }
                   }
   else            {
                   $ende=$_GET[ende]+5;
                   $anfang=$_GET[start]+5;
                   print(\"SeiteX\");
                   }
?>

 
Allerdings ist dort ein Fehler drin:
siehe http://www.digitales-lichtbild.de/gaestebuchx/ausgabe.php?start=1&ende=5\" rel=\"external nofollow\">.../ausgabe.php?start=1&ende=5 (unten ist jeweils der link - allerdings noch nicht durchnummeriert, daher das x)
Zwar wird, wenn keine Einträge mehr vorhanden sind, kein link mehr gesetzt, allerdings werden auf der letzten Seite immer noch 5 Einträge ausgelesen, auch wenn nur noch 3 Einträge vorhanden sind ...
Könnt ihr mir da weiterhelfen?
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



puchne

achja, und die neusten stehen dadurch immer noch ganz hinten  /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



achja, und die neusten stehen dadurch immer noch ganz hinten[/quote] Ich weiß, das liegt daran, dass du mit dem ersten Datensatz anfängst und zum letzten durchzählst. Du willst aber den Letzten haben, deshalb musst du verkehrtrum denken ... /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
allerdings werden auf der letzten Seite immer noch 5 Einträge ausgelesen, auch wenn nur noch 3 Einträge vorhanden sind ...[/quote] Hier musst du die Einstellung im Link auf die nächste Seite ändern. Da solltest du erst prüfen, wieviele Einträge noch da sind und dann solltest du $start und $ende entsprechend anpassen /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
 
kOOni

puchne

hm, versuch gerade alles umzuschreiben und hab gerade folgendes Problem:

$anfang=$_GET[start];
$ende=$_GET[ende];
if ($anfang!=true) {

 
Wenn kein Get da ist (also ausgangsseite) führt er xy aus (soweit funktioniert es).
Allerdings funktioniert die Else schleife nicht ...
Bin mir gerade nicht sicher, was die else schleife überhaupt enthält ...
enthält sie \"true\" oder eine Zahl und wird deswegen nicht durchgeführt?
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



puchne

gibt es denn einen Ausdruch wie
\"wenn $anfang eine Zahl ist, dann\" ... ?
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



raiser

sorry jetzt nicht alles gelesen..
nur wegen der dateiendung..
probiers aus.....
wirst sehen es funktioniert...
es wird doch alles, was in der datei steht eingefügt, in deinen code...
du musst nur den code in der datei in php-tags schreiben.....
session_start();  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />  ich weis, hab schon ewig nix mehr dran gemacht und dies ist ein ergebnis
von nem kurzen umbau... was aber nicht so relevant ist....
man könnte ja auch noch was andrese machen...
alles über eine for while ..... ausgeben
und jetzt nur die ausgaben posten wo die aussage zutriff

=$_GET[start] && $i\";
}
?>

 
wie dus letztendlich löste ist dir überlassen....
du kannst doch bei der schleifenbedingun alle von 0-eof laufen lassen....
sieht zwar nicht gut aus, aber geht auch....
und deine links da findest die lösung mit dem modulo \"%\"-zeichen wenn,
irgendwas nicht durch $zps teilbar ist kannste dir ja denken was sein muss....
gruß raiserle

Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt! (Marie von Ebner-Eschenbach)




Irren ist menschlich!




Wer andern eine Grube gräbt,


sollte darüber nachdenken,


ob sie tief genug ist!!!!




Kameradschaft ist, wenn der


Kamerad schafft !!!!


Hallo,
also ich verstehe grad nicht wo das Problem liegen soll. Was meinst du mit else-Zweig puchne? Bitte schreibe das mal in Zukunft etwas genau, und vielleicht auch mal in einer vernünftigen Satzstellung /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
Zu deiner Frage, ob man prüfen kann, ob die Variable eine Zahl ist:
 

int is_int (mixed var)

 
(Ich hoffe, die bereit diese Angabe von Funktionen keine Schwierigkeit beim Lesen.)
@raiser: Deine Varianten finde ich teilweise etwas umständlich, beispielsweise mit dem $zps. Aber wenn es funktioniert, ok.
@puchne: Kannst du mal beschreiben, wie es denn jetzt im Gesamten bei dir aussieht? Vielleicht auch mal mit Link? /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
 
kOOni

puchne

hm, ist es möglich in der for-Schleife Zählschritte von -5 zu definieren?
Also dieses hier will einfach nicht funktionieren:

 =$seitenende;$b-5)
        {
           print($b);
        }
?>

 
dabei gibt er unendlich 14 aus ($seitenende=15).
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



He du Spammer, keine Doppelposts /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
unendlich 14[/quote] Was ist unendlich 14?
Probiere mal das hier (nicht getestet):
 


$seitenende;$b-5)
{
print($b);
}
?>

 
Ich habe hier nicht viel geändert, aber eigentlich müsste es funktionieren. Wiso machst du das eigentlich so umständlich?
Erstelle dir doch einfach eine for-Schleife, welche dir vom Größeren zum Kleineren zählt. Dann baust du einfach deine Grenzen mit ein, dass er diese auch als index in dem Array Eintraege benutzt. Bei dieser -5 Variante erkenne ich nicht richtig einen Sinn. /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />
 
kOOni

puchne


Original von e86 He du Spammer, keine Doppelposts /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
[/quote]
oh, wollte eigentlich überarbeiten statt neu zu posten ...

Was ist unendlich 14?
[/quote]
unendlich 14 ist 14 14 14 14 14 14 14 14 14 14 ....    /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

 Wiso machst du das eigentlich so umständlich?
Erstelle dir doch einfach eine for-Schleife, welche dir vom Größeren zum Kleineren zählt.
[/quote]
hmm, stimmt, hab mal wieder zu früh nach Hilfe geschrien  /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
Also, der aktuelle code funktioniert soweit, allerdings erscheint er mir ein wenig umständlich und lang ... wobei das mich eigentlich nicht weiter stört, solang er einwandfrei funktioniert /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
Hier mal der Quelltext:
 

=$ende;$anfang--) {     // Ausgabeschleife
                                                              $ausgabe=\"name: \";
                                                              $ausgabe.=$eintrag[$anfang][\'name\'];
                                                              $ausgabe.=\"\";
                                                              $ausgabe.=\"email: \";
                                                              $ausgabe.=$eintrag[$anfang][\'email\'];
                                                              $ausgabe.=\"\";
                                                              $ausgabe.=\"nachricht: \";
                                                              $ausgabe.=$eintrag[$anfang][\'nachricht\'];
                                                              $ausgabe.=\"\";
                                                              $ausgabe.=\"\";
                                                              print($ausgabe);
                                                              }
                    $seite=1;
                    $anfang=$nr-1;
                    $ende=$anfang-4;
                    $x=2;
                    print(\"1 \");
                    for($y=1;$y\");
                                                                 print($seiten);
                                                                 print(\"\");
                                                                 print(\"] \");
                                                                 }
                   }
else                {     // Wenn GET=Wert/String -> ab Seite 2 des GBs
                   $anfang=$_GET[anfang];
                   $ende=$_GET[ende];
                   for($anfang=$_GET[anfang];$anfang>=$ende;$anfang--) {  // Ausgabeschleife
                                                    $ausgabe=\"name: \";
                                                    $ausgabe.=$eintrag[$anfang][\'name\'];
                                                    $ausgabe.=\"\";
                                                    $ausgabe.=\"email: \";
                                                    $ausgabe.=$eintrag[$anfang][\'email\'];
                                                    $ausgabe.=\"\";
                                                    $ausgabe.=\"nachricht: \";
                                                    $ausgabe.=$eintrag[$anfang][\'nachricht\'];
                                                    $ausgabe.=\"\";
                                                    $ausgabe.=\"\";
                                                    print($ausgabe);
                                                    }
                                                    $anfang=$nr-1;
                                                    $ende=$anfang-4;
                                                    for ($b=1;$b\");
                                                                               print($b);
                                                                               print(\"\");
                                                                               print(\"] \");
                                                                               $anfang=$anfang-5;
                                                                               $ende=$anfang-4;
                                                                               }
                   }
?>

 
Und her der link: http://www.digitales-lichtbild.de/gaestebuchx/ausgabe.php\" rel=\"external nofollow\">...ausgabe.php
http://www.licht-malerei.de\" rel=\"external nofollow\">»private Foto-Webseite



Hallo,
lösche bitte mal das Doppelposting.
Wegen dem Quelltext, den schau ich mir morgen mal genauer an und poste dir dann mal meine *Vorschläge*.
 
Schönen Abend noch,
kOOni

all your base are belong to us / Discord