PHP / Tipps / Veranstaltungskalender

von: Werner Zenk

Ein einfacher Veranstaltungskalender der die Daten in Textdateien speichert.

Veranstaltung eintragen/ändern durch Eingabe des Datums ->
    Text -> Passwort -> [ok]

Veranstaltung löschen durch Eingabe des Datums ->
    Eintrag löschen-> Passwort -> [ok]

Abgelaufene Veranstaltungen werden automatisch gelöscht.
Sortierung nach Datum (aufsteigend).


Demo:


Herunterladen: veranstaltungskalender.zip veranstaltungskalender.zip
 Version vom: 26.03.2012
 Dateigröße: 3,1 KB
 Dateien: 5

  20111224 - 77 Byte - 08.06.11
  20111231 - 71 Byte - 08.06.11
  20120101 - 55 Byte - 08.06.11
  veranstaltungen_formular.php - 2,4 KB - 26.03.12
  veranstaltungskalender.php - 862 Byte - 26.03.12




Veranstaltungskalender mit Formular (Ab PHP-Version: 5)

Quelltext:veranstaltungen_formular.php
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
<!DOCTYPE HTML>
<html>
 <head>
  <title>Veranstaltungskalender (Formular)</title>
 </head>
<body>

<h3>Veranstaltungskalender (Formular)</h3>

<form action="" method="post">
 Tag: <input type="text" name="tag" size="2" maxlength="2"> &nbsp;
 Monat: <input type="text" name="monat" size="2" maxlength="2"> &nbsp;
 Jahr: <input type="text" name="jahr" size="4" maxlength="4"> (<small>TT MM JJJJ</small>)<br>
 <textarea name="text" rows="5" cols="40"></textarea> <br>
 Passwort: <input type="password" name="passwort" size="12"> &nbsp; 
 <input type="checkbox" name="loeschen"> Eintrag l&ouml;schen &nbsp; 
 <input type="submit" value="ok">
</form>

<?php
/* Veranstaltungskalender, Terminkalender
    Ab PHP-Version: 5
   * Veranstaltung eintragen/ändern durch Eingabe des Datums -> Text -> Passwort -> [ok]
   * Veranstaltung löschen durch Eingabe des Datums -> Eintrag löschen-> Passwort -> [ok]
   * Veranstaltungen werden aufsteigend nach Datum angezeigt (aktuelle Veranstaltungen zuerst).
   * Abgelaufene Veranstaltungen werden automatisch gelöscht.
    Homepage-Total.de */

$passwort "user";
$verzeichnis "events/"// Benötigt Schreib.- und Leserechte!
error_reporting(E_ALL E_STRICT);
date_default_timezone_set('Europe/Berlin');
setlocale(LC_TIME"de_DE""german");

// Veranstaltungen Eintragen/Ändern
if ($_SERVER['REQUEST_METHOD'] == "POST") {
 if (
$_POST["passwort"] == $passwort) {
  if (
checkdate($_POST["monat"], $_POST["tag"], $_POST["jahr"])) {
   if (
file_put_contents($verzeichnis $_POST["jahr"] . $_POST["monat"] . $_POST["tag"], $_POST["text"])) {
    echo 
"<h4>Der Eintrag wurde gespeichert.</h4>";
   }
  }
  else {
   echo 
"<h4>Kein g&uuml;ltiges Datum!</h4>";
  }
 }
 else {
  echo 
"<h4>Das Paswort ist leider falsch!</h4>";
 }
}

// Veranstaltungen Anzeigen/Löschen
foreach (array_slice(scanDir($verzeichnis), 2) as $datei) {
 if (
$datei >date("Ymd")) {
  if (isset(
$_POST["loeschen"]) && file_exists($verzeichnis $_POST["jahr"] . $_POST["monat"] . $_POST["tag"])) {
   if (
unlink($verzeichnis $_POST["jahr"] . $_POST["monat"] . $_POST["tag"])) {
    echo 
"<h4>Der Eintrag wurde gel&ouml;scht.</h4>";
   }
  }
  if (
file_exists($verzeichnis $datei)) {
   echo 
"<p><strong>strftime("%A, %d %B %Y"mktime(000substr($datei42), substr($datei, -2), substr($datei04))) . 
    
"</strong><br>file_get_contents($verzeichnis $datei) . "</p>";
  }
 }
 else if (
$datei != "") {
  
unlink($verzeichnis $datei);
 }
}
?>

</body>
</html>


Veranstaltungskalender ohne Formular

Quelltext:veranstaltungskalender.php
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
<!DOCTYPE HTML>
<html>
 <head>
  <title>Veranstaltungskalender</title>
 </head>
<body>

<h3>Veranstaltungskalender</h3>

<?php
/* Veranstaltungskalender, Terminkalender
    Ab PHP-Version: 5
Homepage-Total.de */

$verzeichnis "events/"// Benötigt Schreib.- und Leserechte!
error_reporting(E_ALL E_STRICT);
date_default_timezone_set('Europe/Berlin');
setlocale(LC_TIME"de_DE""german");

// Veranstaltungen Anzeigen/Löschen
foreach (array_slice(scanDir($verzeichnis), 2) as $datei) {
 if (
$datei >date("Ymd")) {
  if (
file_exists($verzeichnis $datei)) {
   echo 
"<p><strong>strftime("%A, %d %B %Y"mktime(000substr($datei42), substr($datei, -2), substr($datei04))) . 
    
"</strong><br>file_get_contents($verzeichnis $datei) . "</p>";
  }
 }
 else if (
$datei != "") {
  
unlink($verzeichnis $datei);
 }
}
?>

</body>
</html>
    Und Ihre Meinung?
      Sie vermissen auf dieser Seite wichtige Informationen oder haben Hinweise für uns?
Kommentare: 16 » aufmachen   
Mike:
Dieser Veranstaltungskalender ist recht einfach gehalten, ideal für meine Homepage *top*

niden:
schickes teil aber wie bekomme ich nen zeilenumbruch hin ?dat funzt nich

Werner:
Benutze <br>

lolo:
Feines script! Nur wie kann ich ihm beibringen, dass März mit a-Umlaut geschrieben wird?Danke für eine Antwort und Gruß!Lolo

Werner:
Das wird autom. von PHP gemacht mit der Funktion setLocale und es lässt sich nicht ändern. Eine Möglichkeit gibt es aber dennoch;, Datum als "Samstag, 22 03 2014" ausgeben, die Monate werden als Zahlen statt Monatsnamen angezeigt. Ändere folgendes: strftime("%A, %d %B %Y" in strftime("%A, %d %m %Y"

niden:
wenn ich gänsefüßchen " ins formular eingebe, hab ich dann immer nen \" davor...kann man das ändern ? und wie ändere ich die löschzeit ? also von nachts 0 uhr auf morgens 6 uhr ?

Werner:
Füge nach der Zeile:
if (checkdate($_POST["monat"], $_POST["tag"], $_POST["jahr"])) {
folgendes ein:
$_POST["text"] = stripslashes($_POST["text"]);
Die Löschzeit funktioniert nicht mit der Uhrzeit sondern mit dem Datum!

niden:
funzt tausend dank. habs hinbekommen das jetzt nach zeit gelöscht wird... ich lass es dir gerne zukommen falls du interesse hast? wo ich noch dran zu knaubeln habe ist die sache mit den umlauten...

ghostfriend:
Ich würde den Veranstaltungskalender gerne zweisprachig nutzen. In dem Veranstaltungsformular will ich in beiden Sprachen die Daten eingeben und die events dann aber in eine deutsche und eine englische php-Seite ausgeben. Gibt es da eine einfache Lösung?Vielen Dank für eine Antwort!

Werner:
Die einfachste Lösung wäre, zwei Verzeichnisse zu erstellen (eine für deutsch und eine englisch). Außerdem die Datei "veranstaltungen_formular.php" kopieren und umbenennen. In der kopierten Datei dann den Pfad zum Verzeichnis "events/" anpassen.

ghostfriend:
Danke, Werner, für die Antwort.Kann man nicht ein veranstaltungen_formular.php verwenden, in dem beide Sprachen nacheinander erfasst werden? Dann könnte man doch in einem Formular beide Sprachen eintragen. Das deutsche Ereignis geht in den Ordner event, das englische in den Ordner event_e. Mir fehlt nur leider das php-know how. Gibt es noch einen Tipp? Viele Grüße!

Werner:
Einen Tipp habe ich schon: PHP lernen Ich mache mal eine Ausnahme -> veranstaltungskalender_d-e.zip zum herunter laden.

Zwenson:
Gibt es auch die Möglichkeit, einzelne Eintragungen zu bearbeiten, z.B. wenn man jeden Eintrag mit einem Bearbeiten Button verlinkt?

Werner:
Ja, zum Beispiel mit PHP.

josh:
Guten Tag, wie übergebe ich das angegebene Datum im Formularfeld richtig an eine von mir erstellte Datenbank (mysql) um diese anschließend wieder in einer art Archiv auszugeben? Vielen dank

Werner:
Es kommt darauf an wie das Datum in der Datenbank gespeichert wird, empfehlen würde ich den Feldtyp DATE oder DATETIME
Hilfe finden Sie im » netzgemein.de - Forum. Auch als „Gast” können Sie dort Fragen stellen!  
 Das könnte Sie interessieren:
Mit PHP schreiben und lesen (6) - Formularangaben in einer Textdatei speichern und auslesen. Dieses PHP-Script speichert Formularangaben (mehrzeilig) in einer Textdatei. Beim erneuten aufrufen der Seite werden die Formularangaben ausgelesen und angezeigt.  Zahlen zweistellig ausgeben  Array formatiert ausgeben  Die aktuelle Seite in der Navigation hervorheben  AJAX-Anleitung (AJAX-Suchfunktion)  Spam-Schutz mit Captcha  HTML-Tags in der Zeichenkette konvertieren  …mehr
© 2000-2012 Homepage-Total.de Kontakt - Impressum - Banner