Übungsmaterial

PHP

Kurs 1

versuch.phtml:

<html>
<head>
<title>Erste Seite von Kredel mit PHP</title>
</head>
<body bgcolor="yellow" >
<h1>Erste Seite von Kredel mit PHP</h1>

<?php
  print "<p>$HTTP_USER_AGENT</p>\n";

  print "<p>vari = $vari</p>\n";

  if ( $vari == "web" ) {
     print "<p>Zugriff erlaubt</p>\n";
  } else {
     print "<p>Zugriff <b>nicht</b> erlaubt</p>\n";
  }

  for ($i = 0; $i < 10; $i++ ) {
     print "<p>Schleife = <b>$i</b></p>\n";
  }
?>

<form action="http://trumpf-10.rz.uni-mannheim.de/~kredel/versuch.phtml" method\
="post" >

Eingabe:
<input type="password" name="vari" size="20" />

<p>
<input type="submit" value="Los!" />
</p>
</form>

</body>
</html>

zahl.phtml:

<html>
<head>
<title>Zweite Seite von Kredel mit PHP</title>
</head>
<body bgcolor="yellow" >
<h1>Zweite Seite von Kredel mit PHP</h1>

<?php
$filename=$SCRIPT_FILENAME;
$counter_start="1";
function counter() {
        global $filename, $counter_start;
        $counter_dir="/tmp/";
        $counter_db=$counter_dir . "zaehler-kredel.dbm";
        if (file_exists("$counter_db")) {
           $db=dba_open($counter_db,"w","gdbm");
           if ( dba_exists($filename,$db) ) {
              $cnt = dba_fetch($filename,$db);
              if ($counter_start=="1") { $cnt++; }
              else { $cnt=$counter_start; }
              dba_replace($filename,$cnt,$db);
           }
           else {
               $cnt=$counter_start;
               dba_insert($filename,$cnt,$db);
           }
           dba_close($db);
           return "$cnt";
        }
        else {
           echo "Attempt to create file: " . $counter_db;
           $cnt=$counter_start;
           $db=dba_open($counter_db,"n","gdbm");
           dba_insert($filename,$cnt,$db);
           dba_close($db);
           return "$cnt";
        }
}
?>

<form action="http://trumpf-10.rz.uni-mannheim.de/~kredel/zahl.phtml" >
Eingabe:
<input type="text" name="vari" size="20" />
<p>
<input type="submit" value="Los!" />
</p>
</form>

<?php
  /* $counter_start="9999"; */
  if ( $vari < 0 ) $counter_start = -$vari;
  print "<h3>" . counter(). " Zugriffe,";
  print "</h3>\n";
?>

</body>
</html>

Kurs 2

versuch.phtml:

<?php
$filename=$SCRIPT_FILENAME;
$counter_start="1";
function counter() {
        global $filename, $counter_start;
        $counter_dir="/tmp/";
        $counter_db=$counter_dir . "zaehler.dbm";
        if (file_exists("$counter_db")) {
           $db=dba_open($counter_db,"w","gdbm");
           if ( dba_exists($filename,$db) ) {
              $cnt = dba_fetch($filename,$db);
              if ($counter_start=="1") { $cnt++; }
              else { $cnt=$counter_start; }
              dba_replace($filename,$cnt,$db);
           }
           else {
               $cnt=$counter_start;
               dba_insert($filename,$cnt,$db);
           }
           dba_close($db);
           return "$cnt";
        }
        else {
           echo "Attempt to create file: " . $counter_db;
           $cnt=$counter_start;
           $db=dba_open($counter_db,"n","gdbm");
           dba_insert($filename,$cnt,$db);
           dba_close($db);
           return "$cnt";
        }
}
?>

<html>
<head>
<title>Die Seite von Heinz mit PHP</title>
</head>
<body bgcolor="<?php print $diefarbe; ?>" >
<h1>Die Seite von Heinz mit PHP</h1>

<?php print "<p>Hallo <b>$dername</b> aus PHP!</p>"; ?>

<?php
  if ( $daspasswort < 0 ) $counter_start = -$daspasswort;
  print "<p>" . counter() . " Aufrufe</p>";
?>

<form action="versuch.phtml" >
<p>
Wie ist dein Name:
<input type="text" name="dername" size="20" >
</p>
<p>
Wie ist dein Passwort:
<input type="password" name="daspasswort" size="20" >
</p>
<p>
Welche Farbe h%/1€Œiso8859-15ätten Sie denn gerne:
<input type="text" name="diefarbe" size="10"
       value="<?php print $diefarbe; ?>" >
</p>
<p>
<input type="submit" value="Los gehts" >
</p>
</from>

<?php
  if ( $daspasswort == "tuwas" ) {
     print "<p>Zugriff erlaubt!</p>\n";
  } else {
     print "<p>Zugriff <b>nicht</b> erlaubt!</p>\n";
  }

?>

<?php $a = 9;
  if ( $a > 3 ) {
     print "<p>Der Wert von a ist $a</p>\n";
  }

  for ($i = 0; $i < 10; $i++ ) {
      print "<p>Der Wert von i ist <b>$i</b></p>\n";
  }
?>

</body>
</html>

XML

valid (alte Xerces Version):

#!/bin/sh
# echo "CLASSPATH:" $CLASSPATH 
VALIDPATH="/home/kredel/java/lib/xerces.jar:/home/kredel/java/lib/xercesSamples.jar"
export CLASSPATH="$VALIDPATH:$CLASSPATH"
# echo "CLASSPATH:" $CLASSPATH
/opt/jdk1.2.2/bin/java sax.SAXCount -v $* 

valid (neue Xerces Version):

#!/bin/sh
# echo "CLASSPATH:" $CLASSPATH 
VALIDPATH="/home/kredel/java/lib/xmlParserAPIs.jar:/home/kredel/java/lib/xercesImpl.jar:/home/kredel/java/lib/xercesSamples.jar"
export CLASSPATH="$VALIDPATH:$CLASSPATH"
# echo "CLASSPATH:" $CLASSPATH
/usr/lib/jdk1.3/bin/java sax.Counter -v $* 
#/usr/lib/jdk1.1.8/bin/java sax.Counter -v $* 

valid.bat (alte Xerces Version):

set VALIDPATH=C:\Programme\xerces\xerces.jar;C:\Programme\xerces\xercesSamples.jar 
set CLASSPATH=%VALIDPATH%;%CLASSPATH% 
echo "CLASSPATH:" %CLASSPATH% 
stderr.exe C:\Programme\JavaSoft\JRE\1.2\bin\java sax.SAXCount -v %1 

Das Programm stderr.exe müssen Sie sich noch im Internet suchen.

valid.bat (alte Xerces Version):

set VALIDPATH=u:\xerces\xercesImpl.jar;u:\xerces\xercesSamples.jar;u:\xerces\xmlParserAPIs.jar
set CLASSPATH=%VALIDPATH%;%CLASSPATH%
echo "CLASSPATH:" %CLASSPATH%
java sax.Counter -v %1

Kurs 1

sequenz.dtd:

<?xml version="1.0" encoding="iso-8859-1" ?>

<!ELEMENT liste (sequence*) >

<!ELEMENT sequence (link, residues) >
<!ATTLIST sequence id ID #REQUIRED >
<!ATTLIST sequence type NMTOKEN #IMPLIED >

<!ELEMENT link (database, ident) >
<!ATTLIST link type NMTOKEN #REQUIRED >

<!ELEMENT database (#PCDATA) >
<!ATTLIST database url CDATA #IMPLIED >

<!ELEMENT ident (#PCDATA) >
<!ATTLIST ident field CDATA "" >

<!ELEMENT residues (#PCDATA) >

sequenz.xml:

<?xml version="1.0" ?>
<!DOCTYPE liste SYSTEM "sequenz.dtd" >

<liste>

<sequence id='b45' type='dna' >
  <link typ='db' >
     <database url='http://www.genbank.com/'>Genbank</database>
     <ident field='accession'>ae345</ident>
  </link>
  <residues>atgcgatagct </residues>
</sequence>

<sequence id='b46' type='dna' >
  <link type='db' >
     <database url='http://www.genbank.com/'>Genbank</database>
     <ident field='accession'>ae346</ident>
  </link>
  <residues>atgcgatagct </residues>
</sequence>

</liste>

Kurs 2

bio.dtd:

<?xml version="1.0" encoding="iso-8859-1" ?>

<!ELEMENT sequence (link,residues*) >

<!ATTLIST sequence type (dna|rna) "dna" >

<!ELEMENT residues (#PCDATA) >

<!ATTLIST residues id NMTOKEN #REQUIRED >

<!ELEMENT link (#PCDATA) >
<!ATTLIST link type CDATA #IMPLIED >

versuch.xml:

<?xml version="1.0" ?>
<!DOCTYPE sequence SYSTEM "bio.dtd" >

<sequence type="dna" >
<link type="db" >
  http://www.genbank.com/
</link>

<residues id="r1" >atgcgagtag...</residues>
<residues id="r2" >atgcgagtag...</residues>

</sequence>

© Universität Mannheim, Rechenzentrum, 1998-2002.

Heinz Kredel
Last modified: Mon Mar 4 11:11:05 CET 2002