PHP und MySQL Stichwort-Index

Hauptfunktionen

stichworte.phtml:

Stichworte

...
<?php 
      include ("stichworte.inc");
      /* Einbinden der Funktionen index, sortieren und topten */
      topten(); 
?>

    <TD BGCOLOR="#A5BDD6" WIDTH="100%">
      STICHWORTVERZEICHNIS (alphabetisch)</TD>
  </TR>
</TABLE>
<P>
<P>
<TABLE BORDER="0" WIDTH="100%">
  <TR>
    <TD COLSPAN=2>
        <A href="#A">A</A> | <A href="#B">B</A> | <A href="#C">C</A> |
        <A href="#D">D</A> | <A href="#E">E</A> | <A href="#F">F</A> |
        <A href="#G">G</A> | <A href="#H">H</A> | <A href="#I">I</A> |
        <A href="#J">J</A> | <A href="#K">K</A> | <A href="#L">L</A> |
        <A href="#M">M</A> | <A href="#N">N</A> | <A href="#O">O</A> |
        <A href="#P">P</A> | <A href="#Q">Q</A> | <A href="#R">R</A> |
        <A href="#S">S</A> | <A href="#T">T</A> | <A href="#U">U</A> |
        <A href="#V">V</A> | <A href="#W">W</A> | <A href="#X">X</A> |
        <A href="#Y">Y</A> | <A href="#Z">Z</A>
    </TD>
  </TR>
</TABLE>
<P>

<?php        
      sortieren();
      /* Funktion zur Ausgabe der Links wird aufgerufen */
?>
...

stichworte.inc

<?php
   include("global.inc"); 

Function index ($letter) {

/*      Parameter : Anfangsbuchstabe des Namens vom Link aus Tabelle "links"
        Die Funktion gibt die sortierte Liste der Links zurück welche den
        Anfangsbuchstaben des 1ten Parameters hat.
*/ 
        $rs= dbQuery("SELECT * FROM links WHERE name like '$letter' ORDER BY name");
        $num=mysql_numrows($rs); 
        if ($num!=0) {
                $i=0; 
                while ($i<$num){
                        echo "<LI><A HREF='click.phtml?url=" . mysql_result($rs,$i,"link") ."'>";
                        echo mysql_result($rs,$i,"name") . "</A>";
                        $i++;
                               }
                    }
        echo "<BR><P ALIGN=CENTER><A href='#top'><img border=0 src='bilder/pfeil-kl.gif'></A><P ALIGN=LEFT>";
        echo "</UL>";
     };

Function sortieren() { 
        
/*      Die Funktion ruft die Funktion "index" auf und uebergibt als
        Parameter die Buchstaben A - Z
        Vor jedem neuen Funktionsaufruf von "index" wird der Buchstabe
        (Parameter) als Grossbuchstabe davorgestellt
*/  
        for ($i='a';$i<='z';) { 
            $p = $i;
            $p = $p . "%"; 
            echo "<H1><A name='" . strtoupper($i) . "'>". strtoupper($i) . "</A></H1><UL>";
            index($p);
            if ($i=='z') : break;
            endif;
            $i++; };
     };


Function topten() {
/*      Die Funktion gibt die ersten 10 links mit der höchsten HIT Rate
        snach HIT sortiert zurück.
*/
        $topten=dbquery("SELECT * FROM links ORDER BY hit DESC LIMIT 10");
        $num=mysql_numrows($topten); 
        if ($num!=0) {
            $i=0; 
            echo "<B>TOP 10: </B>";
            while ($i<$num){
                   echo "[<A HREF='click.phtml?url="; 
                   echo  mysql_result($topten,$i,"link") . "'>";
                   echo  mysql_result($topten,$i,"name") . "</A>] ";
                   $i++;
            };
        };
     };


Function indexe ($letter) { /* english version */ } 
Function sortierene() { /* english version */ }
Function toptene() { /* english version */ }

?>

global.inc

<?php

   include("dbconfig.inc");

Function PrintError ($string) {
        echo "<b>Error</b>: <i>$string</i><br>\n";
}


Function dbQuery ($statement) {
        global $dbconfig;
        mysql_pconnect($dbconfig["sqlserver"],$dbconfig["sqlusername"],$dbconfig["sqlpassword"]);
        mysql_select_db($dbconfig["defaultdb"]);
        $result=@mysql_query($statement);
        if (mysql_error()) {
           PrintError(mysql_error());
        }
        else { return $result; }
        return $result;
}
?>

dbconfig.inc

<?php
   $dbconfig["sqlserver"]="localhost";    // sql server hostname
   $dbconfig["sqlport"]="";               // sql server port
   $dbconfig["sqlusername"]="xxx";        // username
   $dbconfig["sqlpassword"]="yyy";        // password
   $dbconfig["defaultdb"]="stichwort";    // database
   $dbconfig["sqltype"]="";               // mysql or pgsql.  defaults to mysql
?>

click.phtml

<?php

  header("Location: $url");

  include ("global.inc");

  /* Programm Click leitet die URL weiter und erhoecht den HIT Counter um 1 */ 
  $zahl = dbquery("SELECT hit FROM links WHERE link = '$url'");
  $ob = mysql_fetch_object($zahl);
  $hit = $ob->hit;
  $hit++;
  $rs=dbquery("UPDATE links SET hit=$hit WHERE link = '$url'");

?>

Administrationsfunktionen

index.phtml

<?php
    include ("global.inc");
    $rs=dbquery("SELECT * FROM links ORDER BY name");
?>

<HTML>
<HEAD>
<TITLE>Link Administration</TITLE>
</HEAD>
<BODY>
<H1><CENTER>Link Administration</CENTER></H1><BR>
<A HREF="add.html">Link hinzufügen</A><BR>
<A HREF="index.html">Administration</A>
<ALIGN="left">
<HR>

<?php
    $num=mysql_numrows($rs); 
    if ( $num != 0) { 
?>

<CENTER>
<TABLE BORDER=1> 
<TR> 
        <TH>ID</TH>
        <TH>Name</TH>
        <TH>Englischer Name</TH>
        <TH>Hits</TH>
</TR>

<?php
     $i=0; 
     while ($i<$num) {
        echo "<TR><TD>" . mysql_result($rs,$i,"ID") . "</TD>";
        echo "<TD><A HREF='" . mysql_result($rs,$i,"link") . "'>" . mysql_result($rs,$i,"name") . "</A></TD>"; 
        echo "<TD><A HREF='" . mysql_result($rs,$i,"elink") . "'>" . mysql_result($rs,$i,"ename") . "</A></TD>"; 
        echo "<TD>" . mysql_result($rs,$i,"hit") . "</TD>";
        echo "<TD><A HREF='edit.phtml?ID=" . mysql_result($rs,$i,"ID") . "'>Editieren</A></TD>";
        echo "<TD><A HREF='delete.phtml?ID=" . mysql_result($rs,$i,"ID") ."'>Löschen</A></TD>";
        $i++; }; 
?>

</TABLE>
<P> 
<?php } else {  ?>
    Es wurden keine passenden Datensätze gefunden.
<?php } ?>
</TABLE></CENTER>
<HR>

<A HREF="index.html">Administrations Hauptseite</A><BR>
Erstellt 1999 von Peter Steinemann.
</BODY>
</HTML>
<?php 
    mysql_freeresult($rs);
    mysql_close();
?>

delete.phtml

<?php 

    header("Location: index.phtml");

    include ("global.inc");

    $rs=dbquery("SELECT ID FROM links WHERE ID = '$ID'");
    $num=mysql_numrows($rs);
    mysql_freeresult($rs);
    if ($num !=0 ) {
       $rs = dbquery("DELETE FROM links WHERE ID = '$ID'");
    }
    mysql_close(); 
?>

add.html

<HTML>
<HEAD><TITLE>Links zur Stichwortdatenbank anf¨gen</TITLE></HEAD>
<BODY>
<H1>Einfügen eines LINK</H1>
<HR>
<FORM ACTION="add.phtml" METHOD="post">
<TABLE><TR>
<TD>Name:</TD>
<TD><INPUT TYPE="text" NAME="name" VALUE="" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Link</TD>
<TD><INPUT TYPE="text" NAME="link" VALUE="http://" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Englischer Name:</TD>
<TD><INPUT TYPE="text" NAME="ename" VALUE="" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Englischer Link</TD>
<TD><INPUT TYPE="text" NAME="elink" VALUE="http://" SIZE="70" MAXLENGTH="254"></TD>
</TR><TD></TABLE>
<INPUT TYPE="submit" VALUE="Hinzufügen">
<INPUT TYPE="reset"  VALUE="Zurücksetzen">
</FORM>
<HR>
<A HREF="index.html">Administration</A>
</BODY>
</HTML>

add.phtml

<HTML>
<HEAD><TITLE>LINK bearbeitet</TITLE></HEAD>
<BODY>
<?php
        // Script für die Überprüfung des eingegeben LINKS und des Namens

include("global.inc");
$rs=dbquery("SELECT * FROM links WHERE name = '$name'");
$num=mysql_numrows($rs);
$ar = parse_url($link);
$are = parse_url($elink);

$count=0;
$path=$ar["path"];
$pathe=$are["path"];
        // LINK formatieren

if ($elink == "http://") { $elink = $link; }

if (!ereg("\/$",$path)  && !ereg("html$",$path) && !ereg("htm$",$path)) {
        $ar["path"] = $path .  "/";        
     }

if (!ereg("\/$",$pathe)  && !ereg("html$",$pathe) && !ereg("htm$",$pathe)) {
        $are["path"] = $pathe .  "/";        
     }

        // Ist ein Name eingegeben ?

if ($name == "" || $ename == "" ) {$num = 1;};

        // Name existiert oder ist NULL

if ($num != 0) { 
        echo "<H1><CENTER>FEHLER: Der eingegebene Name kann nicht (mehr) verwendet werden.</H1></CENTER>";
        } else {

        // Existiert der LINK ?

                $fp = fsockopen($ar["host"] ,80, &$errno, &$errstr);
                if(!$fp) {
                        echo "$errstr ($errno)<br>\n";
                        echo "HOST existiert nicht.";
                        echo "Bitte Link überprüfen.";
                        } else {
                                fputs($fp,"GET " . $ar["path"] . " HTTP/1.0\n\n");
                                $ok= strstr(fgets($fp,"12")," ");
                                if ($ok == "200") {

        // ALLES RICHTIG !

                                //      $rs= dbquery("INSERT INTO links VALUES ('$link','$name',0,NULL)");
                                //      echo "<CENTER><H1>Link hinzugefügt</H1><CENTER>";

        // LINK Fehlerhaft

                                } else { echo "<CENTER><H1>Link fehlerhaft. Bitte Überprüfen</H1><CENTER>";
};
                                fclose($fp);
                                }



                $fp = fsockopen($are["host"] ,80, &$errno, &$errstr);
                if(!$fp) {
                        echo "$errstr ($errno)<br>\n";
                        echo "HOST existiert nicht.";
                        echo "Bitte Link überprüfen.";
                        } else {
                                fputs($fp,"GET " . $are["path"] . " HTTP/1.0\n\n");
                                $ok= strstr(fgets($fp,"12")," ");
                                if ($ok == "200") {

        // ALLES RICHTIG !

                                        
                                        $rs= dbquery("INSERT INTO links VALUES ('$link','$name',0,NULL,'$ename','$elink')");
                                        echo "<CENTER><H1>Link hinzugefügt</H1><CENTER>";

        // LINK Fehlerhaft

                                } else { echo "<CENTER><H1>Link fehlerhaft. Bitte Überprüfen</H1><CENTER>"; };
                                fclose($fp);
                                }

?>

<HR><A HREF="index.html">Administartion</A>;
<A HREF="index.phtml">Linkliste</A>;
</BODY></HTML>

edit.phtml

<?php
   include("global.inc");

   $rs = dbquery("SELECT * FROM links WHERE ID = '$ID'");
   $link = mysql_result($rs,0,"link");
   $elink = mysql_result($rs,0,"elink");
   $name = mysql_result($rs,0,"name");
   $ename = mysql_result($rs,0,"ename");
   $hit = mysql_result($rs,0,"hit");
   $ID = mysql_result($rs,0,"ID");
?>

<HTML>
<HEAD><TITLE>Link aendern fuer <? echo $name ?></TITLE></HEAD>
<BODY>
<HR>
<FORM ACTION="edit2.phtml" METHOD="post">
<TABLE><TR>
<TD>ID:</TD>
<TD><? echo $ID; ?> <INPUT TYPE="hidden" NAME="ID" VALUE="<? echo $ID; ?>">
</TD></TR>
<TD>Name:</TD>
<TD><INPUT TYPE="text" NAME="name" VALUE="<? echo $name ?>" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Link:</TD>
<TD><INPUT TYPE="text" NAME="link" VALUE="<? echo $link ?>" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Englischer Name:</TD>
<TD><INPUT TYPE="text" NAME="ename" VALUE="<? echo $ename ?>" SIZE="70" MAXLENGTH="254"></TD>
</TR><TR>
<TD>Englischer Link:</TD>
<TD><INPUT TYPE="text" NAME="elink" VALUE="<? echo $elink ?>" SIZE="70" MAXLENGTH="254"></TD>
</TR><TD></TABLE>
<INPUT TYPE="submit" VALUE="Ändern">
<INPUT TYPE="reset"  VALUE="Zurücksetzen">
</FORM>
<HR>
<A HREF="index.html">Administration</A>
</BODY>
</HTML>

edit2.phtml

<?php
   header("Location: index.phtml");

   include("global.inc");

   $ar = parse_url($link);
   $are = parse_url($elink);
   $path=$ar["path"];
   $pathe = $are["path"];

       // LINK vormatieren

if ($elink == "") {$elink = $link;}

if (!ereg("\/$",$path)  && !ereg("html$",$path) && !ereg("htm$",$path)) {
        $ar["path"] = $path .  "/";        
     }
if (!ereg("\/$",$pathe)  && !ereg("html$",$pathe) && !ereg("htm$",$pathe)) {
        $are["path"] = $pathe .  "/";        
     }

        // Existiert der LINK ?

$fp = fsockopen($ar["host"] ,80, &$errno, &$errstr);
        if(!$fp) {
                echo "$errstr ($errno)<br>\n";
                echo "Deutscher HOST existiert nicht.";
                echo "Bitte Links überprüfen.";
                } else {
                        fputs($fp,"GET " . $ar["path"] . " HTTP/1.0\n\n" );
                        $ok= strstr(fgets($fp,"12")," ");
                        if ($ok == "200") {

        // ALLES RICHTIG !
$link=$ar["scheme"] . "://" . $ar["host"] . $ar["path"];

$rs= dbquery("UPDATE links SET name='$name', link='$link' WHERE ID = $ID ");
                                        }

$fp = fsockopen($are["host"] ,80, &$errno, &$errstr);
        if(!$fp) {
                echo "$errstr ($errno)<br>\n";
                echo "Englischer HOST existiert nicht.";
                echo "Bitte Links überprüfen.";
                } else {
                        fputs($fp,"GET " . $are["path"] . " HTTP/1.0\n\n" );
                        $ok= strstr(fgets($fp,"12")," ");
                        if ($ok == "200") {
    
        // ALLES RICHTIG !
$link=$are["scheme"] . "://" . $are["host"] . $are["path"];

$rs= dbquery("UPDATE links SET ename='$ename', elink='$elink' WHERE ID = $ID ");
                        }

} 
}
}
?>

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

Heinz Kredel
Last modified: Mon Dec 27 23:10:00 MET 1999