myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

php guestbook blätter funktion problem

Willkommen

myGully

Links

Forum

 
Thema geschlossen
Themen-Optionen Ansicht
Ungelesen 23.05.10, 11:52   #1
bugfix
get shocked....
 
Benutzerbild von bugfix
 
Registriert seit: Nov 2009
Beiträge: 367
Bedankt: 443
bugfix ist noch neu hier! | 0 Respekt Punkte
Standard php guestbook blätter funktion problem

hy leute,
ich hab mir in kleinstarbeit aus verschiedenen anleitungen ein gästebuch nach meinen wünschen zusammen gestrickt das auf TXT basis funktioniert da es sich bei meiner homepage nicht auszahlt eine datenbank zu betreiben.... im prinzip funktioniert alles nach meinen wünschen .... bis auf eines...

ich möchte gerne das man einstellen kann das zum beispiel nur 3 einträge pro seite angezeigt werden und das man dan vorwärts und rückwärts blättern kann.

hab zwar anleitungen gefunden aber ich check das echt nicht mehr durch -_-
wäre nett wenn mir jemand das in meinen code integrieren könnte!

index.php (startseite des gb´s in der die einträge angezeigt werden)
PHP-Code:
<?php
include "allblock.php";  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
 <head>
<link rel='stylesheet' href='div.css' type='text/css'>
<link rel='stylesheet' href='style.css' type='text/css'> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<S*****>
function popUp(page,PWidth,PHeight,id) {
 eval("designerwiz"+id+"=window.open('"+page+"','designerwiz1','toolbar=0,scrollbars=0,location=0,status=0,menubars=0,resizable=0,width="+PWidth+",height="+PHeight+"')")
eval;("wiz"+id+".window.moveTo((screen.width/2)-(PWidth/2),(screen.height/2)-(PHeight/2))")
}
</S*****>
<title> 
  </title> 
</head>
 <body>
<span class="style6"><br>|
G&auml;stebuch |<br>
<br>
<A HREF="javas*****:popUp('http://www.XXXXX.com/guest/neu.php',500,540,1);">Hier eintragen!</A><br><br>
  <?php
   $beitrag 
file("gaestebuch.txt");
   
krsort($beitrag);

   foreach(
$beitrag as $ausgabe)
    {
     
$ausgabe stripslashes($ausgabe);
    
$split explode("|"$ausgabe);
    
    if(!empty(
$split[1]))
    {
    echo 
"
        <table align=\"center\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"90%\">
        <tr>
            <td>
                Von <a href=\"mailto:"
.$split[0]."\">".$split[1]."</a> am ".$split[2]."<br><span class='style7'>Ip: ".$split[4]."</span>
            </td>
        </tr>
        <tr>
            <td> "
.$split[3]." </td>
        </tr>
        </table>
        <br />"
;
    }
}
?>
 </body>
</html>
neuerbeitrag.php (die datei die die einträge speichert)
PHP-Code:
<html>
<head>
<title>Guestbook</title>
<link rel='stylesheet' href='style.css' type='text/css'
</head>
<body>

<?php
$user 
$_POST["Name"];
$user htmlentities($user);

$inhalt $_POST["inhalt"];
$inhalt htmlentities($inhalt);
$inhalt str_replace("\n""<br>"$inhalt);

$thema $_POST["thema"];
$thema htmlentities($thema);

$ipadresse ="$REMOTE_ADDR";

if (
$inhalt == "" or $user == "" or $thema == "")
   {
   echo 
"<span class='style6'><center><img alt='' src='http://XXXXX.com/images/bannerwhite.jpg' width='468' height='60' /><br /><p>Sie m&uuml;ssen folgende Felder ausf&uuml;llen: Namen, E-Mail und Inhalt</p></span>";
   }

else
   {
   
$datumdate("d.m.Y H:i");

   
$eintrag="$thema|$user|$datum|$inhalt|$ipadresse";

   
$datei fopen("gaestebuchZU.txt""a");
   
fwrite($datei"\n".$eintrag);
   
fclose($datei);

   echo 
"<span class='style6'><center><img alt='' src='http://XXXXX.com/images/bannerwhite.jpg' width='468' height='60' /><br /><p>Ihr Eintrag wurde erfolgreich gespeichert,<br>er wird nach Freigabe des Admins angezeigt.</p></span>";

$empfaenger "[email protected]"//Mailadresse
$absender   "[email protected]";
$betreff    "Neuer GB-Eintrag von $user am $datum";
$mailtext   " User: $user \n\n E-mail: $thema \n\n Ip: $ipadresse \n\n Inhalt: $inhalt \n\n Freischalte Link: http://www.XXXXXX.com/index1.php?con=XXXXXXXXXX";
$antwortan  "[email protected]";

mail$empfaenger,
      
$betreff,
      
$mailtext,
      
"From: $absender\nReply-To: $antwortan");

   }
?>

<br>
<span class="style14">
<center><a href="javas*****: close(self)">Fenster schliessen</a>
</span>
</body>
</html>

neu.php (das formular das zum eintragen benötigt wird!)
PHP-Code:
<?php
include "allblock.php";  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Language" content="de-at" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
 <body>
<center><img alt="" src="http://xxxxx.com/images/bannerwhite.jpg" width="468" height="60" /><br />
  <b>
   Wollen Sie einen Beitrag hinzuf&uuml;gen?
  </b><br>
  <i>
   Alle Felder mit einem * m&uuml;ssen ausgef&uuml;llt werden !
  <br>
Info: Ihre Ip Adresse wird aus Sicherheitsgr&uuml;nden gespeichert!
<br>
Wer spammt wird gesperrt!!
</i>
  <form action="neuerbeitrag.php" method="POST">
   <i>
    *
   </i>
   <b>
    Name:
   </b><br>
   <input name="Name" size="40" maxlength="35"><br><br>
   <i>
    *
   </i>
   <b>
    E-Mail:
   </b><br>
   <input name="thema" size="40" maxlength="35"><br><br>
   <i>
    *
   </i>
   <b>
    Inhalt:
   </b><br>
   <textarea name="inhalt" cols="40" rows="12"></textarea><br>
   <input type="submit" value="absenden">
  </form><br>
  <hr>
vielen herzlichen dank schon im vorraus ich weis das ihr mir immer mit rat und tat beiseite steht!

greetz bugfix
__________________
bugfix ist offline  
Ungelesen 23.05.10, 12:47   #2
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Ich würde mal sagen, dass du dir prinzipiell Gedanken um dein System machen solltest.

Wie gehst du aktuell vor?
Schreiben: Anfügen eines neuen Eintrags am Ende der Datei
Lesen: Einlesen der gesamten Datei und sortieren.

Mach dir mal darüber Gedanken, was passiert, falls dein Gästebuch je über 100 oder gar 1000 Einträge erreicht. Einlesen + Sortieren ist äusserst inperformant.

Erstmal würde ich dafür sorgen, dass jeder Eintrag nur einen Zeilenumbruch hat. Das hast du bereits getan. Dann würde ich mir um die Neuorganisation der Daten Gedanken machen.

Alternative:
Schreiben: schreibe neue Einträge an den Beginn einer Datei und hänge den Rest der 'alten' Datei dran
Lesen: Lese nur die ersten drei Zeilen einer Datei und gebe diese danach aus (Tipp: fgets)


Achja:
Zitat:
wäre nett wenn mir jemand das in meinen code integrieren könnte!
Nein, das wird denke ich hier niemand tun.
kramido ist offline  
Ungelesen 23.05.10, 12:58   #3
bugfix
get shocked....
 
Benutzerbild von bugfix
 
Registriert seit: Nov 2009
Beiträge: 367
Bedankt: 443
bugfix ist noch neu hier! | 0 Respekt Punkte
Standard

naj derzeit is es so das alle neue einträge in die datei gästebuchZU.txt kommen dann entscheide ich ob ich den beitrag freigeben möchte und wenn ja führe ich ein s***** aus das mir den inhalt von gäsetbuchZU.txt ausliest und dann an den anfang von gästebuch.txt anfügt... also da hab ich mir schon einige gadanken gemacht ob schätzmativ werden es besten fals mal max 50-70 einträge werden...

wie gesagt es fehlt mir nur die blätter funktion..

greetz
__________________
bugfix ist offline  
Ungelesen 23.05.10, 15:14   #4
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von bugfix Beitrag anzeigen
wie gesagt es fehlt mir nur die blätter funktion..
greetz
Du sortiest doch jedesmal die gesamte Datei beim Einlesen oder täusche ich mich?
PHP-Code:
$beitrag file("gaestebuch.txt"); 
   
krsort($beitrag); 
Parameter des Skripts:
per Get: $offset (Starte mit Beitrag der Nummer)
per Konstante: $numPerPages

Wie kann man tendentiell vorgehen?
1. Öffnen der Datei fopen()
2. $offset Zeilen lesen mit fgets() und wieder verwerfen
3. $numPerPages Zeilen lesen mit fgets() und Darstellung als gewünschter Eintrag
4. schließen der Datei mit fclose()

Natürlich zwischendrin noch sicherstellen, dass die Datei überhaupt genug Zeilen und somit Einträge hat.

Grüße,
kramido
kramido ist offline  
Ungelesen 23.05.10, 15:25   #5
bugfix
get shocked....
 
Benutzerbild von bugfix
 
Registriert seit: Nov 2009
Beiträge: 367
Bedankt: 443
bugfix ist noch neu hier! | 0 Respekt Punkte
Standard

naja ich hab es bis jetzt so gelöst das beim eintragen in die gästebuchzu.txt geschrieben wird... wenn ich mich entscheide den beitrag freizugeben wird der gesammte inhalt eingelesen mit und dann in die datei gästebuch.txt geschrieben danach wird die gästebuch.txt gelöscht... beim nächsten neuen eintrag wird die gästebuchZU.txt wieder erstellt und so weiter und so weiter....

beim kopieren wird auch der gesammte inhalt vorne an die gästebuch.txt angehängt so brauch ich nicht sotieren und der neueste inhalt ist immer an erster stelle...

greetz
__________________
bugfix ist offline  
Ungelesen 23.05.10, 16:30   #6
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von bugfix Beitrag anzeigen
beim kopieren wird auch der gesammte inhalt vorne an die gästebuch.txt angehängt so brauch ich nicht sotieren und der neueste inhalt ist immer an erster stelle...
Deine Idee ist mir schon klar. Nur wieso tust du es dann in deiner index.php bei jedem Aufruf? Mein Zitat bezog sich auf deinen Quelltext.
kramido ist offline  
Ungelesen 23.05.10, 17:18   #7
bugfix
get shocked....
 
Benutzerbild von bugfix
 
Registriert seit: Nov 2009
Beiträge: 367
Bedankt: 443
bugfix ist noch neu hier! | 0 Respekt Punkte
Standard

naja ich hab doch ganz oben schon geschrieben das ich das gästebuch aus vielen anleitungen zusammen gebastelt habe weil mir in php teilweise noch ziemlich der plant fehlt...

greetz
__________________
bugfix ist offline  
Ungelesen 24.05.10, 14:09   #8
bugfix
get shocked....
 
Benutzerbild von bugfix
 
Registriert seit: Nov 2009
Beiträge: 367
Bedankt: 443
bugfix ist noch neu hier! | 0 Respekt Punkte
Standard

So ich closse das ganze mal hier hab eine lösung gefunden nach dem ich die ganze nacht durchgemacht habe!! Diesmal hat mir das forum genau nüsse geholfen!!
__________________
bugfix ist offline  
Thema geschlossen


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr.


Sitemap

().