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
PHP vs Javascript 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
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
nid alt geschl1 55 w2 23 m3 52 w4 77 m
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