• XAMPP IDEXAMPP IDE

An der VHS Braunschweig findet ab dem 27.06.2011 ein Bildungsurlaub zum Thema "Dynamische serverseitige Webseiten mit PHP & MySQL" statt. Anhand praktischer Beispiele wollen wir uns die aktuellen Techniken rund um PHP-Skripte und MySQL-Datenbanken erarbeiten. Besonderen Dank an dieser Stelle an den Bildungsträger VHS Braunschweig für den Support unserer schlanken Seminaregruppe.

Ort: Heydenstraße 2, VHS Braunschweig, Raum 2.03
Zeiten: Mo, 27.06. bis Fr, 01.07.11; jeweils von 08.30 - 16.00 Uhr

Wir wünschen - wie immer - viel Spaß und Erfolg bei unseren Seminaren.
Ihr Trainer Joe Brandes - hier folgt unser "Roter Faden" für die Woche ...

 

  • Strings und CoStrings und Co
Montag, 27.06.2011, 08.30 - 16.00 Uhr

  • Orientierungsphase, Wochenplanung
  • Infosites VHS Braunschweig und Software-Portal Cobra-Shop
  • Für PHP/MySQL benötigen wir echte Serverumgebung AMP
    Apache - Webserver - www.apache.org,
    MySQL - Datenbank - www.mysql.com,
    PHP - serverseitige Skriptsprache - www.php.net
  • Erstausstattung Tools:
    7-Zip - Packer/Entpacker für fast alle Formate
    XAMPP - Server Entwicklungsumgebung von apachefriends.org für Windows
    PSPAD - cleverer Codeeditor
    portableapps.com - Infosite mit portablen Tools/Programmen bis hin zum kompletten Büro
  • XAMPP-Umgebung
    entpackt, setup_xampp.bat durchgeführt, Verwaltung über xampp-control
    c:\xampp\htdocs\uebungen\test.php - Dokumentstruktur für Hypertext-Dokument (Webdokumente)
    eigene Unterordnerstruktur .\uebungen
    http://localhost/uebungen/test.php - erstes Testen im Browser
    Ordner und Dateien ohne Umlaute, Sonderzeichen und Leerzeichen
    bereits Groß-/Kleinschreibung beachten (Empfehlung: alles klein)
  • Erste Skripts:
    phpinfo(), Variablen mit $ am Anfang (Groß-/Kleinschreibung),
    Ausdrücke ("Anweisungen") sauber mit ; abschließen
  • Kommentare in PHP
    mehrzeilig mit /* ... */
    einzeilig mit //
  • Online/Offline-Hilfe für PHP auf php.net
    Download und Bereitstellung einer kommentierten Hilfe-Datei in PSPAD
    Aufruf von Hilfe in Editor mit Alt+F1
  • PHP-Versionen
    veraltet / möglichst vermeiden: 3.x / 4.x
    Status: Versionen 5.2.x bei aktuellen Hostern,
    Entwickeln mit 5.3.x um vorbereitet und sicher zu sein für 6.0
    PHP-Projekte (CMS / Blogs) verlangen oft spezielle Versionen!
    phpinfo() zeigt detaillierte Infos zum eingesetzten PHP
  • Strings (Zeichenketten) mit einfachen und doppelten Anführungszeichen
    Hinweis: PHP-Parser schaut in die "doppelten" Strings hinein und erkennt Variablen und Formatierungszeichen
  • Zahlenwerte
    bitte mit Punkt als Dezimaltrennzeichen vereinbaren

 

  • foreach()foreach()
Dienstag, 28.06.2011, 08.30 - 16.00 Uhr

  • Rekapitulation, Lösung TN-Fragen und Problemchen, Bereitstellung der Serverumgebung
  • Stichworte zur Variblenverwaltung:
    Datentypen (integer, double, string)
    Zuweisungen durch Wert (by value) und durch Referenz (by reference); Idee hierzu: Variablen zeigen auf Speicherbereiche mit Inhalten
    Konstanten müssen über define() definiert werden (immer alles groß schreiben)
  • Vordefinierte Konstanten und Variablen:
    PHP_VERSION; PHP_OS, ...
    aus $SERVER_NAME wurde mit aktuellen PHP-Versionen $_SERVER['SERVER_NAME']
    $_SERVER ist globales Array (Superglobals: s.a. $_GET, $_POST, ...)
  • Arrays: nummerische und assoziative Array
    manuelle Zuordnung, array(),
    mehrdimensionale Arrays (Praktische Übung mit "Mitgliederverwaltung")
    Ausgaben durch klassische while-Schleifen oder besser durch
    foreach ($array as $key=>$elem) {... Anweisungen ...} (verfügbar ab PHP 4)
  • Array-Funktionen
    in_array(), array_keys(), compact(), ...
  • String-Funktionen
    explode, implode (zerlegen / zusammensetzen von Strings)
    substr_replace, substr, ...
    diese Funktionen werden unsere "echten Websites" erzeugen / modellieren
  • weitere Funktionen
    addslashes, stripslashes (Zusammenhang mit Datenbanken, spezielle Sequenzen/Anführungszeichen müssen sauber behandelt werden, da es sonst zu Missverständnissen mit der DB kommen kann)
    rawurlencode, get_html_tags
    htmlspecialchars (wandelt alle HTML-Skript-Codes in HTML-Zeichen um - wichtig für Sicherheit!)
  • SelfPHP - Online-Portal (nachgeahmt zu SelfHTML Original entwickelt von Stefan Münz)
    zum Selbstlernen und Nachschlagen
    Download aller Infos möglich!

 

  • DiashowDiashow
Mittwoch, 29.06.2011, 08.30 - 16.00 Uhr

  • Rekapitulation und TN-Fragen
    Hinweis: Skriptsammlungen auf selfphp.de oder hotscripts.com
  • Formulartechnik mit post und get
    HTML-Tag <form> deklariert Aktionskript (action="mache.php") und Methode (method="post" oder = "get")
    die Eingabefelder erhalten über name="var_name" gültige PHP-Variablen
    saubere Ansprache der Variablen über Superglobale Array ($_POST['var_name'] bzw. $_GET)
    POST überträgt unsichtbar und "sicher"
    GET überträgt offen in der URL, als Link speicherbar, kleine Datenmengen!
    Beispiel für URL: http://localhost/uebungen/action_get.php?name=Dozent&alter=20
    Hinweis: so funktioneren dann auch die dynamischen Webprojekte:
    http://www.breakpoint-hannover.de/index.php?option=com_content&view=article&id=117&Itemid=67
  • Dateien handeln (lesen von / schreiben in Textdokumente)
    es werden Handle (Zugriffe) auf Dateien verarbeitet
    Beispielbefehle: fopen, fgets, fwrite, fclose
    Unterschiedliche Handle-Methoden beim fopen: w, a, a+, ...
    Hinweis: Schließen von Dateien wichtig!
  • Bildergalerie mit PHP-Skript - unsere erste dynamische Website!
    Quelle: Internet Professionell 08/2003 (Mark Lubkowitz)
    Umsetzung in CSV: Comma Separated Values (Wikipedia)
    Lösung für funktionierende Aufruf durch Analyse des Hauptskripts:
    Skriptabarbeitung wenn gleichzeitig erfüllt (&&)
    - per GET wurde Variable fn übergeben
    - es existiert Datei mit dem Namen, der per GET in fn= übergeben worden ist
    weitere Analyse des Hauptskripts diashow.php (Zeile für Zeile!)
  • Grundprinzip dynamische Websites
    (X)HTML/CSS-Template mit Platzhaltern für dynamische Inhalte erzeugen
    Template wird in String-Variable (oder Array) eingelesen
    Skript erstellt/berechnet "Füllungen" für dynamische Bereiche
    Ersetzen der Platzhalter (z.B. str_replace) in Ausgabestring (oder Array)
    Ausgabe an Browser - fertig!
  • Lesestoff:
    Mark Lubkowitz, "Webseiten programmieren und gestalten: ...", Galileo Verlag, aktuell vergriffen, Neuauflage?
    Stefan Münz
    , "Webseiten professionell gestalten", Vorgängerauflage freier Download (bitte im Netz suchen ;-)
    Galileo Verlag Rubrk PHP
    , diverse Autoren, guter Verlag und OPENBOOKS!
    Franzis Verlag, Blaue Reihe
    , günstige Paperbacks guter Autoren (z.B. Kannengiesser s. selfphp.de)
    Christian Wenz, Tobias Hauser, "PHP 5.3 Dynamische Websites professionell programmieren", Addison-Wesley, 2010
  • Erste Überlegungen und Einsatz von MySQL-DB (phpMyAdmin)
    Hierarchie: DB-Server -> Datenbanken -> Tabellen
    klassische Nutzung über MySQL-Client (Befehlszeilentool mysql) - besser PhpMyAdmin ;-)

 

  • KontaktverwaltungKontaktverwaltung
Donnerstag, 30.06.2011, 08.30 - 16.00 Uhr

  • Rekapitulation und TN-Fragen
  • PhpDia-Show mit MySQL umsetzen, Einführung in PhpMyAdmin
    Datenbank und Tabellen erstellt und mit Daten gefüttert
    Analyse der notwendigen Skripte
    Datenbank-Konnekt-Daten in externer Datei config.inc.php (include)
  • Mit Datenbank-/Tabellen arbeiten: (hier prozedural - s. u. objektorientiert)
    - mysql_connect($host, $user, $password) - Datenbank konnektieren
    - mysql_select_db($database) - Datenbank auswählen
    - mysql_query - Operationen mit DB/Tabellen/Daten
    - weitere mysql-Kommandos PHP (siehe PHP-Manual)
  • OOP (Beispielskripte und Selfphp Praxisbuch)
    einfache einführende Beispiele für Objektorientierte Programmierung mit PHP
    siehe hierzu Kapitel aus selfphp-Praxisbuch
    Konstruktor mit __construct(), Vererbungen (extends, Eltern- und Kindklassen)
    Konstruktor wird automatisch bei Erzeugung eines neuen Objekts ausgeführt
    Sichtbarkeit für Eigenschaften/Methoden mit private, protected, public
    $this-> weist auf "eigene Klasse",
    Nutzung von OOP für Datenbanken: (z.B. mysqli - mysql improved)
    $db = new mysqli($host, $user, $password)
    $db->mysql_db($dbname)
  • Beispiel OOP mit PHP-Grafikbibliothek GD
    und ein PHP-Menü, dass ein bildhaftes Menü aus einer CSV-Datei erstellt
  • Datenbankpraxis: (Christian Wenz, Internet Pro 2006, aktuelles PHP 5.3 Profibuch)
    Kontaktverwaltung zeigt die vier Grundtechniken von PHP-MySQL-Zugriffen:
    Datensätze auslesen (SELECT), aktualisieren (UPDATE), erzeugen (INSERT) und löschen (DELETE)
    Datenbank kontakte über phpmyadmin anlegen,
    Import von "CREATE TABLE kontakt ..." über Datei kontakte.sql

 

  • PhpMyAdmin DumpPhpMyAdmin Dump
Freitag, 01.07.2011, 08.30 - 16.00 Uhr

  • TN-Frage: Praxis mit FTP (Filezilla als FTP-Client auf diversen Betriebssystemen)
  • weitere Literatur:
    Charles Wyke-Smith, Addison-Wesley, "Codin for the web" - leider vergriffen
    Herdt-Skripte (Verlag für Seminargestützte Lehrgangssystemen)
    Web Developer (bis vor kurzem PHP Journal), monatliche Fachzeitschrift
    Internet Magazin (monatliche Fachzeitschrift)
  • Fortsetzung Kontaktverwaltung
    Skripte analysieren - kennenlernen, speziell: Skript loeschen
    Ablaufdiagramm für loeschen.php (Nassi-Shneiderman-Diagramm)
    Verschachtelung mit Hilfe von Ausnahmebehandlung (try ... catch)
  • Backup & Restore (Sichern und Wiederherstellen PHP/MySQL-Projekte)
    PHP + MySQL Projekte bestehen aus zwei Daten-"Arten":
    1) Datei-/Ordner-Struktur Webserver (Sicherung über FTP)
    2) Datenbank-/Tabellen (Sicherung über Dumps)
  • Datenbanken / Tabellen sichern und wiederherstellen
    durch Exportieren und Importieren mittels PhpMyAdmin werden sogenannte "DB-Dumps" erstellt
    Dumps lassen sich automatisch zippen bei Import/Export
    PhpMyAdmin für OnlineSeiten wird vom Hoster bereitgestellt!
    Tipp: MySQLDumper - Skriptsammlung für Lösung von Laufzeitproblemen und MB-Beschränkungen für Up-/Downloads von Dumps
  • Normalformen für Datenbanken
    Hr. Kofler erklärt uns die DB-Tabellen!
  • Konfigurationsdateien
    Apache-Webserver (httpd.conf)
    Hinweis auf Portnummer: Listen 80
    XAMPP: c:\xampp\apache\conf\httpd.conf
    PHP-Konfiguration (php.ini - zuständige php.ini über phpinfo() ermitteln!)
    Hinweis auf Einträge für max_execution_time und post_max_size (s. a. mysqldumper.de)
    XAMPP: c:\xampp\php.ini
    und MySQL-DB-Server (aktuell: my.ini; alt / vormals Windows my.cnf)
    XAMPP: c:\mysql\bin\my.ini
  • Cookies und Sessions
    Cookies: Client-seitige textorientierte Infos, je nach Browser unterschiedlich verwaltet
    FF: über Einstellungen - Datenschutz - Cookies
    IE: auf Festplatte c:\Dokumente und Einstellungen\username\cookies (WinXP)
    c:\Benutzer\username\cookies (Win7)
    Befehl: setcookie()
    Session: auf Server abgelegte textorientierte Infos,
    Konfiguration über session.save_path (siehe phpinfo); bei XAMPP: c:\xampp\tmp
    Befehle: session_start(), session_init(), session_destroy()
  • Bereitstellung der Dozenten-Trainingsunterlagen und -Skripte:
  • Letzte Fragen / Teilnehmerbescheinigungen

 

Auch von dieser Stelle nochmals schönen Dank für Ihr freundliches Feedback zu unserem "dynamischen" Wochenseminar ;-)
Ihr Trainer Joe Brandes

     

     

       

         

            Privates

          ... zu Joe Brandes

          Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.
          Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...

          joe brandes 600px

          Private Visitenkarte / Technik: HTML & CSS /
            joe-brandes.de

            Jobs

          ... IT-Trainer & Dozent

          Ich erarbeite und konzipiere seit über 20 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!

          becss 600px

          BECSS Visitenkarte / Technik: HTML & CSS /
            becss.de

            Hobby

          ... Snooker & more

          Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.

          bsb 2011 600px

          Billard Sport BS / Joomla 3.x /
            billard-bs.de

          PC Systembetreuer ist J. Brandes - IT seit über 35 Jahren - Technik: Joomla 3.4+, Bootstrap 3.3.4 und "Knowledge"

          © 2018 - Websitedesign und Layout seit 07/2015 - Impressum
          Nach oben