Gästebuch

Thema geschlossen (topic locked)
Gelesen 21307 mal, 102 Antworten - 0 Mitglieder und 1 Gast betrachten dieses Thema.


Auf Facebook, Twitter und Google Plus empfehlen
Webmaster Forum & Hilfe »

Gästebuch

Geschlossen (topic locked):
Seiten: 1 2 3 4 [5] 6 7
« Account HOMEPAGE VORLAGEN »
Herunterladen

Der olle Schwoebel
Special-Member (3.917)  
*****

Re: Gästebuch




Ja, wie gesagt, war jetzt mal schnell angefertigt "das" Wink Bin grade auch noch am optimieren und editieren...

Habe jetzt noch hinzugefügt, was man machen muss, wenn man die Dateinamen ändern will..

Also für das erste Script dann gar nichts (wie es auch dasteht) und für die Nachfolgenden Scripte dann eben ne "Anweisung" mit Zeilenangabe
« Letzte Änderung: 18.05.05, 17:54:15 von Der olle Schwoebel »


Spawn
(447)  
****
Re: Gästebuch


Wow, da ist man mal einen Tag nicht da und siehe da: Ein FAQ-Beitrag wurde geboren. Ich kann dem eigentlich nicht viel hinzufügen.

Das einzige, was mir noch einfiel, wird wohl den Rahmen dann doch etwas sprengen: Es wäre doch ein nettes "Feature", wenn man sich das Design, Anordnung der Einträge etc selbst bauen könnte. So in der Art, wie ich dass auf meiner Seite dann gemacht habe, nur dass es hier eben per Hand geschehen ist.
Blöderweise kenne ich mich in Wahrheit mit PHP eigentlich gar nicht aus ( Grin ), ich kann programmieren, aber die volle Syntax (geschweige denn von gängigen Techniken) blieb mir noch verschlossen. Ich hörte da aber mal was von Templates, wobei sich (obwohl ich Euch das sicher nicht erklären muss) jemand eine Design-HTML-Datei bastelt, die Verweise auf Variablen aus einem seperatem Script beinhaltet.

Aber während ich das hier schrieb, fiel mir auf, dass der Aufwand wohl doch etwas unangemessen ist. Vielleicht belassen wir's beim jetzigen Stand.

PS: Wollen wir noch ein News-System basteln? Ich bräuchte noch eins für meine Seite  Grin  Grin


Spawn
(447)  
****
Re: Gästebuch


Ich habe mal noch n kleines Script gebastelt, dass einen bestimten Eintrag löscht. Das sollte natürlich in einem passwortgeschützten Verzeichniss liegen o.ä.

gbdel.php
Code:
<?php
    $eintraege 
= @file("../content.gb");
    
$max count($eintraege);
    
$openfile fopen("../content.gb","w");
    for( 
$a=0$a<$max$a++)
    {
      if(
$a != $id)
      {
        
flock($openfile,2);
        
fwrite($openfile,$eintraege[$a]);
        
flock($openfile,3);
      }
    }
    
fclose($openfile);
?>


Und hier der Aufruf aus dem Überverzeichnis:
Code:
echo("<a href='./admin/gbdel.php?id=".$a."' target='_self'>X</a>");

an geeigneter Stelle in der Schleife, die die Einträge anzeigt.

Gruß Spawn

PS: Sorry, dass ich hier ständig die echo()-Befehle wieder reinbringe, wie gesagt: PHP-Newbie  Grin


Pennywise
(583)  
****
Re: Gästebuch


PS: Sorry, dass ich hier ständig die echo()-Befehle wieder reinbringe, wie gesagt: PHP-Newbie  Grin

hi..

hat ja keiner was gegen echo gesagt. ich hatte nur erwähnt das bei größeren HTML-ausgaben (wie das eben bei dem Gästebuch z.b. der fall war für die Eingabe-Maske schließ ich persönlich den PHP teil kurz und öffne ihn dann erst wieder wenn ich ihn brauche. das find ich persönlich übersichtlicher, aber jedem das seine.


Syrus
(50)  
**
Re: Gästebuch


So um nochmal auf mein Problem mit den Zeilenumbrüchen zurückzukommen (jaja ich weiß was ihr denkt: "der olli newbiw soll doch endlich den rand halten").
Also wie gesagt mit dem gigantischen Gästebuch da will ich mich erst heranwagen wenn ich php mal halbwegs durchschaut habe. Ich habe ja auch ein soweit intaktes Gästebuch. Nur wenn ich in dem Text einen Zeilenumbruch mache (sprich "ENTER") drücke, dann gibt es einen Fehler. In meinem Gästebuch wird dann eben für diesen Zeilenumbruch eine neue Spalte angefangen und alles geht drunter und drüber!

Hier nochmal die drei Scripte:

auslesen.php:
<?php
 echo"<html><head><title>Start</title></head><body>";
 echo"<table border=1 width='100%' height='30'>";
 echo"<tr><th height='25' width='15%'>Name</th>";
 echo"<th height='30' width='15%'>eMail</th><th height='30'>Text</th></tr>";
 $handle = fopen("tabelle.txt","r");
 while (!feof($handle)) {
   $name = fgets($handle, 4096);
   $email = fgets($handle, 4096);
   $text = fgets($handle, 4096);
   echo"<tr><td width='15%'>$name </td><td width='15%'>$email </td><td>$text</td></tr>";
 }
 fclose($handle);
 echo"</table>";
 echo"</body>";
 echo"</html>";
?>


Das Formular:

<?php
echo"<html><head><title>Start</title></head><body>";
echo"<form method='GET' action='eintragen.php'>";
echo"<p>&nbsp;</p>";
echo"<p>&nbsp;</p>";
echo"<p><font color='#FFFFFF' style='font-size: 16pt'>Name:</font></p>";
echo"<p><font color='#FFFFFF'>";
   echo"<input type='input' name='namen' value=''></font></p>";
   echo"<p><font color='#FFFFFF' style='font-size: 16pt'>email: </font></p>";
echo"<p><font color='#FFFFFF'>";
   echo"<input type='input' name='mail' value=''>";
   echo"&nbsp;</font></p>";
   echo"<p align='left'>";
   echo"<font color='#FFFFFF'><span style='font-size: 16pt'>Ihr Text:</span></font></p>";
   echo"<p align='left'>";
         echo"<textarea name='text' rows='12' cols='107'>";
         echo"</textarea><br><br>";
echo"</p>";
      echo"<tr><td>&nbsp;</td><td><input type='submit' value='Abschicken'></td></tr>";
echo"</body>";
echo"</html>";
?>


eintragen.php:

<?
 $auslesen=fopen("tabelle.txt","a");
 fwrite($auslesen,$namen."\n");
 fwrite($auslesen,$mail."\n");
 fwrite($auslesen,$text."\n");
 fclose($auslesen);
?>

Und sorry aber als ich den Thread eröffnet habe war das erst mal so für mein Verständnis geplant, dass sich da jetzt so was großes (und auch ziemlich geiles) daraus entwickelt hat finde ich zwar cool, nur kann ich da halt nicht mehr mitreden!

Gruß Syrus


Syrus
(50)  
**
Re: Gästebuch


Achso nochmal was unabhängig von meinem vorigen Post:
Ich würde schauen, dass zumindest ein Name und ein Text eingegeben werden müssen, dass ein neuer Post erstellt wird!!!

Gruß Syrus

PS: Sorry wegen Doppelpost


Spawn
(447)  
****
Re: Gästebuch


Das Problem ist, dass bei diesem "Prototypen" die Trennung der Kategorien per "\n" also Zeilenumbruch gemacht wird. Das heisst, wenn Du einen Umbruch im Text hast gibt's Probleme. Das kannst Du umgehen, indem Du, bevor Du den Text in die Datei speicherst alle Umbrüche in eine Zeichenfolge verwandelst, die den Umbruch repräsentiert (beispielsweise im "großen" GB durch "<!umbruch!>" realisert).

Der Befehl zum Ersetzen eines Strings mit einem anderen String lautet:
Code:
$neu = str_replace($einfuegen,$ersetzen,$alt);

wobei $einfuegen für die einzufügende, $ersetzen für die zu ersetzende Zeichenfolge steht.
Nun musst Du natürlich, nachdem Du alles wieder ausgelesen hast, die entsprechenden Repräsentanten wieder durch den Umbruch ersetzen. Dazu analog wieder den str_replace-Befehl benutzen.

Gruß Spawn

PS: Nein, wir (zumindest ich) wollen nicht, dass Du die Klappe hälst. Im Eifer des Gefechts ist Dein Problem nur etwas verloren gegangen  Cheesy
« Letzte Änderung: 19.05.05, 23:20:58 von Spawn »


Der olle Schwoebel
Special-Member (3.917)  
*****
Re: Gästebuch


Hi alle miteinannder, ich habe mich mal an eine kleinere Grafikversion des Gästebuchs gewaagt, schaut finde ich, schon relativ gut aus :

Das ganze kommt in den "<!-- EINTRÄGE ANZEIGEN --!>" Teil :

Code:
<span style="font-family: arial;">
<table class="GBtable" cellpadding="2" cellspacing="2" border="0"
style="text-align: left; height: 46px; width: 50%; background-color: rgb(0, 0, 153);">
 <tbody>
   <tr class="GBhead">
     <td
style="vertical-align: top; width: 55%; background-color: rgb(0, 0, 153); font-family: comic sans ms; color: rgb(255, 204, 51);"><small><?=$Eintrag[5];?></small></td>
     <td colspan="4"
style="vertical-align: top; background-color: rgb(0, 0, 153);">
     <table cellpadding="2" cellspacing="2" border="0"
style="text-align: left; width: 100%; background-color: rgb(0, 0, 153);">
       <tbody>
         <tr>
           <td style="vertical-align: top; width: 70%;"><br><br><br><br><br><small><span style="color: rgb(255, 204, 51); font-family: verdana;"><?=$Eintrag[4];?></span></small><br
style="color: rgb(255, 204, 51);">
           <span style="color: rgb(255, 204, 51); font-weight: bold; font-family: verdana;"><?=$Eintrag[1];?></span><br
style="color: rgb(255, 204, 51);">
           <br style="color: rgb(255, 204, 51);">
           <small><span style="color: rgb(255, 204, 51);"><a class="GBlink" href="mailto:<?=$Eintrag[3]?>"><span style="font-family: arial;;"><?=$Eintrag[3]?></a></span></small><br
style="color: rgb(255, 204, 51);">
           <small><span style="color: rgb(255, 204, 51);"><a class="GBlink" href="<?=$Eintrag[2];?>" target="_blank"><span style="font-family: arial;"><?=$Eintrag[2];?></a></span></small><br>
           </td>
           <td style="vertical-align: top;" rowspan="1" colspan="1"><span
style="font-family: arial;">
           <div style="text-align: right;"><img src="briefmarke02.jpg"
title="" alt="" style="width: 100px; height: 115px;"><br>
           </div>
           </span></td>
         </tr>
         <tr>
         </tr>
       </tbody>
     </table>
     </td>
   </tr>
 </tbody>
</table>


Für "briefmarke02.jpg" kann man jetzt eine beliebige Briefmarke einsetzen, ich habe einfach mal eine erstellt.. Das ganze kann man mal ausprobieren oder anguggen :
http://schwoebelbank02.sc.funpic.de/gbbook/

Das ganze sollte irgendwie wie ne Postkarte aussehen, mit nem Vorbild von "gbserver.de" :
http://gaestebuch.gbserver.de/schwoebel,1.html

Es gibt natürlich noch ein paar KLEINE Abänderung, wie die Hintergrundfarbe und ab und zu, wo der Firefox die Schriftart oder Farbe nicht richtig anzeigt hat, eine eindeutige Definition mit <span style="color: rgb(...);">, aber sonst ist es das Original bzw. mit dem oberen Code Wink
« Letzte Änderung: 24.05.05, 17:33:36 von Der olle Schwoebel »


Spawn
(447)  
****
Re: Gästebuch


Schick schick. Wollte allerdings gerade mal was eintragen und da ist nix passiert, ausser dass meine Überschrift Deinem Eintrag angefügt wurde...?

Mir ist gerade noch eine Sache aufgefallen, die wohl alle GBs auf "unserer" Basis betreffen müsste: Wenn ich ein Gänsefüßchen (") eingebe, wird das als \" gespeichert und ausgegeben. Ich dachte erst, dass betrifft Sonderzeichen im Allgemeinen und habe mal mit ! § $ & etc getestet, hier tritt das Problem allerdings nicht auf.

Jemand eine Idee?

Gruß Spawn


Pennywise
(583)  
****
Re: Gästebuch


mmhh...vielleicht sollten wir vorher (falls das nicht automatisch passiert) mit addslashes() die phpzeichen wie ' " \ und so schützen und bei der ausgabe mit stripslashes wieder entfernen...sollte jedenfalls funktionieren


JoSsiF
Special-Member (9.089)  
*****
Re: Gästebuch


Hi |

Stripslashes bei der Ausgabe sollte reichen, da die schützenden Slashes ja schon mit gespeichert werden.

Es war auch noch ein kleiner Bug drin im Skript: wenn noch keine Textdatei angelegt war (und damit die Variable $eintraege nicht initialisiert wurde), wurde $max auf 1 gesetzt und dummerweise "1 Einträge" angezeigt. Is gefixt Wink

So, was wäre dieser Thread ohne Unmengen an Quellcode, also:

Code:

<?
#######################################################################
##  Dieses Gästebuch wurde in einer Geminschaftsarbeit mehrerer      ##
##  Mitglieder von computerhilfen.de entwickelt. Es soll all jenen,  ##
##  die sich immer wieder fragen: "Gästebuch? Wie geht das?" zeigen, ##
##  wie man ein einfaches Gästebuch erstellt.                        ##
##  Es ist auch nicht das ultimative Gästebuch, sondern nur ein Wink ##
##  in die richtige Richtung. Im Detail waren daran beteiligt:      ##
##                                                                  ##
##  Erster Entwurf und Grundfunktionen        : Jan190480            ##
##  Optimierung des Lese- und Schreibzugriffs : JoSsiF, Mario        ##
##  Verteilung der Einträge auf mehrere Sieten: Spawn                ##
##  Stylesheet-Implementierung                : Der olle Schwoebel  ##
##                                                                  ##
##  Viel Spaß mit dem Gästebuch. Fragen können gerne                ##
##  direkt an die einzelnen Mitlieder gerichtet werden              ##
##  oder im Forum gepostet werden.                                  ##
##                                                                  ##
##  2005 | computerhilfen.de                                        ##
##                                                                  ##
#######################################################################



##  Der PHP-Teil. Ohne PHP (oder einer anderen serverseitigen        ##
##  Programmiersprache (wie z.B. Perl)) wird man kein Gästebuch zum  ##
##  Laufen bekommen.                                                ##



### Konfiguration (auch wenn's hier noch nicht ganz so viel zu konfigurieren gibt *g*) #########################

$ppp = 5; // Anzahl der Beiträge, die pro Seite ausgegeben werden sollen
$textfile = "myGB.txt"; // Name der Textdatei, in der die Einträge gespeichert werden

### Ende Konfiguration #########################################################################################


/*
$page initialisieren (der Wert entspricht der aktuellen Seite der Gästebucheinträge)
Beim ersten Aufruf (keine Seite gewählt) wird diese auf 1 gesetzt

Die Variable wird immer aus dem superglobalen Array $_REQUEST[] herausgezogen,
um auch auf solchen Servern einen Wert zu erhalten, auf denen die PHP-Variable
'register_gobals' auf 'Off' gesetzt ist
*/
if (!$_REQUEST['page'])
{
 $page = 1;
}
else
{
 $page = $_REQUEST['page'];
}

// Script wird nur ausgeführt wenn der Benutzer auf "Eintragen" gedrückt hat
if ($_POST['submit'])
{
 //Alles in eine Variable hintereinander schreiben
 $GBeintrag = $_POST['myGBname']."|"; // der Name aus dem Formular
 $GBeintrag .= $_POST['myGBhp']."|"; // die Website aus dem Formular
 $GBeintrag .= $_POST['myGBmail']."|"; // die Mail-Adresse aus dem Formular
 $GBeintrag .= date("d.m.y")."|"; // das Datum aus dem Formular, gleich formatiert

 /*
 Das Zeichen '|' wird als Trennzeichen in der Textdatei des Gästebuchs verwendet.
 Falls jemand in der nachricht ein | verwendet hat, sollten wir das
 ersetzen, da sonst beim auslesen Fehler auftauchen
 */
 $_POST['myGBtext'] = str_replace("|", "<!strich!>", $_POST['myGBtext']);

 // Zeilenumbrüche entfernen, da anhand dieser sonst die Trennung der Datensätze erfolen würde
 $_POST['myGBtext'] = str_replace("\r\n", "<!umbruch!>", $_POST['myGBtext']);
 $_POST['myGBtext'] = str_replace("\r", "<!umbruch!>", $_POST['myGBtext']);
 $_POST['myGBtext'] = str_replace("\n", "<!umbruch!>", $_POST['myGBtext']);
 
 // Anführungszeichen als Sonderzeichen behandeln
 //$_POST['myGBtext'] = addslashes($_POST['myGBtext']);

 // Umbruch als Trennzeichen am Ende des Datensatzes hinzufügen
 $GBeintrag .= $_POST['myGBtext']."\r\n";

 /*
 Den Eintrag in die Textdatei schreiben und dabei vor
 gleichzeitigem Mehrfachzugriff schützen
 */
 $openfile = fopen($textfile, "a");
 flock($openfile, 2);
 fwrite($openfile, $GBeintrag);
 flock($openfile, 3);
 fclose($openfile);
}
?>

<!--
Hier der Allgemein bekannte HTML-Teil welcher
das Aussehen der Seite und damit das des GBs bestimmt
Hier kann man nach belieben alles anpassen bis auf
Bestehen bleiben sollten jedoch die integrierten
PHP-Anweisungen welche sich zwischen <? //und ?> befinden.
Sebstverständlich können diese natürlich an eine andere Stelle
verfrachtet werden.
//-->

<!-- KOPF DATEN //-->
<html>
<head>
<title>Mein G&auml;stebuch</title>
<style type="text/css">
 body {background-color: #FFFFFF;}

 .GBtable {border: 1px solid #000000;
           border-collapse: collapse;
           width: 400px;}

 .GBhead {background-color: #0000FF;
         color: #FFFFFF;
         font-weight: bold;}

 .GBinput {background-color: #00FFFF;
           border: 1px solid #000000;}

 .GBcontent {background-color: #FFFFFF;}

 a.GBlink:link, a.GBlink:visited, a.GBlink:hover, a.GBlink:active { text-decoration: none;
                                                   color: #FFFFFF; }
</style>
</head>
<body>

<center>
<h1>Titel des G&auml;stebuchs</h1>

<!-- EINGABE TEIL //-->
<form action="<?=$PHP_SELF?>" method="POST">
<table class="GBtable">
 <tr class="GBhead">
   <td colspan="2">Hier ins G&auml;stebuch eintragen</td>
 </tr>
 <tr>
   <td>Dein Name</td>
   <td><input class="GBinput" name="myGBname" size="30"></td>
 </tr>
 <tr>
   <td>Deine Homepage</td>
   <td><input class="GBinput" name="myGBhp" size="30" value="http://"></td>
 </tr>
 <tr>
   <td>Deine Email</td>
   <td><input class="GBinput" name="myGBmail" size="30"></td>
 </tr>
 <tr>
   <td colspan="2" align="center">Deine Nachricht</td>
 </tr>
 <tr>
   <td colspan="2" align="center"><textarea class="GBinput" cols="45" rows="10" name="myGBtext"></textarea></td>
 </tr>
 <tr>
   <td colspan="2" align="center"><input type="submit" name="submit" value="Eintragen"></td>
 </tr>
 </form>
</table>
<br><br>

<!-- EINTRÄGE ANZEIGEN -->
<?
/*
Hier das Gästebuch öffnen und alle Einträge in ein Array einlesen;
Fehlermeldung bei noch nicht vorhandener Datei wird unterdrückt
und die Datei automatisch angelegt
*/
$eintraege = @file($textfile);

/*
Anzeigen der Einträge

Solange Einträge vorhanden sind, wird eine Schleife durchlaufen
von hinten nach vorne (also neueste zuerst)

Hier wird gleichzeitig die Logik für die dynamische Generierung
der Seitenlinks erzeugt
*/
$start = (count($eintraege) - 1) - $ppp * ($page - 1);
$stop = (count($eintraege) - 1) - $ppp * ($page - 1) - $ppp + 1;
if ($start > (count($eintraege) - 1))
{
 $start = count($eintraege) - 1;
}
if ($stop < 0)
{
 $stop = 0;
}
// Textdatei überhaupt vorhanden?
if (!$eintraege)
{
 $max = 0; //  $max gibt die Anzahl der Einträge an
}
else
{
 $max = count($eintraege);

   for ($a = $start; $a >= $stop; $a--)
   {
     // Die einzelnen Teile des Eintrags extrahieren
     $Eintrag = explode("|", $eintraege[$a]);
   
     /*
     Dann noch die Sonderstrings wie "<!umbruch!>" und "<!strich!>" wieder
     in die ursprünglichen zeichen ersetzen
     */
     $Eintrag[4] = str_replace("<!umbruch!>", "\r\n", $Eintrag[4]);
     $Eintrag[4] = str_replace("<!strich!>", "|", $Eintrag[4]);
   
     //und jetzt alles in Tabellen ausgeben
   ?>
   <table class="GBtable">
     <tr class="GBhead">
     <td>Von : <?=$Eintrag[0]?></td>
     <td>am : <?=$Eintrag[3]?></td>
     <td><a class="GBlink" href="mailto:<?=$Eintrag[2]?>">Email</a></td>
     <td><a class="GBlink" href="<?=$Eintrag[1]?>" target="_blank">Homepage</td>
     </tr>
     <tr>
     <td colspan="4"><?=stripslashes(nl2br($Eintrag[4]))?></td>
     </tr>
   </table>
   <br>
   <?
 }
}
//  jetzt noch fix die daraus resultierenden Seiten berechnen
if ($max == 0)
{
 $pages = 1;
}
else
{
 $pages = intval(($max - 1) / $ppp) + 1;
}
?>
<p align='center'>
<?
if ($page > 1)
{
?>
   <a href='<?=$PHP_SELF?>?page=1'>|<&nbsp;</a>
   <a href='<?=$PHP_SELF?>?page=<?=($page - 1)?>'><&nbsp;</a>
<?
}
for ($i = 1; $i <= $pages; $i++)
{
 if ($i == $page)
 {
 ?>
   <?=$i?>&nbsp;
 <?
 }
 else
 {
 ?>
   <a href='<?=$PHP_SELF?>?page=<?=$i?>'><?=$i?>&nbsp;</a>
 <?
 }
}
if($page < $pages)
{
?>
   <a href='<?=$PHP_SELF?>?page=<?=($page + 1)?>'>>&nbsp;</a>
   <a href='<?=$PHP_SELF?>?page=<?=$pages?>'>>|</a>
<?
}
?>
<br>Es sind <b><?=$max?></b> Eintr&auml;ge im G&auml;stebuch</p>
</center>

</body>
</html>


greez Cool
JoSsiF


---Flo---
Gast
...noch ne Frage zu dem Skript....


ich hab noch ne frage zu dem skript,
und zwar, wo kann man da jetzt die
Einträge löschen? ich seh keinen
link oder so was.....


Pennywise
(583)  
****
Re: Gästebuch


die funktion ist noch nicht eingebaut...vorerst wirst du nicht drumherum kommen die einträge von hand zu fuß in der textdatei zu entfernen...

Ich denk aber das wir demnächst noch ne Adminfinktion einbauen...


---Flo---
Gast
Scrollbalken


wie kann ich einstellen,
dass der Scrollbalken
verschwindet, bei dem
man den Text eingibt?

(Auch wenn man ihn nicht
benutzen kann...)


---Flo---
Gast
<!-- EINTRÄGE ANZEIGEN -->


wie kann ich einstellen,
dass die Tabelle, wo die
Einträge angezeigt werden,
schmaler ist?

MfG

Seiten: 1 2 3 4 [5] 6 7  
« Foto-ForumProgrammier-Forum »



Ähnliche Themen zu "Gästebuch":
Mai-Patchday: Microsoft will 4 Lücken schließen
Windows 7 bekommt keinen neuen Kernel
Gästebuch
Gästebuch
Gästebuch
gästebuch??
Gästebuch
Gästebuch
Gästebuch


Webmaster 5 Webmaster 10 Webmaster 15 Webmaster 30 Webmaster 105 |




Computerhilfen.de | Powered by SMF 2.5.1.
© 2001-2012, Lewis Media. Alle Rechte vorbehalten.

Sie betrachten das Thema Gästebuch (Syrus) - Webmaster Forum & Hilfe © Computerhilfen.de