Ein einfaches Gästebuch erstellen

Ähnliche Dokumente
W7 Projekt im Zusammenhang Gästebuch

Dateien lesen und schreiben mit php

Programmsteuerung mit PHP - if/else, elseif,switch

Inhalt: Eberhart 2.php_formular.docx 1

entweder: zeilenweise fgets() oder: zeichenweise fgetc()

Grundlagen. Wie sind PHP-Dateien aufgebaut?

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 5 Formulare

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Statistik

Dateneingabe über ein HTML-Formular in eine Datenbank:

Projekt Online-Shop:

Das Paket enthält: formular.php vionlink-formmailer.php src/font.tff src/bg.png src/capmaker.php

Schiller-Gymnasium Hof

Lese- und Schreibschutz für Ihre Dokumente

FileMaker und PHP Workshop

HTML Teil 2. So kann man HTML-Seiten mit <div> und CSS gestalten. So sehen einfache Formulare aus

for ($i=1 ;$i<=25 ;$i++) { echo "$i "; }?> <br> <a href=" zur Index-Seite</a> </body> </html>

Übung zur Vorlesung Multimedia im Netz

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: Übung WS 2014/2015. Benedikt Schumm M.Sc.

C:\~Temp\Rolf\GaM\anfrageauftritt.php Sonntag, 26. Januar :41

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Fernschach-Verwaltung mit Chess Base

Funktionen in PHP 1/7

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

Dreamweaver Arbeiten mit HTML-Vorlagen

Handbuch TweetMeetsMage

Benutzerhandbuch. Gästebuch Software - YellaBook v1.0 Stand: by YellaBook.de - Alle Rechte vorbehalten.

Das Paket enthält: vionlink-formmailer.php formular.htm meldung_template.htm danke_template.htm src/font.tff src/bg.png src/capmaker.

Daten als XML empfangen Ajax und Server-Programme bieten ein DOM-Document-Objekt, das bereits fertig ist.

Das Paket enthält: vionlink-formmailer.php src/formular.htm src/font.tff src/bg.png src/capmaker.php. eine Nutzungslizenz dieses Handbuch

FAQ - Script gaesteform

Dateizugriff unter C

Handbuch Formulare. Stand: Advantic Systemhaus GmbH

-Wählen Sie die gewünschten Kriterien für die Selektion und klicken Sie anschließend auf OK um die Datensätze zu selektieren.

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Datenbanken für Online Untersuchungen

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

Programmieren 2 (Prof. Hasbargen) Klausur

Entwicklung einer Suchmaschine mit dem Internet Information Server

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

Um einen Form-Mailer in Ihre Seite zu integrieren, kopieren Sie bitte den folgenden HTML-Code und fügen ihn in den Quelltext Ihrer Seite ein:

ASP: Active Server Pages

Serienbrief erstellen

Professionelle Seminare im Bereich MS-Office

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Anleitung OpenCms 8 Inhaltstyp Kommentare

Professionelle Seminare im Bereich MS-Office. Serienbrief aus Outlook heraus

Die Redaktion der Burg-News. Die Redaktion der Burg-News erfolgt unter der Adresse

HTML. HyperText Markup Language. von Nico Merzbach

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Anleitung für das Content Management System

10 Lesen und Schreiben von Dateien

HTML5. Grundlagen der Erstellung von Webseiten. Linda York, Tina Wegener. 1. Ausgabe, Dezember 2011 HTML5

Benutzeranleitung fu r die Webseite des Turnverband Luzern, Ob- und Nidwalden

Bearbeitungshinweis zu den Profilblätter. Anlage zum Leitfaden

PHP-Security. Aleksander Paravac. Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27

Eine Datenbank in Avery Zweckform DesignPro über ODBC öffnen

Word 2010 Formulare erstellen mit Inhaltssteuerelementen

File I/O. Persistieren von Daten. Gastvorlesung Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de

Handbuch Groupware - Mailserver

Dokumentation FileZilla. Servermanager

Hilfe zur Bedienung finden Sie stets beim Buchsymbol Info.

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Kontakte. Inhaltsverzeichnis

Druckanpassung von Mahnungen

Anleitung zur Verwendung von Silverstripe 3.x

Praktikum im Grundstudium

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

Newssystem für den eigenen Lehrstuhl einrichten

1 DAS KONTAKTE-FENSTER

XPRIS Update. Updates XPRIS Version: bis Mosberger EDV AG Lettenstrasse Rotkreuz. Mosberger EDV AG Seite 1

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt.

Web-Anwendungen Teil 2 PHP kl. Studienprojekt (Praktikum) Winter 2014/ Daniel Fett

Formularbearbeitung mit EPLAN 5.60/5.70

Web Visu Tutorial. Hipecs Web Visu. Übersicht

PDF FormServer Quickstart

Programmieren der Untersuchung

Counter als PHP-Skript (Zugriff auf Textdatei):

Anleitung für TYPO Bevor Sie beginnen Newsletter anlegen Inhalt platzieren und bearbeiten Neuen Inhalt anlegen...

Zentrale Services Informationstechnologie. Serienbriefe mit Word 2010

Dreamweaver MX Arbeiten mit HTML-Vorlagen

Formulare in html Bernd Bl umel Version: 1. April 2003

LIP Formulare Anleitung zum Speichern, Öffnen und Drucken

Grundlagen der Informatik 2

Übung - Datensicherung und Wiederherstellung in Windows 7

Mapra: C++ Teil 7. Felix Gruber, Michael Rom. 14. Juni 2016 IGPM. Felix Gruber, Michael Rom (IGPM) Mapra: C++ Teil 7 14.

BearingNet Anfragen/Angebote. Einführung... 2 Erhaltene Anfragen... 3 Verkaufen laufend... 3 Verkaufen gespeichert... 3

Installationsanleitung Windows 10 App. Führerschein Prüfprogramm

Erstellen der Adressen Tabelle mit Excel Erste Zeile enthält entsprechende Feld Bezeichnungen wie Anrede, Nachname, Vorname etc.

Typisierte Dateien von Martin Strohal. Einleitung. Der Record

Fusszeile mit Datumsfeld und Dateiname

BricsCAD System Variablen

Tutorium/Aufgaben zu PHP

NTT DATA Helpdesk Benutzerhandbuch

Ein mehrseitiges Kontakt- oder Buchungsformular erstellen.

Programmierung eines Besucherzählers mit Flash

Transkript:

Ein einfaches Gästebuch erstellen Das Gästebuch sichert einen Kommentar, den Vor- und Nachnamen und die E-Mail-Adresse des Gastes. Auf Knopfdruck werden diese Daten in einer Textdatei gespeichert und sofort auf der Seite angezeigt. 1. Erstelle eine Textdatei, welche die Kommentare aufnehmen soll: command.txt Was auf dem privaten Computer einfach funktioniert, kann auf einem Webserver Probleme bereiten, da in diese Datei ja geschrieben werden muss. Der Betreiber des Servers muss das zulassen. Die Besucher besitzen normalerweise nur Leserechte. Um den Schreibschutz in einem Unix/Linux-System auf dem Webserver aufzuheben, verwende den Befehl chmod. Meistens genügt der Befehl chmod 666. Das bedeutet, 2. Erstelle eine PHP-Datei mit dem Namen gaestebuch.php 3. Ergebnis: Code: <!doctype html> <html> <head> <meta charset="utf-8"> Eberhart 7.php_gaestebuch.docx 1

<title>gästebuch</title> </head> <body> <h1>einfaches Gästebuch</h1> <form action = "gaestebuch.php" method = "post" > <p>dein Kommentar: <textarea name="notiz" cols="30" rows="5"></textarea></p> <p>vorname: <input name = "vorname" type="text" size = "50" > </p> <p>nachname: <input name = "nachname" type="text" size = "50" > </p> <p>e-mail: <input name = "email" type="text" size = "50"> </p> <input type="submit" value="abschicken"> </form> <h3>bisherige Meldungen</h3> </body> </html> Ergebnis: Das Formular sendet die Felder an sich selber ab. Erstelle nach der <h3> Überschrift den PHP-Code-Teil: lege darin den Dateinamen der Textdatei in einer Variablen fest: $datei = comment.txt ; Eine if-abfrage prüft, ob die Formularfelder nicht leer gelassen wurden, denn nur dann soll der Kommentar in die Textdatei eingetragen werden: if (!empty($_post["notiz"]) && (!empty($_post["vorname"]) && (!empty($_post["nachname"]) && (!empty($_post["email"]) Wenn diese if-abfrage wahr ist, dann wird das Gästebuch auch durchgeführt. Alle Variablen werden hier mit $_POST bestimmt, da man diese später benötigt, um diese auszugeben, wie z.b. X Y schrieb. //Alle Variablen bestimmen mit POST: $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"]; $email = $_POST["email"]; $notiz = $_POST["notiz"]; Dann wird mit $fp = fopen die Textdatei im Anhänge-Modus geöffnet (open) $fp = fopen($datei, "a+"); Eberhart 7.php_gaestebuch.docx 2

Bei diesem Modus wird der Dateizeiger am Ende der Datei platziert. Daher würde ein neuer Gästebucheintrag ganz unten geschrieben werden. Das werden wir später ändern. Dann folgt ein E-Mail-Link für die Textausgabe, damit die E-Mail Adresse des Gastes ausgegeben wird //E-Mail-Link entsteht: $email = "<a href='mailto:$email'> $email</a>"; Das Datum wird ermittelt und formatiert, damit der Eintrag das genaue Datum erhält. //Datum ermitteln: $datum = date("j.n.y. H.i.s"); Detail: j steht für Monatstag ohne führende Null, n steht für Monatszahl ohne führende Null und Y steht für Jahreszahl mit vier Stellen. H steht für Stunde im 24-h-Format, i steht für Minuten und s für Sekunden. Danach soll die gesamte Meinung ausgegeben werden: //Meinung zusammensetzten: $meinung = "<p><em>$vorname $nachname</em> ($email) schrieb am $datum: <br>$notiz</br>"; Nun hängt man den neuen Eintrag an das Ende der Datei mittels fputs() : //neue Meinung unten an Datei anhängen: fputs($fp, $meinung); Schließe danach die Datei //Datei schließen: fclose($fp); Datei auslesen mit readfile() Damit auch andere Gäste alle Eintragungen sehen können wird die Datei ausgelesen und dargestellt mit readfile($datei); Damit das Gästebuch auf jeden Fall angezeigt wird, auch wenn man selbst keinen Eintrag vornimmt muss man es unterhalb des if-blocks notieren. Eberhart 7.php_gaestebuch.docx 3

Code: <body> <h1>einfaches Gästebuch</h1> <form action = "gaestebuch.php" method = "post" > <p>dein Kommentar: <textarea name="notiz" cols="30" rows="5"></textarea></p> <p>vorname: <input name = "vorname" type="text" size = "50" > </p> <p>nachname: <input name = "nachname" type="text" size = "50" > </p> <p>e-mail: <input name = "email" type="text" size = "50"> </p> <input type="submit" value="abschicken"> </form> <h3>bisherige Meldungen</h3> <?php //Dateiname der txt Datei in Variable speichern: $datei = "comment.txt"; //if Abfrage, ob Varibalen nicht leer sind: if (!empty($_post["notiz"]) &&!empty($_post["vorname"]) &&!empty($_post["nachname"]) &&!empty($_post["email"])) { //Alle Variablen bestimmen mit POST: $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"]; $email = $_POST["email"]; $notiz = $_POST["notiz"]; //Datei wird im Anhängemodus geöffnet: $fp = fopen($datei, "a+"); //E-Mail-Link entsteht: $email = "<a href='mailto:$email'> $email</a>"; //Datum ermitteln: $datum = date("j.n.y. H.i.s"); //Meinung zusammensetzten: Eberhart 7.php_gaestebuch.docx 4

$meinung = "<p><em>$vorname $nachname</em> ($email) schrieb am $datum: <br>$notiz</br>"; //neue Meinung unten an Datei anhängen: fputs($fp, $meinung); //Datei schließen: fclose($fp); } readfile($datei);?> </body> Ergebnis: Eberhart 7.php_gaestebuch.docx 5

Verbesserung: Leider werden die neuesten Einträge ganz unten angezeigt. Es sollte eigentlich umgedreht sein. Man muss den alten Inhalt aus der comment.txt in einer Variablen $old sichern und dann den neuen Eintrag einfach vor dem alten platzieren. Daher ändere den Dateimodus auf r+ und dann muss man den Dateizeiger auch mit rewind($fp) zurücksetzen. Setze dies ein: schwarz alt und bleibt, rot neu:.. $notiz = $_POST["notiz"]; //Datei öffnen: $fp = fopen($datei, r+ ); //alte Daten auslesen und in $old sichern: $old = fread($fp, filesize($datei)); //E-Mail-Link entsteht:. Nachdem die Meinung wieder zusammengesetzt wurde folgt:. $meinung = "<p><em>$vorname $nachname</em> ($email) schrieb am $datum: <br>$notiz</br>"; //Dateizeiger geht an den Anfang:<br> rewind($fp); //neue Meinung vor alter in Datei schreiben: fputs($fp, "$meinung $old"); //Datei schließen: Code: //Alle Variablen bestimmen mit POST: $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"]; $email = $_POST["email"]; $notiz = $_POST["notiz"]; //Datei wird im Anhängemodus geöffnet: $fp = fopen($datei, "r+"); //alte Daten herauslesen und in $old sichern:<br> $old = fread($fp, filesize($datei)); //E-Mail-Link entsteht: $email = "<a href='mailto:$email'> $email</a>"; //Datum ermitteln: $datum = date("j.n.y. H.i.s"); //Meinung zusammensetzten: $meinung = "<p><em>$vorname $nachname</em> ($email) schrieb am $datum: <br>$notiz</br>"; //Dateizeiger geht an den Anfang:<br> rewind($fp); //neue Meinung vor alter in Datei schreiben: fputs($fp, "$meinung $old"); Eberhart 7.php_gaestebuch.docx 6

//Datei schließen: fclose($fp); Ergebnis: Hacking-Versuche unterbinden Mit der Funktion htmlspecialchars() kann man die HTML-Zeichen entschärfen und mit stripslashes() kann man eventuelle Maskier-Schrägstriche entfernen. Daher setzte dies hier ein: Eberhart 7.php_gaestebuch.docx 7

Verbesserung: Eine Funktion, um den Zeilenumbruch im Gästebuch auch anzuzeigen. Damit wird der Zeilenumbruch auf der Gästebuchseite auch sichtbar. Denn ein normaler Break, den ein Gast beim Eintrag erstellt, würde ansonsten nur im Quelltext erscheinen. Somit wird ein Enter des Gastes auch ein Enter bei der darauffolgenden Anzeige im Gästebuch. Verwende dazu die Funktion: nl2br() Lies die Funktion als new line to break. Sie sorgt dafür, dass nach Zeilenumbrüchen im Quelltext zusätzlich das Tag <br> bzw. <br /> eingefügt wird. Als Argument übergib einfach den umzuwandelnden String und hältst das neue Ergebnis in der gleichen Variablen fest. Füge nach dem Erstellen der $notiz-variablen ein, da die notiz ja vorhanden sein muss: //Umbrüche erhalten:<br> $notiz = nl2br($notiz); Screenshot: Ergebnis: Eberhart 7.php_gaestebuch.docx 8