You are not logged in.

wcf.regNote.message

Ephraim

Professional

  • "Ephraim" started this thread

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

1

Friday, January 28th 2005, 1:44pm

Gästebuch ...

Hey Leute,

hab mal ein billiges Gästebuch gebastelt. Mit vielen Kommentaren
im Code. Wer dazu was schreiben will, soll doch seinem Verlangen
folge Leisten und hier ein bissel was Tippen :)
Ansonsten hier mal der Code:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<html>
    <head><title>Ein kleines nettes Gaestebuch</title></head>
    <body>
<!--
// Hier wird das Forumlar für die Eingabe einer neuen Nachricht
// ausgegeben
-->
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<table border="0">
    <tr><td>Name:</td><td><input name="name"></td></tr>
    <tr><td>EMail:</td><td><input name="mail"></td></tr>
    <tr><td colspan="2">Text:</td></tr>
    <tr><td colspan="2"><textarea name="text"></textarea></td></tr>
    <tr><td colspan="2" align="center"><input type="submit" value="Eintragen"></td></tr>
</table>
</form>
<?PHP
// Die Funktion muss man nicht kapieren ;)
// für alle die sie kapieren wollen:
// diese funktion schaut als erstes im $_POST Array nach ob $string als key in
// diesem Array definiert ist, ist er das so wird der Wert zurück gegeben,
// ist er es nicht so wird im $_GET Array nach dem selben key geschaut, ist
// der Key dort vorhanden wird dieser wert genommen und zurück geliefert,
// ist er auch dort nicht vorhanden so wird $default zurückgeliefert, $default // ist default maessig "" (also leer)
// Aber ansonsten gilt einfach immer schön copy pasten ;)
function GetVar($string$default "")
{
    return (isset($_POST[$string]) ? $_POST[$string] : (isset($_GET[$string]) ? $_GET[$string] : $default));
} 

// die Datei in der die ganzen Eintraege gespeichert werden
$file "./eintraege.txt";

// Dieser special dient zur Trennung der einzelnen Daten in der
// Textdatei, schau dir am besten den Inhalt der Textdatei an 
// dann versteht man des ganz schnell, am besten nicht aendern  ;)
$special "MEIN_TOTAL_GENIALER_SPECIAL\r\n";

// wenn ein Eintrag gemacht werden soll 
// dann sind diese Variablen nicht leer.
$name GetVar("name");
$mail GetVar("mail");
$text GetVar("text");

if($name != "" && $text != "")
{
    // um den neuen Eintrag in die Datei schreiben zu können wird
    // die datei aufgemacht und durch des a+ ganz ans ende gesprungen
    $hfile fopen($file,"a+");
    // dann schreiben wir in die Datei "$name\r\n$mail\r\n$text\r\n$special"
    // wobei dieses komische \r\n immer eine neue Zeile bedeutet
    fwrite($hfile"$name\r\n$mail\r\n$text\r\n$special");
    // dann schliessen wir die Datei wieder.
    fclose($hfile);
}

// gibts die Datei nicht sind noch keine Eintraege gemacht worden.
if(file_exists($file)) {
    // diese Zeile gibt mir eine Liste wieder,
    // in der ein Eintrag pro Zeile der Datei ist.
    $content File($file);
    // haben wir eine Liste (Array) und ist der count des Arrays > 0 dann haben wir einträge
    if(is_array($content) && count($content) > 0) {
        echo "<table border=\"0\">";
        // die gesamte anzahl an linien in $content
        $count count($content);
        // durch alle Eintraege durchgehen
        for($i 0$i $count;)
        {
            // Ist unser counter $i plus 1 groesser als der gesamte $count dann is des ende erreicht
            if($i >= $count) { break; }
            
            if($content[$i] == $special || $i == 0) { 
                // ist $i > 0 (nicht mehr am Anfang) dann ist die Linie an der Stelle $i = dem $special
                if($i 0) { $i++; }
                
                // Name ausgeben und $i um eins erhöhen
                echo "<tr><td>Name: <b><font color=\"#0000FF\">".trim($content[$i++])."</font></b></td>";
                // Mail 2 * ausgeben und $i beim zweiten mal um eins erhöhen
                echo "<td>Mail: <b><font color=\"#0000FF\"><a href=\"mailto:".trim($content[$i])."\">".trim($content[$i++])."</a></font></b></td></tr>";
                echo "<tr><td colspan=\"2\">Text:</td></tr>";
                echo "<tr><td colspan=\"2\"><font color=\"#0000FF\">";
                
                // solange die Zeile $i aus der Datei noch nicht $special ist, 
                // ist es noch Text von dem Eintrag.
                // also ausgeben und eine Zeile weiter durch $i++
                do {
                    echo trim($content[$i++])."<br />";
                }while($i $count && $content[$i] != $special);

                echo "</font></td></tr>";
                echo "<tr><td colspan=\"2\"><hr></td></tr>";
            }

        }
        echo "</table>";
    }
}
?>
</body>
</html>


Ist nichts besonderes, aber für einen Einsteiger schon mal interessant
zum durchschauen. Wer fragen zu Funktionen hat,
entweder bei http://php.net die SUPER online docu zu PHP nutzen oder hier
Posten :)

Ciao Ephraim

PS.: Viel Spass beim Rumprobieren.
Ich hab den Code auch gleich noch als Datei angehängt.
Achja und wenn einer nen Fehler findet ...
dann einfach ausbessern und den verbesserten Code hier
posten ;)
Ephraim has attached the following file:
  • gb.zip (2.11 kB - 19 times downloaded - latest: Jan 31st 2012, 11:07am)

wcf.user.socialbookmarks.titel