Webbasierte Anwendungen – BG 13

Werbung
Webbasierte Anwendungen – BG 13
(benutzt ”Webdesign und Multimedia”)
http://worgtsone.scienceontheweb.net/ - mailto: worgtsone @ hush.com
02. Januar 2008 – 2. Mai 2016
Inhaltsverzeichnis
1 Intro
3
2 Server und Clients, Protokolle und Ports
3
3 Abgeben 13er zur Bewertung 2016. Termin :
3.1 index.html . . . . . . . . . . . . . . . . .
3.2 muddle.php . . . . . . . . . . . . . . . .
3.3 farbraum.php . . . . . . . . . . . . . . .
3.4 fakultaeten.php . . . . . . . . . . . . . .
3.5 fortune.php . . . . . . . . . . . . . . . .
3.6 nullstel.php . . . . . . . . . . . . . . . . .
3.7 ostproxy . . . . . . . . . . . . . . . . . .
3.7.1 Was . . . . . . . . . . . . . . . . .
3.7.2 Dokumentation . . . . . . . . . .
3.7.3 Vortrag und Vorführung . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
4
4
4
4
4
5
5
5
5
4 Abgeben 13er zur Bewertung 2015. Termin :
4.1 index.html . . . . . . . . . . . . . . . . .
4.2 muddle.php . . . . . . . . . . . . . . . .
4.3 farbraum.php . . . . . . . . . . . . . . .
4.4 fakultaeten.php . . . . . . . . . . . . . .
4.5 fortune.php . . . . . . . . . . . . . . . .
4.6 nullstel.php . . . . . . . . . . . . . . . . .
4.7 ostproxy . . . . . . . . . . . . . . . . . .
4.7.1 Was . . . . . . . . . . . . . . . . .
4.7.2 Dokumentation . . . . . . . . . .
4.7.3 Vortrag und Vorführung . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
6
6
6
6
7
7
7
7
5 Abgeben 13er zur Bewertung 2014. Termin :
5.1 lehrer.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
6 Abgeben 13er zur Bewertung 2013. Termin :
6.1 Für WA (Webbasierte Anwendungen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
7 Internet im Unternehmen (Intranet)
11
8 PHP
8.1
8.2
8.3
8.4
8.5
12
12
12
12
12
12
Einbinden in html-Seiten
Variablen . . . . . . . . .
Kontrollstrukturen . . . .
Parsen des Inputs . . . .
Felder . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
INHALTSVERZEICHNIS
2
8.6 Übung : NimSpiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
9 Datenbanken
9.1 Ganz Simpel : Eine Tabelle fürs Gästebuch . . . . . . . . . . . . .
9.2 Auch simpel : Zwei Tabellen für MYBUY, ein Versteigerungshaus.
9.3 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4 SQL: Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5 SQL: Insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
13
14
14
14
10 PHP und Datenbanken
10.1 Öffnen und Schließen . . .
10.2 Lesen . . . . . . . . . . . . .
10.3 Schreiben . . . . . . . . . .
10.4 Sessions öffnen und prüfen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
14
14
14
11 Javascript
11.1 Einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Felder manipulieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Binäre und Hexadezimale Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
15
15
12 Einen Span auslesen
12.1 Aufgaben . . . . . . .
12.1.1 Befehle . . . . .
12.1.2 Faku . . . . . . .
12.1.3 ggt . . . . . . .
12.1.4 Lisa . . . . . . .
12.1.5 Dezi, Bine, Hexa
16
17
17
17
17
17
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13 Klausur
18
14 Klausur-Rückgabe
18
Disclaimer
Wissen ist zum Teilen da. Ich teile mein Wissen mit Ihnen, lieber Kollege.
Ich bin aber nicht perfekt. Unter [email protected] nehme ich dankbar Ihre
Verbesserungsvorschl”age entgegen.
*
Legal Blurb: Alle Informationen in diesem Dokument sind falsch, unvolständig,
irreführend, irrelevant und / oder funktionieren einfach nicht.
Wenn Sie es trotzdem benutzen, und es geht dabei etwas kaputt, ist das Ihr
Problem, nicht meins.
1
1
INTRO
3
Intro
Beide Kurse dienen zur Unterstützung des LK Datenbanken.
Die Schüler sollen sich Accounts auf www.my-place.us holen, da liegt php5 und mysql dahinter.
Webbasierte Anwendungen (WA) ist ein TG-Kurs. Die Schüler müssen ihn belegen, mehr als 0P haben,
insgesamt 4 haben, davon 2 einbringen.
Datenbanken müssen über JDBC eingebunden werden.
Webdesign und Multimedia (WM) ist ein TWG-Kurs. Die Schüler müssen ihn nicht belegen, außer sie wollen
ins 18MonateModell – oder sie haben keinen Kunstkurs (???).
Bildbearbeitung. Bewegte Bilder, aber keine Videos.
Die folgenden Kapitel gegebn den Stoffverteilungsplan für 14 Wochen wieder.
2
Server und Clients, Protokolle und Ports
Bedeutung von eCommerce, eMail, eBank, eWissen (wiki), eJobs, eDatenschutz...
Suchen von Webspace mit php-Modul und mysql-Datenbank schon dran.
3
ABGEBEN 13ER ZUR BEWERTUNG 2016. TERMIN :
3
4
Abgeben 13er zur Bewertung 2016. Termin :
Sende deine Internet-Adresse der Hauptseite bis zum Termin oder früher an meine dienstliche emailAdresse.
Alle php-Dateien einmal als *.php und einmal als *.phps hochladen.
3.1
index.html
Schreiben Sie eine index.html im BorderLayout mit flashy Werbung links, rechts und unten (zB ein selbstgeschriebenes animated gif/png), einer Überschrift oben und HyperLinks auf Ihre Seiten mitten.
3.2
muddle.php
Der User liefert eine Datei, in der csv (komma-separierte) Werte stehen:
vorname,nachname,klasse,passwort,forceChange,email
Der Webserver nimmt sie, parst sie Zeile für Zeile, generiert einen Usernamen aus vorname.nachname.klasse.jahreszahl (zB john.doe.999.2015) und schreibt das alles in sql zurück auf den Bildschirm.
Sie haben sich eine kleine Bibliothek geschrieben und benutzen die BibliotheksFunktionen
openDB(params), sqlDB(params) und closeDB(params).
Jede Funktion gibt ein result vom Typ Result zurück, das eine Fehlernummer (0=allesOK) und eine FehlerBeschreibung enthält.
Beschreiben Sie in HTML, welche Funktion Sie mit welchen Parametern wann warum aufrufen und was sie
mit dem result anfangen.
3.3
farbraum.php
Der User wünscht sich eine Zahl zwischen 8 (0x008) und 45 (0xfff). Sie geben ihm alle hexadezimal dreistelligen Farben, deren Summe diese Zahl ist, in einer Tabelle maximal 16x16, als Farbe und Zahl.
3.4
fakultaeten.php
liefert , als Schleife und Funktion in PHP programmiert,
0!
1!
2!
3!
4!
5!
=
=
=
=
=
=
1
1
2
1*2*3 = 6
// nur die 3 und die 4 werden erl\"autert
1*2*3*4 = 24
120
und so weiter bis (Beispielwerte):
9! = 362880
10! = 3625171.2
, aber das ist offensichtlich Unfug.
3.5
fortune.php
Wählt einen von 5 fröhlichen Sprüchen oder Witzen zufällig aus und zeigt ihn an.
3.6
nullstel.php
php rechnet mit Radianten.
Gesucht ist die Nullstelle von sin(x)-kx, 0¡k¡0, 5, im Intervall ]0,π[.
k wird vom Benutzer eingegeben. Falls es nicht im Wertebereich liegt, wird es nochmal angefordert, mit
Fehlermeldung in ROT.
Zur Nullstelle wird eine 5-zeilige Wertetabelle angezeigt, deren dritte Zeile die Nullstelle ist, ansonsten
Schrittweite 0,1.
3
ABGEBEN 13ER ZUR BEWERTUNG 2016. TERMIN :
3.7
3.7.1
5
ostproxy
Was
Gesucht ist ein lauffähiger Proxy, lokal, in Java 1.5 oder früher, auf Port 8080. Er soll
1. alle Anfragen vom Browser auffangen und loggen,
ja auch die in https etc. diese soll er diesmal aber nur archivieren und ggf ascii-fiziert anzeigen.
ascii-fiziert heißt: alle bösen zeichen (0-31 und 128-∞) werden durch YYYzahlYYY ersetzt.
ggf heißt: die Taste s toggelt Ausgabe an/aus.
loggen heißt: ascii-fiziert in eine Datei schreiben, zB ./log.txt.
2. auf Anfragen nach text auf Servern namens *adfarm* und *facebock* eine gültige html-Seite
zurückliefern, die da lautet: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
3. auf Anfragen nach Bildern auf Servern namens *adfarm* und *facebock* ein Bild zurückliefern, wo
drinsteht: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
4. auf Anfragen nach flash-streams auf Servern namens *adfarm* und *facebock* einen flash-stream
zurückliefern, wo drinsteht: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
5. den Referer entfernen;
6. alle anderen Anfragen durchlassen, beantworten lassen und OHNE ANZEIGE zurückliefern.
7. ostproxy soll auch in der Lage sein, gepostete Dateien weiterzuleiten (hint: Content-Length auswerten).
ostproxy soll folgende main-Methode (oder Konstruktor) enthalten:
while (true){
String request = accept();
myrequest = processRequest();
String response = hole(myrequest);
String myresponse = processResponse();
connection.send(myresponse);
}
3.7.2
Dokumentation
Eine Seite auf einem Server mit 3 Kapiteln: ”Was ostproxy Tolles für dich tun kann”, ”Installation” (incl.
Voraussetzungen und Anmerkungen zu Apfel-Usern) und ”Quelltext”.
3.7.3
Vortrag und Vorführung
Kurzfassung: ”Was ostproxy Tolles für dich tun kann”,
Vorstellen der main-Methode,
Beispiel : Rauswerfen von *facebock* und Referer,
Installation und Ansurfen interessanter Seiten.
*
Neu : Beamer ist zugelassen, aber nur für pdf-Folien im Vollbildmodus und Querformat.
Jede Seite dieser pdfs trägt in der Fußzeile Autor(en), Titel, Seite x von y, Datum, Schule.
4
ABGEBEN 13ER ZUR BEWERTUNG 2015. TERMIN :
4
6
Abgeben 13er zur Bewertung 2015. Termin :
Sende deine Internet-Adresse der Hauptseite bis zum Termin oder früher an meine dienstliche emailAdresse.
Alle php-Dateien einmal als *.php und einmal als *.phps hochladen.
4.1
index.html
Schreiben Sie eine index.html im BorderLayout mit flashy Werbung links, rechts und unten (zB ein selbstgeschriebenes animated gif/png), einer Überschrift oben und HyperLinks auf Ihre Seiten mitten.
4.2
muddle.php
Der User liefert eine Datei, in der csv (komma-separierte) Werte stehen:
vorname,nachname,klasse,passwort,forceChange,email
Der Webserver nimmt sie, parst sie Zeile für Zeile, generiert einen Usernamen aus vorname.nachname.klasse.jahreszahl (zB john.doe.999.2015) und schreibt das alles [[per sql in eine DatenbankTabelle – nein,]] in sql, [[ aber ]] zurück auf den Bildschirm.
Sie haben sich eine kleine Bibliothek geschrieben und benutzen die BibliotheksFunktionen
openDB(params), sqlDB(params) und closeDB(params).
jede Funktion gibt ein result vom Typ Result zurück, das eine Fehlernummer (0=allesOK) und eine FehlerBeschreibung enthält.
Beschreiben Sie in HTML, welche Funktion Sie mit welchen Parametern wann warum aufrufen und was sie
mit dem result anfangen.
4.3
farbraum.php
Der User wünscht sich eine Zahl zwischen 0 (0x000) und 4095 (0xfff). Sie geben ihm alle hexadezimal
dreistelligen Farben, deren Summe diese Zahl ist, in einer Tabelle maximal 16x16.
4.4
fakultaeten.php
liefert
0!
1!
2!
3!
4!
5!
=
=
=
=
=
=
1
1
2
1*2*3 = 6
// nur die 3 und die 4 werden erl\"autert
1*2*3*4 = 24
120
und so weiter bis (Beispielwerte):
9! = 362880
10! = 3625171.2
, aber das ist offensichtlich Unfug.
4.5
fortune.php
Wählt einen von 5 fröhlichen Sprüchen oder Witzen zufällig aus und zeigt ihn an.
4.6
nullstel.php
php rechnet mit Radianten.
Gesucht ist die Nullstelle von sin(x)-kx, 0¡k¡3, im Intervall ]0,π[. k wird vom Benutzer eingegeben. Zur Nullstelle wird eine 5-zeilige Wertetabelle angezeigt, deren dritte Zeile die Nullstelle ist, ansonsten Schrittweite
0,1.
4
ABGEBEN 13ER ZUR BEWERTUNG 2015. TERMIN :
4.7
4.7.1
7
ostproxy
Was
Gesucht ist ein lauffähiger Proxy, lokal, in Java 1.5 oder früher, auf Port 8080. Er soll
1. alle Anfragen vom Browser auffangen,
2. auf Anfragen nach text auf Servern namens *adfarm* und *facebock* eine gültige html-Seite
zurückliefern, die da lautet: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
3. auf Anfragen nach Bildern auf Servern namens *adfarm* und *facebock* ein Bild zurückliefern, wo
drinsteht: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
4. auf Anfragen nach flash-streams auf Servern namens *adfarm* und *facebock* einen flash-stream
zurückliefern, wo drinsteht: ”Ihre Privatsfäre wurde geschytzt von ostproxy.”
5. den Referer entfernen;
6. alle anderen Anfragen durchlassen, beantworten lassen und zurückliefern.
Änderung: ostproxy soll auch in der Lage sein, gepostete Dateien weiterzuleiten (hint: Content-Length
auswerten).
ostproxy soll folgende main-Methode (oder Konstruktor) enthalten:
while (true){
String request = accept();
myrequest = processRequest();
String response = hole(myrequest);
String myresponse = processResponse();
connection.send(myresponse);
}
4.7.2
Dokumentation
Eine Seite auf einem Server mit 3 Kapiteln: ”Was ostproxy Tolles für dich tun kann”, ”Installation” (incl.
Voraussetzungen und Anmerkungen zu Apfel-Usern) und ”Quelltext”.
4.7.3
Vortrag und Vorführung
Kurzfassung: ”Was ostproxy Tolles für dich tun kann”,
Vorstellen der main-Methode,
Beispiel : Rauswerfen von *facebock* und Referer,
Installation und Ansurfen interessanter Seiten.
*
Neu : Beamer ist zugelassen, aber nur für pdf-Folien im Vollbildmodus und Querformat.
Jede Seite trägt in der Fußzeile Autor(en), Titel, Seite x von y, Datum, Schule.
5
ABGEBEN 13ER ZUR BEWERTUNG 2014. TERMIN :
5
8
Abgeben 13er zur Bewertung 2014. Termin :
Sende deine Internet-Adresse der Hauptseite bis zum Termin oder früher an meine dienstliche emailAdresse.
Alle php-Dateien einmal als *.php und einmal als *.phps hochladen.
5.1
lehrer.php
Lehrer schleppen stets ein Rotes Büchelein mit sich herum, in dem sie alles mögliche festhalten. Schicker
ist allerdings ein tablet. Keine History.
Knopf NeueKlasseAnlegen: legt neue Klasse an, mit Nummer (zB 333), Beschreibung (zB Werkzeugmechaniker), Klassenlehrer (zB West) und beliebig vielen Einträgen Vorname-Nachname.
Knopf Klasse ändern: ändert Einträge, löscht oder hinzufügt Schüler.
Knopf Klasse exportieren: Alle Daten dieser Klasse werden in eine Datei dieses Namens rausgeschrieben.
Einstellungen–Pausen: ändert Anfangszeiten der 0. bis 14. Stunde.
Knopf Anwesenheit: ein Schüler ist anwesend, wenn er in der Tabelle SchülerÜberTermin angetickt wird.
An einem Tag können mehrere Termine sein. Es gibt einen Knopf AlleAnwesend. Anticken eines Schülers
in diesem Fall führt zu Abwesend. LangeAnticken/Rechtsklick führt zu Kontextmenü: fehltUnentschuldigt,
fehltEntschuldigt, fehltMitKrankschreibung, beurlaubt, sonstiges (mit Kommentar).
Auf jeder Seite wird in der Kopfzeile groß und deutlich Datum, Uhrzeit, Fach, Stunde und Klassennummer
angezeigt.
Tabelle Schüler über Bewertung1, Bewertung2, Bewertung3. Sie haben frei vergebbare Zusätze, zB schriftlich, mündlich, sonstig. Knopf NeueBewertung fragt nach Art, zB mdlLeistungenHeute, merkt sich den
Zeitpunkt (Datum und Uhrzeit) und aktiviert dann die Spalte. Anticken eines Schülers öffnet ein kleines
Feld mit 0-15 sowie dem Toggle Zeige Notenpunkte/Schulnoten.
Im Kopf der Tabelle gibt es einen Knopf SetzeAlleAuf...
80 Minuten nach jeder Anwesenheit drängt sich stets ein Logbuch-Fenster nach vorne, sagt Termin und
Klasse und verlangt Einträge zu Inhalt (default: Aktuelles) und Hausaufgaben (default: keine).
Tabelle SchülerÜberErmahnung: Anticken gibt Feld für GelbeKarte, RoteKarte, EintragKlassenbuch, und
merkt sich Beschreibung (Fließtext) und Zeitpunkt.
Tabelle Notenbesprechung: gibt alle Bewertungen, darunter Gewicht (1 bis 5), dann Anzahl der GelbenKarten/RotenKarten/Einträge. Spalte BerechneteNote, Spalte PädagogischeNote, Knopf ÜbernimmBerechneteNoteALzPädagogischeNote. Die Pädagogische Note kann händisch geändert werden. Dahinter stehen stets die FehlstundenGesamt, FehlstundenEntschuldigt, FehlstundenUnentschuldigt.
Da die Anwendung hauptsächlich aus Tabellen besteht, ist das Hauptmenü die Anzeige einer Klasse, die
anderen sind als Tabs (Reiter) in reinen Pastellfarben angeordnet.
Nach jeder Eingabe merkt sich der Server den neuen Stand aller Eintragungen in einer einzigen Datei
namens Schule.txt. Jeden Sonntag erstellt er im selben Verzeichnis ein Backup dieser Datei, indem er
den Zeitpunkt in japanischer Schreibweise dranhängt.
Es gibt eine Seite Einstellungen.
6
ABGEBEN 13ER ZUR BEWERTUNG 2013. TERMIN :
6
9
Abgeben 13er zur Bewertung 2013. Termin :
Sende deine Internet-Adresse der Hauptseite bis zum Termin oder früher an meine dienstliche emailAdresse.
Alle php-Dateien einmal als *.php und einmal als *.phps hochladen.
6.1
Für WA (Webbasierte Anwendungen)
• Erstelle eine index-Seite mit Links auf die anderen Seiten.
• tabelle19x19.php in php.
Jede Tabellenzelle sei mit spaltennummer X zeilennumer beschriftet.
Ferner gibt es einen Knopf, der die kleinste Zeilen-/Spaltennummer zwischen 1 und 5 toggelt.
• lampenspiel.php 5x5 in php.
Es gibt einen Knopf: alle Lampen aus.
Die Seite erkennt, wenn es gelöst ist, und gibt ein Fenster mit großer Schrift aus.
• rgbn.php in php.
Ein Schnitt senkrecht zur Hauptdiagonale des RGB-Würfels, dreieckig oder sechseckig, so daß
rot+grün+blau=const. In einer 40x40-Tabelle.
4 Knöpfe: const um +-1 bzw. +-10 verändern.
Die definierten Felder erhalten ihren Farbcode in 6-stelligen hex-Zahlen.
• dritwurz.html : Iteratives Wurzelziehen nach Lisa.
Nur Eingabefeld; oder Ausgabe und anschließend Eingabe.
Gesucht ist w, die 3. wurzel von z. Ich setze a auf z und b und c auf 1.
Anschließend setze ich a auf den Mittelwert von a, b und c.
Dann b auf a.
Dann c so, daß a*b*c = z.
Solange, bis a und c nahe genug aneinander (ca. 1E-9) sind.
Dann gebe ich a als w aus.
• sortByDesign.html
Ein BorderLayout mittels Tabellen. Oben und rechts flashy Werbung als marquee text. Text und Hintergrund wechseln alle 0,25sec die Farbe und sind komplementär.
Links zwei Knöpfe: DEUTSCH und ENGLISCH. Beim Klick wechselt die Sprache.
Darunter eine UL mit OL’s drin :
elektronik01
elektronik0101
elektronik0102
elektronik0103
elektronik02
elektronik0201
elektronik0202
elektronik0203
elektronik03
elektronik0301
elektronik0302
elektronik0303
Untendrin, in hellgrau auf dunkelweiß, Links zu Impressum, Datenschutz-Richtlinie und Abo-Service.
Mitten drin: Eine Tabelle, sortiert nach der ersten Spalte, aufsteigend.
Format der EingabeDatei unter warez.html:
6
ABGEBEN 13ER ZUR BEWERTUNG 2013. TERMIN :
10
ArtikelId;Bezeichnung;Lagerbestand;EUR
0001;Schraube0001;17;0,13
0013;Mutter0013;-5;0,99
Im Tabellenkopf steht der Spaltenname. Wenn nicht nach diesem sortiert ist, sortiert sich die Tabelle
durch Mausklick auf den Spaltennamen aufsteigend; sonst absteigend.
Hinweis: Felder sortiert man nach der n. Spalte so:
// danke Tom
// JSON funktioniert unter firefox 2.0 nicht
var a = [ [2,2,2], [3,1,2], [1,2,4] ] ;
sortBy (a, 1);
document.write (JSON.stringify(a));
function sortBy (array, pos) {
array.sort (
function (a,b) {
return a[pos] - b[pos];
}
);
}
7
7
INTERNET IM UNTERNEHMEN (INTRANET)
11
Internet im Unternehmen (Intranet)
In einer richtigen Firma sind die Verantwortlichkeiten (auch bei Absenz) klar geregelt. Und die Vorgänge.
Und die Limits. Und die Benutzerrechte.
Dazu brauchen die einzelnen Benutzer – wenn mans weit treibt – nur einen Browser. Der zeigt ihnen alles,
was sie machen müssen: Informationen (auch verlinkt), Bilder, Schaltflächen...
Beispiel Schadenserfassung Versicherung. Ein Brief kommt an: ”Ich hatte am ... einen Schaden und
möchte, daß der mit meiner Police Nr. ... geregelt wird.”
In einer ordentlichen Firma braucht der Mitarbeiter nicht aufzustehen und nicht zu telefonieren, um
• den Brief aufzumachen;
• Adresse, Email und Telefonnummer nachzuschauen;
• die Police anzuschauen (obs sie gibt, ob die Prämien gezahlt sind, ob sie zu dieser Person gehört,
ob der genannte Schaden gedeckt ist, ...
was Versicherungs-Sachbearbeiter halt so tun.
• um einen Brief rauszuschicken:
”Sehr geehrter Herr Keks,
danke für Ihr Schreiben vom .... Leider müssen wir Ihnen mitteilen, daß wir zwei verschiedene Postanschriften von Ihnen haben, daß Sie 2 Prämien zurückliegen, daß eine Police mit der von Ihnen
angegebenen Nummer nicht existiert und die einzige, die Sie bei uns haben, nur wirksam wird,
wenn ein durch Hagel ausgelöstes Feuer Ihren Garten vernichtet.
Mit freundlichen Gewürzen... ”
• einen Rundruf an den Versicherungs-Unternehmen-Schutzbund schicken, ob da jemand mogelt.
So isses wirtschaftlich.
Also : Das Internet dient dem schnellen, globalen Informationsaustausch durch
• Browsen http
• Email pop, smtp
• ftp (”Leech”)
• Internettelefonie
Dieser Datenaustausch funktioniert schnell, sicher, g”unstig und arbeitszeitunabh”angig.
• Werbung
• eCommerce, eMail, eBank, eWissen (wiki), eJobs, eDatenschutz...
• Finden neuer Kunden
• E-Commerce
• Kundenpflege (CRM - Customer Relationship Management)
• Online-Kataloge, -Datenbanken, -Support
• Vermeiden von Filialen, wenn’s doch Email, Cash-Systeme und Kurierdienste gibt
Im Unternehmen : Gemeinsames Benutzen von
1. Druckern
2. Massenspeichern (zB Festplatten auf einem Rechner, von dem wirklich backups gemacht werden)
3. Mail-Server und Fax-Server
8
PHP
8
12
PHP
8.1
Einbinden in html-Seiten
8.2
Variablen
8.3
Kontrollstrukturen
8.4
Parsen des Inputs
8.5
Felder
Sauschwer!
$f
$f
$f
$f
[] ;
[0] = 5 ;
[’’keks’’] = 9 ;
[13] = ’’keks’’ ;
8.6 Übung : NimSpiel
Der Rechner zeigt eine Seite:
nimspiel by worgtsone
--
[Neues Spiel]
========================================
Gegeben sind 20 Steine.
Nimm [1], [2] oder [3] Steine.
Wer den letzten nimmt, hat gewonnen. Du f\"angst an.
Statt Steinen gibt es auch Frösche oder Kekse. Es gibt 20 bis 30 Steine. Man kann 1..2, 1..3 oder 1..4 Steine
nehmen. Das ist BEI EINEM SPIEL konstant.
Von 5 Spielen soll der Rechner 1 per Zufall spielen.
Hinter den Link ”[Neues Spiel]” kommt die URL nimspiel.php?neuesS=ja.
Ein Codeschnipsel:
...
if ($\_GET[’’neuesS’’] == ’’ja’’ ) {
... // neues Spiel
} else {
// Eingabe
// Verarbeitung
// Ausgabe
...
9
DATENBANKEN
9
13
Datenbanken
9.1
Ganz Simpel : Eine Tabelle fürs Gästebuch
TODO : Aufgabe Gästebuch ausformulieren. Ist übrigens langweilig.
9.2
Auch simpel : Zwei Tabellen für MYBUY, ein Versteigerungshaus.
Keine Bewertungen. Nur Vorkasse. Keine Packstation. Hermes, DHL, UPS, DPD, FedEx okay.
Böse IPs dürfen gucken, aber nicht kaufen.
Es gibt einen User anton, Passwort: 12345687.
Die Schüler dürfen die Möglichkeit schaffen, sich als neuer User zu registrieren (KANN).
Das ERM ist:
artikel : id (auto), bezeichnung, startpreis, beschreibung in html mit bildern (text), anbieter id, startzeit,
endzeit, meistbietender, gebot.
user : id (auto), screenname, vorname, nachname, adresse (text), passwort (als MD5-hash).
(artikel.anbieter id : user.id) = (n : 1)
(artikel.meistbietender : user.id) = (n : 1)
SELECT * FROM artikel
WHERE user.screenname=’’0815’’ AND anbieter\_id=user.id
ORDER BY gebot DESCENDING;
10
PHP UND DATENBANKEN
9.3
Datentypen
9.4
SQL: Select
9.5
SQL: Insert
10
PHP und Datenbanken
10.1 Öffnen und Schließen
10.2
Lesen
10.3
Schreiben
10.4
Sessions öffnen und prüfen
Geht gerüchteweise so:
$<$?php
if (isset($\_session[’’egal’’] == 5))
echo ’’du bist eingeloggt.$<$br$>$’’;
else {
echo ’’du bist NICHT eingeloggt.$<$br$>$’’;
session\_start();
$\_session[’’egal’’] = 5;
}
?$>$
14
11
JAVASCRIPT
11
15
Javascript
JavaScript ist zum Aufpeppen, Aufmöbeln oder UnbenutzbarMachen von Webseiten.
11.1
Einbinden
Entweder in der Seite, im Head:
$<$script type=’’text/javascript’’$>$
$<$!-// hide from old crappy browsers
alert (’’Hallo Wellt! \n\n tab\t tab\t tab\t tab\t tab\n Tsch\"u\ss{}.’’);
// --$>$
$<$/script$>$
Oder einer Extra-Datei.
Hier ein HTML Schnipsel:
$<$script type=’’text/javascript’’ src=’’fibo.js’’$>$$<$/script$>$
Und hier fibo.js:
function fibo (z) {
if (z$<$3) return 1;
return fibo(z-1) + fibo(z-2);
}
document.write (’$<$h1$>$fibo$<$/h1$>$$<$hr$>$’);
for (i=1; i$<$29; i++) {
document.write (fibo(i) + ’ - ’);
}
11.2
Felder manipulieren
Wie in Übung fibo gesehen, überschreibt document.write das komplette sonstige html-Dokument.
Wir wollen nun einen Umrechner gestalten.
Dazu erzeugen wir eine tabelle mit Eingabefeldern vom Type text mit den Namen text01 und text02. Wir
setzen beider value auf beliebige Zahlen.
Daneben kommt ein Knopf vom Typ button (nicht submit!) mit value=”=” und onclick=nonsens().
Darunter kommt text03.
Ein Stück Javascript definiert die Funktion nonsens() wie folgt:
function nonsens(){
a = document.getElementById(’’id01’’).value;
b = document.getElementById(’’id02’’).value;
c = a * b;
document.getElementById(’’id03’’).value = c;
11.3
Binäre und Hexadezimale Ausgabe
Die Variablen beherrschen merkwürdigerweise die Methode toString(int basis), wobei basis die Basis
des angestrebten Zahlensystems ist.
12
12
EINEN SPAN AUSLESEN
Einen Span auslesen
Mehr javascript gibts in javascript.pdf.
$<$html$>$$<$head$>$$<$title$>$Landkart$<$/title$>$
$<$script type=text/javascript$>$
function mach(){
s = document.form01.schueler.value;
// alert (’’schueler = ’’ + s);
keks=’’keks’’;
// document.div01 = keks;
keks = document.getElementById(’div01’).firstChild.data;
alert (keks);
}
$<$/script$>$
$<$/head$>$$<$body$>$
$<$form name=form01$>$
Gib Anzahl Schueler:
$<$input type=’’text’’ name=’’schueler’’ value=’’3’’$>$
$<$input type=’’button’’ onclick=’’mach()’’ value=’’mach()’’$>$
$<$/form$>$
$<$hr$>$
$<$div id=’’div01’’$>$ gargl $<$/div$>$
$<$div id=’’div02’’$>$ gurgl $<$/div$>$
$<$/body$>$
$<$/html$>$
16
12
EINEN SPAN AUSLESEN
12.1
Aufgaben
12.1.1
Befehle
17
Schreiben Sie sich fortlaufend eine Befehlsreferenz : Wie sie heißen, was sie tun, was sie dazu brauchen.
12.1.2
Faku
Schreiben Sie faku.js, das die Fakultäten von 1 bis (EndeDesWertebereichs) erzeugt.
Staunen Sie dabei über die InTime-Typumwandlung.
12.1.3
ggt
Schreiben Sie eine html-Seite, die den Größten Gemeinsamen Teiler zweier Zahlen bestimmt.
solange a ungleich b
solange a$>$b : a=a-b
solange b$>$a : b=b-a
return a
12.1.4
Lisa
Schreiben Sie lisa.js und ein passendes Ein-/Ausgabeblatt, das aus einer gegebenen Zahl nach dem
Lisa-Verfahren die Quadratwurzel zieht.
Gesucht ist die Wurzel von z.
Ich setze zunächst a auf z und b auf 1.
Dann setze ich a auf (a+b)/2 und b auf z/a.
Solange, bis a nahe genug an b.
12.1.5
Dezi, Bine, Hexa
Schreiben Sie dezi.js und ein passendes Ein-/Ausgabeblatt, das eingetippte Zahlen mit NIX oder 0x oder
0b am Anfang zunächst nach Dezimal wandelt und sodann dezimal, binär und hexadezimal ausgibt.
13
KLAUSUR
13
Klausur
14
Klausur-Rückgabe
18
Herunterladen