220 likes | 326 Views
Tutorium zur LV Online Research. Ein Computerprogramm tut, was Du schreibst, nicht was Du willst. Zeitplan für heute. PHP vs Javascript Vor- & Nachteile Eingabezwang,... PHP: Verzweigung, Seitennummern Speicherung Textfiles Datenbank Erstellen einer Datenbank
E N D
Tutorium zur LV Online Research Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
Zeitplan für heute • PHP vs Javascript • Vor- & Nachteile • Eingabezwang,... • PHP: Verzweigung, Seitennummern • Speicherung • Textfiles • Datenbank • Erstellen einer Datenbank • PHP-Befehle für die Datenbank
Server-seitig Code nicht sichtbar (wird vom Server in HTML ausgegeben) .php braucht einen eigenen Server (gerda) Adaptive Untersuchungen Client-seitig Code ist sichtbar Folgt HTML-Regeln Auf den Inhalt von Eingabefeldern kann sofort zugegriffen werden. (z.B. für Eingabezwang PHP vs Javascript
Eingabezwang - Textfeld <script language="JavaScript"> function CheckEnter() { if(document.f1.alter.value == "") { alert("Beispieltext: Diese Angabe ist sehr wichtig!"); document.f1.alter.focus(); return false; } return true; } </script>
Eingabezwang - Radios <script language="JavaScript"> function CheckEnter() { If ((document.f1.geschl[0].checked!=true) &&(document.f1.geschl[1].checked!=true)) { alert("Diese Angabe ist wichtig!"); document.f1.geschl[0].focus(); return false; } return true; } </script>
Eingabezwang -Auswahlliste <script language="JavaScript"> function CheckEnter() { if (document.f1.bundl.value == "0") { alert("Bitte geben Sie das Bundesland an, wo Sie aufgewachsen sind!"); document.f1.bundl.focus(); return false; } return true; } </script>
Sonstige JS-Anwendungen • „Zurück-Button“ weglassen • <SCRIPT LANGUAGE="JavaScript">function StartFB(){ window.open („seite.php", "Untersuchung", "toolbar=no , hotkeys=no, location=0, status=yes, menubar=no, resizable=1, scrollbars=yes") }</script> • <form method=post action=“seite.php" name=f1 onSubmit="function StartFB();"> • <a href="javascript:StartFB()">Fragebogen</a>
PHP (für dynamische Webseiten • PHP-Server (Gerda) • .php • <?php ?> • Weitergabe von Variablen • Datenspeicherung • ID-Vergabe
Seitennummern • PHP-Variable kann auch als "normaler" Text in einem Browser aufscheinen • <?php $Seitennummer = $Seitennummer+1;?> erhöht die Variable immer um 1 <input type="hidden" name="Seitennummer„value=" <?php echo $Seitennummer;?> "> • <?php echo $Seitennummer; ?> von 10
Verzweigungen <?php ...?> if ($variable=="1") {$adapt=„Seite1.php"; include(„Seite1.php");} elseif($variable==„2") {$adapt=„Seite3.php"; include(„Seite3.php");} else {$adapt="ende.php"; include(„ende.php");} <form method=post action="<?php echo $adapt;?>" name=f1>
Speicherung - Textfiles • Name.txt online stellen • Jede Seite braucht ein eigens .txt-file! • Berechtigungen richtig setzen • Lesen und schreiben erlauben (666) • Php-Code in die .php-Seite einbauen • Jede Versuchsperson braucht eine eindeutige Nummer (nid), um die Angaben später richtig zuordnen zu können Zufallszahl
Zufallszahl • Auf der 1. Seite:<?php$nid=date("YmdHis");nid.=substr($HTTP_SERVER_VARS['REMOTE_ADDR'], -2);$nid=str_replace('.','',$nid);srand ((double) microtime() * 1000000);$nid .= rand(1000,9999);?> • Dieser Befehl muss auf jeder Seite! weitergegeben stehen (gibt die nid weiter): • <input type="hidden" name="nid" value="<?php echo $nid;?>">
PHP-Code <?php ...?> • $fp=fopen("name.txt","a"); • fputs($fp,"$nid");fputs($fp,";");fputs($fp,"$Variablenname1");fputs($fp,";");fputs($fp,"$Variablenname2");......fputs($fp,"\n"); • fclose($fp);
Speicherung - Datenbank • Erstellen einer Tabelle • PHP-Code in die HTML-Seiten einfügen • HTML wird zu PHP (eigener Server!!) • Anlegen einer neuen Zeile • Werte hinzufügen
Datenbank • SQL-Datenbank • http://gerda.univie.ac.at/phpmyadmin/ • Abspeicherung erfolgt eine Seite verzögert!! • Abspeicherung in Tabellenform
http://gerda.univie.ac.at/phpmyadmin • Feld- Benennung der Variable <input type="radio" name="geschl" value="1" > • Achtung: alter ist ein eigener SQL-Befehl und daher nicht als Variablenbezeichnung geeignet! • "Typ" • VARCHAR: Zahlen, Buchstaben und Sonderzeichen, max. Zeichenlänge 255 • TEXT: können mehr als 255 Zeichen erfassen • INT: erfasst nur Zahlen (geeignet für ID)
http://gerda.univie.ac.at/phpmyadmin • Länge/Set: Zahl der abgespeicht. Zeichen • Besonderheiten bei der ID: • Bei ID muss "not null" ausgewählt werden. • Bei "Extras" autro-increment auswählen - ID wird bei einer neuen Zeile jeweils um 1 erhöht • Die ID muss weiters als "Primärschlüssel" markiert werden. • "Struktur-Ansicht„: nachträgliche Bearbeitung möglich
PHP-Befehle <?php $db = mysql_connect("localhost","user","passwort")or die ("Konnte keine Verbindung zur Datenbank herstellen bitte informieren Sie mich!!!!"); mysql_select_db("Tabellenname",$db);$sSql = "INSERT INTO Tabellenname (datstart) values('".date('Y.m.d H:i:s')."')" ; $result = mysql_query($sSql);$sSql = "SELECT max(nid) nid FROM Tabellenname ";$result = mysql_query($sSql); $nid=mysql_result($result,0,"nid");... $db_close = mysql_close($db); ?>
PHP-Befehl <?php $db = mysql_connect("localhost","user","passwort") or die ("Konnte keine Verbindung zur Datenbank herstellen bitte informieren Sie mich!!!!"); mysql_select_db("Tabellenname",$db); &$sSql = "UPDATE Tabellenname set spaltenname='$variablenname' WHERE nid=$nid" ;$result = mysql_query($sSql);...führt den Befehl durch $db_close = mysql_close($db); ?>
Vorgehensweise • Erstellen einer guten Vorlage • Schon vorhanden • Alle Items einfügen • Values,.. Überprüfen • Verlinkung • PHP Seitennummer,... • Tabelle in Datenbank erstellen • PHP-Codes für Datenbank einfügen
Achtung!! • Adaptives gut überlegen • Speicherung, Verlinkung... • Überprüfen!!!! • Eingabezwang, falls vorhanden • Ganz zum Schluss
Fragen? • Nächster Termin • 11.05.2005 http://homepage.univie.ac.at/barbara.strassnig