<?php
/******************************************************************************
*;#
*;# Security-Tool Datenbank Version 0.9.4
*;#
*;# Copyright (C) 2002 Ansgar H. Licher
*;# hide@address.com
*;# http://www.team-licher.de
*;#
*;# This program is free software; you can redistribute it and/or
*;# modify it under the terms of the GNU General Public License as
*;# published by the Free Software Foundation; either version 2 of
*;# the License, or (at your option) any later version.
*;#
*;# This program is distributed in the hope that it will be useful,
*;# but WITHOUT ANY WARRANTY; without even the implied warranty of
*;# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*;# General Public License for more details.
*;#
*;# You should have received a copy of the GNU General Public License
*;# along with this program; if not, write to the Free Software
*;# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*;#
/******************************************************************************
*;#
*;# PROJEKT Datenbank der Security-Tools von SecurityFocus.com
*;#
*;# MODUL BEZEICHNUNG Tool-Datensätze verwalten (neu/ändern/löschen/usw.)
*;#
*;# MODUL ZWECK Verwaltung der Tooldatensätze in der Datenbank
*;#
*;# DATEINAME edittols.php
*;#
*;#
*;# ERSTELLT 28-Apr-2002
*;#
*;# LETZTE
*;# AKTUALISIERUNG 20-May-2002
*;#
*;# ENTWICKLER Ansgar H. Licher (hide@address.com)
*;#
*;# PROGRAMMIERER Ansgar H. Licher (hide@address.com)
*;#
*;#
*;# -- REVISIONS UEBERSICHT ---------------------------------------------------
*;#
*;# VERSIONEN 0.9.1 28-Apr-2002 development release
*;# 0.9.3 20-May-2002 following release
*;# 0.9.4 30-May-2002 minor bugfix release
*;# x.x.x xx-xxx-20xx xxxxx
*;#
*;#
*;# AENDERUNGEN
*;# von 0.9.1 zu 0.9.3
*;# Datum 20-May-2002
*;# Autor Ansgar H. Licher
*;#
*;# Themen/ revised search and searchword handling:
*;# Aspekte each searchword is now treated as a partial word
*;# (so SQL statements look always like this: "... LIKE '%word%'
*;# In the prior version, the user had to add the * character to
*;# perform such a partial word search).
*;# The two fiels "Plattform" and "Summary" can now be searched with an
*;# unlimited number of searchwords. The words are always conjuncted
*;# the Boole-operator "AND". More pregnant searches can be performed
*;# now with less number of results in big databases
*;#
*;#
*;# von 0.9.3 zu 0.9.4
*;# Datum 30-May-2002
*;# Autor Ansgar H. Licher
*;#
*;# Themen/ bug fix: the newsletter number, the user entered was searched with the
*;# Aspekte SQL "... LIKE ..." statement instead of "... = ...". Look up for newsletters
*;# with the number "1" caused the search to look for "1", "1x", "1xx" and so on.
*;# Really a minor bug fix!
*;#
*;#
*;# von X.X.X zu X.Y.Z
*;# Datum xx-xxx-20xx
*;# Autor xxxxxxxxxxxxxx
*;#
*;# Themen/ xxxxxxxxxxxxxxxxx
*;# Aspekte xxxxxxxxxxxxxxxxx
*;#
******************************************************************************/
function tools_suchmaske()
{
global $host, $user, $pass, $db_name;
global $session_userrights;
$superuser_mode = is_superuser();
$table_height = 15;
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
$boxstuff = "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
$boxstuff = "<b>Suchen in der Security-Tooldatenbank</b><P>";
// create table for user input of search criteria
$boxstuff .= "<FORM method='get' ACTION='show.php'>";
$boxstuff .= "Alle Tools mit folgenden Merkmalen anzeigen:<p>";
$boxstuff .= "<table border='0'>";
$boxstuff .= "<colgroup><col width='100'><col width='350'><col width='180'><col width='200'></colgroup>";
$boxstuff .= "<tr><td>Toolname:</td>";
$boxstuff .= "<td><INPUT NAME='toolname' SIZE='50' tabindex='1'></td>";
$boxstuff .= "<td>Entwickler:</td>";
$boxstuff .= "<td><INPUT NAME='entwickler' SIZE='50' tabindex='4'></td>";
$boxstuff .= "<tr><td>Plattform:</td>";
$boxstuff .= "<td><INPUT NAME='plattform' SIZE='50' tabindex='2'></td>";
$boxstuff .= "<td>URL/Homepage:</td>";
$boxstuff .= "<td><INPUT NAME='source_url' SIZE='50' tabindex='5'></td>";
$boxstuff .= "</tr>";
$boxstuff .= "<tr><td>Stichwort:</td>";
$boxstuff .= "<td><INPUT NAME='summary' SIZE='50' tabindex='3'></td>";
$boxstuff .= "<td>Newsletter-#:</td>";
$boxstuff .= "<td><INPUT NAME='newsletter' SIZE='5' tabindex='6'></td>";
$boxstuff .= "<tr><td><br></td></tr>";
$boxstuff .= "<tr><td colspan='4'><center>";
$boxstuff .= "<input type='reset' value='Felder löschen' tabindex='12'> ";
$boxstuff .= "<input type='submit' value='Suche starten' tabindex='11'>";
$boxstuff .= "</td></tr>";
$boxstuff .= "<INPUT TYPE=hidden NAME=aktion VALUE=".AKTION_LISTE_INFO.">";
$boxstuff .= "</FORM></table>";
}
if ($session_userrights == USER_RIGHT_RW OR $session_userrights == USER_RIGHT_SUPERUSER)
bildschirmaufbau("center", SUCHE_HAUPTTITEL, SUCHE_SUBTITEL, "", $boxstuff, SUCHE_NEUER_EINTRAG);
else
bildschirmaufbau("center", SUCHE_HAUPTTITEL, SUCHE_SUBTITEL, "", $boxstuff, HILFE_LINK);
}
/********************************************************************************************/
function tools_liste($current_page)
{
global $host, $user, $pass, $db_name;
global $tab_tools, $tab_users, $tab_rechte;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW AND $session_userrights != USER_RIGHT_RO)
die();
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
// Hier zunächst die Basis-SQL-Abfrage, die ALLE Datensätze des Katalogs zurückliefert
// (Dies entspricht der Abfrage ohne Kriterien)
$sql = "SELECT Tool_ID, Toolname, Entwickler, URL, Plattform, Summary, Newsletter, Datum FROM $tab_tools";
$where_clause = FALSE;
/*
* Hier werden die Schlagwoerter überprüft; für jedes angegebene Schlagwort wird die SQL-Abfrage ergänzt
*/
/*
* Prüfe, ob ein Toolname eingegeben wurde ...
*/
if ($session_display_toolname) {
$sql .= " WHERE (Toolname LIKE '%$session_display_toolname%') ";
$where_clause = TRUE;
}
/*
* Prüfe, ob eine Plattform eingegeben wurde ...
*/
if ($session_display_plattform) {
if ($where_clause)
$sql .= " AND ";
else
$sql .= " WHERE ";
// count number of items, the user wants to search for
$plattform_array = explode(" ", $session_display_plattform);
$num_plattformen = count($plattform_array);
$sql .= "(";
for ($i = 0; $i < $num_plattformen; $i++) {
if ($i > 0)
$sql .= " AND ";
/*
* if the first char is the character for exclusion of words from the search phrase
*/
if (first_char_is_char($plattform_array[$i], EXCLUDE_CHAR)) {
// kill the exclude character (first character) from the searched plattform
$plattform = substr($plattform_array[$i], 1, strlen($plattform_array[$i]));
$sql .= "(Plattform NOT LIKE '%$plattform%') ";
}
else
$sql .= "(Plattform LIKE '%$plattform_array[$i]%') ";
}
$sql .= ")";
$where_clause = TRUE;
}
/*
* Prüfe, ob eine Summary (bzw. Stichworte) eingegeben wurden ...
*/
if ($session_display_summary) {
if ($where_clause)
$sql .= " AND ";
else
$sql .= " WHERE ";
// count number of items, the user wants to search for
$summary_array = explode(" ", $session_display_summary);
$num_summary_words = count($summary_array);
$sql .= "(";
for ($i = 0; $i < $num_summary_words; $i++) {
if ($i > 0)
$sql .= " AND ";
/*
* if the first char is the character for exclusion of words from the search phrase
*/
if (first_char_is_char($summary_array[$i], EXCLUDE_CHAR)) {
// kill the exclude character (first character) from the searched plattform
$summary = substr($summary_array[$i], 1, strlen($summary_array[$i]));
$sql .= "(Summary NOT LIKE '%$summary%') ";
}
else
$sql .= "(Summary LIKE '%$summary_array[$i]%') ";
}
$sql .= ")";
$where_clause = TRUE;
}
/*
* Prüfe, ob ein Entwickler eingegeben wurde ...
*/
if ($session_display_entwickler) {
if ($where_clause)
$sql .= " AND ";
else
$sql .= " WHERE ";
$sql .= "(Entwickler LIKE '%$session_display_entwickler%') ";
$where_clause = TRUE;
}
/*
* Prüfe, ob eine URL eingegeben wurde ...
*/
if ($session_display_source_url) {
if ($where_clause)
$sql .= " AND ";
else
$sql .= " WHERE ";
$sql .= "(URL LIKE '%$session_display_source_url%') ";
$where_clause = TRUE;
}
/*
* Prüfe, ob eine Newsletter-Nummer eingegeben wurde ...
*/
if (strlen($session_display_newsletter)) {
if ($where_clause)
$sql .= " AND ";
else
$sql .= " WHERE ";
$sql .= "(Newsletter = '$session_display_newsletter') ";
$where_clause = TRUE;
}
/*
*
* Das SQL-Statement ist nun (bis auf die ORDER BY Klausel) vollständig!
*
* Für weitere Zwecke wird das SQL-Statement in einer Sessionvariable gespeichert
* (oder umgekehrt aus der Session herausgenommen)
*
*/
if ($session_toolliste_modus == INFOLISTE_NEW_SEARCH) {
// save the SQL statment in a session variable to store the SQL statement for repeated searches
// (the user started a new search from the starting search page)
$session_tool_sql = $sql;
$session_toolliste_modus = INFOLISTE_AFTER_EDIT;
}
else
// restore the SQL statement to the $sql var
// (e.g. the users finished the change of an entry)
$sql = $session_tool_sql;
/*
* Hänge zum Schluß noch die "ORDER BY ..." Klausel hinten an das fertige SQL-Statement an
* (dies geschieht erst hier nach allen anderen Maßnahmen, weil der Anwender ggf. ein neues
* Sortierkriterium ausgewählt hat. In diesem Fall muss dieses jetzt verändert werden; dies
* passiert eben durch Anhängen der Sessionvariable "$session_sortkey_toolliste", die das
* jeweils vom User ausgewählte Sortierkriterium enthält.)
*/
$sql .= " ORDER BY ".$session_sortkey_toolliste;
if (DEBUG)
echo "sql = $sql<br>";
/*
* get the data from the database and count the records in the search result
*/
// perform the database query
$ergebnis = mysql_query($sql, $verbindung);
// count number of affected records (number of records, that have been found)
$anzahl_datensaetze = mysql_num_rows($ergebnis);
mysql_free_result($ergebnis);
// count the number of ALL records in the database
$sql_all = "SELECT Tool_ID FROM $tab_tools";
$ergebnis = mysql_query($sql_all, $verbindung);
$gesamtanzahl_datensaetze = mysql_num_rows($ergebnis);
mysql_free_result($ergebnis);
/*
* Calculate the values for PREV / NEXT
*
* This piece of code for the prev/next calculation was originaly written
* by Matt Whitted (hide@address.com). I made several enhancements and
* revised the code a little bit here and a litte bit there.
*/
// Set page #. If no page is specified, assume page 1
if (!$current_page)
$current_page = 1;
$prev_page = $current_page - 1;
$next_page = $current_page + 1;
// Set up specified page
$current_page_start = (MAX_INFOS_PER_PAGE * $current_page) - MAX_INFOS_PER_PAGE;
if ($anzahl_datensaetze <= MAX_INFOS_PER_PAGE)
$num_pages = 1;
elseif (($anzahl_datensaetze % MAX_INFOS_PER_PAGE) == 0)
$num_pages = ($anzahl_datensaetze / MAX_INFOS_PER_PAGE);
else
$num_pages = ($anzahl_datensaetze / MAX_INFOS_PER_PAGE) + 1;
$num_pages = (int)$num_pages;
if (($current_page > $num_pages) || ($current_page < 0)) {
echo("Sie haben eine ungueltige Seitennummer ausgewaehlt: $current_page<br>");
die();
}
// Now the pages are calculated right, we can perform the actual displaying...
$sql .= " LIMIT $current_page_start, ".MAX_INFOS_PER_PAGE;
$ergebnis = mysql_query($sql, $verbindung);
/*
* Calculation of PREV / NEXT finshed here
*/
/*
* Hier beginnt die Bildschirmausgabe der Tabelle
* Zunächst werden die Kopfzeilen der Tabelle angelegt
*/
$boxstuff = "<table border='0'>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><center><b>Ihre Suchergebnisse<br>";
$boxstuff .= "</b>(<font color='#ff0000'><b>$anzahl_datensaetze</b></font> von $gesamtanzahl_datensaetze Datensätzen)<br><br></b></td>";
$boxstuff .= "</tr>";
$boxstuff .= "</table>";
if ($session_userrights == USER_RIGHT_SUPERUSER || $session_userrights == USER_RIGHT_RW) {
$boxstuff .= "<center><a href='show.php?aktion=".AKTION_NEU_AUTOINFO."'>Neuer Copy+Paste-Eintrag</a>\n ";
$boxstuff .= "<a href='show.php?aktion=".AKTION_NEU_INFO."'>Neuer manueller Eintrag</a>\n <a href='index.php'> Startseite</a></center><br>";
}
$boxstuff .= "<b>Die gesuchten Merkmale sind: ";
$boxstuff .= "<font color='".HINWEIS_FARBE."'>$session_display_toolname ";
$boxstuff .= "$session_display_plattform ";
$boxstuff .= "$session_display_summary ";
$boxstuff .= "$session_display_entwickler ";
$boxstuff .= "$session_display_source_url ";
$boxstuff .= "$session_display_newsletter</font></b><br><br>";
/*
* display each search result
*/
$table_height = 20;
$first_loop = TRUE;
while ($row = mysql_fetch_object($ergebnis)) {
$boxstuff .= "<table border='0'>";
$boxstuff .= "<colgroup><col width='40'><col width='300'><col width='250'><col width='90'><col width='120'></colgroup>";
if ($first_loop) {
$first_loop = FALSE;
$boxstuff .= "<tr>";
$boxstuff .= "<td><b><a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$current_page&sort_inflist=".DB_TOOLS_NEWSLETTER."'>NL #</a></b></td>";
$boxstuff .= "<td><b><a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$current_page&sort_inflist=".DB_TOOLS_TOOLNAME."'>Tool-Bezeichnung</a><center></b></td>";
$boxstuff .= "<td><b><a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$current_page&sort_inflist=".DB_TOOLS_ENTWICKLER."'>Entwickler</a></b></td>";
$boxstuff .= "<td><b><a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$current_page&sort_inflist=".DB_TOOLS_DATUM."'>Datum</a></b></td>";
if ($session_userrights != USER_RIGHT_RO)
$boxstuff .= "<td><b><center>Aktion</center></b></td>";
$boxstuff .= "</tr>";
$boxstuff .= "<tr><td><br></td></tr>";
}
$Tool_ID = $row->Tool_ID;
$Newsletter = $row->Newsletter;
$Toolname = $row->Toolname;
$Entwickler = $row->Entwickler;
$URL = $row->URL;
$Plattform = $row->Plattform;
$Summary = $row->Summary;
$Datum = $row->Datum;
// Erste Zeile der Ergebnis-Ausgabe
$boxstuff .= "<tr height='$table_height'>";
$boxstuff .= "<td><b>$Newsletter</b></td>";
$boxstuff .= "<td><b>$Toolname</b></td>";
$boxstuff .= "<td><b>$Entwickler</b></td>";
// $boxstuff .= "<td><b><a href='$URL'>$URL</a></b></td>";
$boxstuff .= "<td><b>$Datum</b></td>";
if ($session_userrights == USER_RIGHT_RW || $session_userrights == USER_RIGHT_SUPERUSER) {
$boxstuff .= "<td><center><a href='show.php?alte_aktion=".AKTION_LISTE_INFO."&aktion=".AKTION_EDIT_INFO."&id=$Tool_ID'> Ändern</a> \n";
if ($session_userrights == USER_RIGHT_SUPERUSER)
$boxstuff .= "<a href='show.php?alte_aktion=".AKTION_LISTE_INFO."&aktion=".AKTION_LOESCHEN_INFO."&id=$Tool_ID'> Löschen</a></center></td>";
else
$boxstuff .= "</td>";
}
$boxstuff .= "</tr></table>";
// Zweite Zeile der Ergebnis-Ausgabe
$boxstuff .= "<table border='0'>";
$boxstuff .= "<colgroup><col width='40'><col width='605'></colgroup>";
$boxstuff .= "<tr><td>URL:</td><td><b><a href='$URL' target='_blank'>$URL</a></b></td></tr>";
// Dritte Zeile der Ergebnis-Ausgabe
$boxstuff .= "<tr><td>Plattform:</td><td><b>$Plattform</b></td></tr>";
// Vierte Zeile der Ergebnis-Ausgabe
$boxstuff .= "<tr><td>Kurzbeschreibung:</td><td>$Summary</td></tr>";
$boxstuff .= "</table><p><br><p>";
}
/*
* display PREV / NEXT links
*/
if ($num_pages > 1) {
$prev_next_color = "#101070"; // Dunkelblau
// $prev_next_color = "#000000"; // Schwarz
// display "Previous"
if ($prev_page)
$boxstuff .= "<a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$prev_page'><font color='$prev_next_color'><b>Zurück</b></a>";
else
; // $boxstuff .= "<font color='$prev_next_color'><b>Vorherige</b>";
// display "Page #" (direct links)
for ($i=1; $i <= $num_pages; $i++)
if ($i != $current_page)
$boxstuff .= " <a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$i'><font color='$prev_next_color'><b>$i</b></a> ";
else
$boxstuff .= " <font color='#ff0000'><b>$i</b> ";
// display "Next"
if ($current_page != $num_pages)
$boxstuff .= "<a href='show.php?aktion=".AKTION_LISTE_INFO."&page=$next_page'><font color='$prev_next_color'><b>Vorwärts</b></a>";
else
; // $boxstuff .= "<font color='$prev_next_color'><b>Vorwärts</b>";
$boxstuff .= "<br><br></font></b>";
}
if ($session_userrights == USER_RIGHT_SUPERUSER || $session_userrights == USER_RIGHT_RW) {
$boxstuff .= "<center><a href='show.php?aktion=".AKTION_NEU_AUTOINFO."'>Neuer Copy+Paste-Eintrag</a>\n ";
$boxstuff .= "<a href='show.php?aktion=".AKTION_NEU_INFO."'>Neuer manueller Eintrag</a>\n <a href='index.php'> Startseite</a></center><br>";
}
}
mysql_free_result($ergebnis);
mysql_close($verbindung);
// reset the variables of this session vars, the values are no longer of use
$session_display_toolname = "";
$session_display_plattform = "";
$session_display_summary = "";
$session_display_entwickler = "";
$session_display_source_url = "";
$session_display_newsletter = "";
//Formular wird ausgeführt
bildschirmaufbau("center", INFO_HAUPTTITEL. " | Suchergebnisse", INFO_SUBTITEL, "", $boxstuff, INFO_NEUER_EINTRAG);
}
/********************************************************************************************/
function neu_tool()
{
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
// Variablenbelegung für Formular Values
$session_toolname = "";
$session_plattform = "";
$session_summary = "";
$session_entwickler = "";
$session_source_url = "";
$session_newsletter = "";
$session_datum = "";
$aktion2 = AKTION_NEU_2_INFO;
// open the form ...
formular_tool($aktion2, AKTION_LISTE_INFO, "");
}
/********************************************************************************************/
function neu_autoinfo_tool()
{
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
// Variablenbelegung für Formular Values
$session_toolname = "";
$session_plattform = "";
$session_summary = "";
$session_entwickler = "";
$session_source_url = "";
$session_newsletter = "";
$session_datum = "";
$superaktion = AKTION_NEU_2_AUTOINFO;
//Formular wird erstellt
$boxstuff = "<table><tr><td>";
$boxstuff .= "<P><FORM Methode='POST' action='show.php'>";
$boxstuff .= "<table>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><b>Newsletter #</b> (<font color='#ff0000'>*</font>)</td>";
$boxstuff .= "</tr><tr>";
$boxstuff .= "<td><INPUT NAME='form_newsletter' Value='$session_newsletter' SIZE='4'></td>";
$boxstuff .= "<tr>";
$boxstuff .= "<tr><td><b>KurzbeschreibungSummary:</b> (<font color='#ff0000'>*</font>)</td></tr>";
$boxstuff .= "<tr><td><TEXTAREA NAME='form_summary' ROWS='20' COLS='130'>$session_summary</TEXTAREA></td>";
$boxstuff .= "</tr>";
$boxstuff .= "</table></br>";
$boxstuff .= "(<font color='#ff0000'>*</font>) = Eingabe zwingend erforderlich!<p>";
$boxstuff .= "<input type='hidden' value='$superaktion' name='superaktion'>";
$boxstuff .= "<input type='hidden' value='".AKTION_LISTE_INFO."' name='alte_aktion'>";
$boxstuff .= "<p><input type='submit' value='Speichern'> ";
$boxstuff .= " <input type='reset' name='Abbrechen'><p>";
$boxstuff .= "<button name='Zurueck' type='button' value='Zurueck' onClick='history.back()'><font class=\"content\">Zurück ohne Speichern</font></button>";
$boxstuff .= "</FORM>";
$boxstuff .= "</td></tr></table>";
//Formular wird ausgeführt
bildschirmaufbau("center", INFO_HAUPTTITEL." | Copy+Paste Tool-Eintrag bearbeiten", INFO_SUBTITEL, "", $boxstuff, INFO_EINTRAG_ATWORK);
}
/********************************************************************************************/
function edit_tool($tool_id, $alte_aktion)
{
global $host, $user, $pass, $db_name;
global $tab_tools;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
//Verbindung aufbauen
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
// Datenbank auswählen, SQL zusammenstellen und durchführen
mysql_select_db($db_name, $verbindung);
// build SQL query
$sql = "SELECT Tool_ID, Toolname, Entwickler, URL, Plattform, Summary, Newsletter, Datum FROM ".$tab_tools." WHERE Tool_ID='$tool_id'";
if (DEBUG)
echo "sql = $sql<br>";
$ergebnis = mysql_query($sql, $verbindung);
$row = mysql_fetch_object($ergebnis);
// Ergebnisse für Formular Vorbelegung
$tool_id = $row->Tool_ID;
$session_toolname = $row->Toolname;
$session_plattform = $row->Plattform;
$session_summary = $row->Summary;
$session_entwickler = $row->Entwickler;
$session_source_url = $row->URL;
$session_newsletter = $row->Newsletter;
$session_datum = $row->Datum;
$aktion2 = AKTION_EDIT_2_INFO;
// Formular aufrufen
mysql_free_result($ergebnis);
mysql_close($verbindung);
formular_tool($aktion2, $alte_aktion, $tool_id);
}
}
/********************************************************************************************/
function loeschen_tool($tool_id, $alte_aktion)
{
global $host, $user, $pass, $db_name;
global $tab_tools;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
// Frage ob man sich sicher ist, das man diesen Datensatz löschen will.
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
$sql = "SELECT Tool_ID, Toolname, Entwickler, Plattform, Summary, Newsletter, URL, Datum FROM ".$tab_tools." WHERE Tool_ID='$tool_id'";
$ergebnis = mysql_query($sql, $verbindung);
$row = mysql_fetch_object($ergebnis);
// Ergebnisse für Formular Vorbelegung
$tool_id = $row->Tool_ID;
$toolname = $row->Toolname;
$plattform = $row->Plattform;
$summary = $row->Summary;
$entwickler = $row->Entwickler;
$source_url = $row->URL;
$newsletter = $row->Newsletter;
$datum = $row->Datum;
// prepare to display message
$boxstuff = "<center><b><font color='#FF0000'>Möchten Sie diesen Tool-Eintrag wirklich löschen?</font></b></center><p><p>";
$boxstuff .= "<table border='0'>";
$boxstuff .= "<colgroup><col width='40'><col width='250'><col width='180'><col width='220'><col width='90'><col width='120'></colgroup>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><b>NL #</b></td>";
$boxstuff .= "<td><b>Tool-Bezeichnung</b></td>";
$boxstuff .= "<td><b>Entwickler</b></td>";
$boxstuff .= "<td><b>URL</b></td>";
$boxstuff .= "<td><b>Datum</b></td>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><font color='#FF0000'>$newsletter</font></td>";
$boxstuff .= "<td><font color='#FF0000'>$toolname</font></td>";
$boxstuff .= "<td><font color='#FF0000'>$entwickler</font></td>";
$boxstuff .= "<td><font color='#FF0000'>$source_url</font></td>";
$boxstuff .= "<td><font color='#FF0000'>$datum</font></td>";
$boxstuff .= "</tr></table>";
$boxstuff .= "<br><table>";
$boxstuff .= "<colgroup><col width='800'></colgroup>";
$boxstuff .= "<tr><td><b>Plattform:</b></td></tr>";
$boxstuff .= "<tr><td><font color='#FF0000'>$plattform</font></td>";
$boxstuff .= "</tr><tr><td><br></td></tr>";
$boxstuff .= "<tr><td><b>Kurzbeschreibung:</b></td></tr>";
$boxstuff .= "<tr><td><font color='#FF0000'>$summary</font></td>";
$boxstuff .= "</tr>";
$boxstuff .= "</table></br>";
$boxstuff .= "<center><p><p><a href='show.php?superaktion=".AKTION_LOESCHEN_2_INFO."&aktion=".$alte_aktion."&id=".$tool_id."'><font color='#FF0000'><b>Ja</b></font></a>\n <a href='show.php?aktion=".$alte_aktion."'><font color='#FF0000'><b>Nein</b></font></a></center>";
}
mysql_free_result($ergebnis);
mysql_close($verbindung);
//Formular wird ausgeführt
bildschirmaufbau("center", INFO_HAUPTTITEL." | Eintrag löschen", INFO_SUBTITEL, "", $boxstuff, INFO_EINTRAG_ATWORK);
}
/********************************************************************************************/
function formular_tool($superaktion, $alte_aktion, $tool_id)
{
global $host, $user, $pass, $db_name;
global $tab_tools;
include('globals.inc.php');
//Formular wird erstellt
$boxstuff = "<table><tr><td>";
$boxstuff .= "<P><FORM Methode='POST' action='show.php'>";
$boxstuff .= "<table>";
$boxstuff .= "<colgroup><col width='60'><col width='250'><col width='180'><col width='220'><col width='90'><col width='120'></colgroup>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><b>NL #</b> (<font color='#ff0000'>*</font>)</td>";
$boxstuff .= "<td><b>Tool-Bezeichnung</b> (<font color='#ff0000'>*</font>)</td>";
$boxstuff .= "<td><b>Entwickler</b></td>";
$boxstuff .= "<td><b>URL</b> (<font color='#ff0000'>*</font>)</td>";
$boxstuff .= "<td><b>Datum</b> (<font color='#ff0000'>*</font>)</td>";
$boxstuff .= "</tr>";
$boxstuff .= "<tr>";
$boxstuff .= "<td><INPUT NAME='form_newsletter' Value='$session_newsletter' SIZE='4'></td>";
$boxstuff .= "<td><INPUT NAME='form_toolname' Value='$session_toolname' SIZE='40'></td>";
$boxstuff .= "<td><INPUT NAME='form_entwickler' Value='$session_entwickler' SIZE='30'></td>";
$boxstuff .= "<td><INPUT NAME='form_source_url' Value='$session_source_url' SIZE='35'></td>";
$boxstuff .= "<td><INPUT NAME='form_datum' Value='$session_datum' SIZE='12'></td>";
$boxstuff .= "</tr></table>";
$boxstuff .= "<table><tr><td><b>Plattform:</b></td></tr>";
$boxstuff .= "<tr><td><INPUT NAME='form_plattform' Value='$session_plattform' SIZE='123'></td>";
$boxstuff .= "</tr>";
$boxstuff .= "<tr><td><b>Kurzbeschreibung:</b> (<font color='#ff0000'>*</font>)</td></tr>";
$boxstuff .= "<tr><td><TEXTAREA NAME='form_summary' ROWS='15' COLS='122'>$session_summary</TEXTAREA></td>";
$boxstuff .= "</tr>";
$boxstuff .= "</table></br>";
$boxstuff .= "(<font color='#ff0000'>*</font>) = Eingabe zwingend erforderlich!<p>";
$boxstuff .= "<input type='hidden' value='$superaktion' name='superaktion'>";
$boxstuff .= "<input type='hidden' value='$alte_aktion' name='alte_aktion'>";
$boxstuff .= "<input type='hidden' name='id' value='$tool_id'>";
$boxstuff .= "<p><input type='submit' value='Speichern'> ";
$boxstuff .= " <input type='reset' name='Abbrechen'><p>";
$boxstuff .= "<button name='Zurueck' type='button' value='Zurueck' onClick='history.back()'><font class=\"content\">Zurück ohne Speichern</font></button>";
$boxstuff .= "</FORM>";
$boxstuff .= "</td></tr></table>";
//Formular wird ausgeführt
bildschirmaufbau("center", INFO_HAUPTTITEL." | Tool-Eintrag bearbeiten", INFO_SUBTITEL, "", $boxstuff, INFO_EINTRAG_ATWORK);
}
/********************************************************************************************/
function pruefe_plausibilitaet_tool_eintrag($superaktion, $alte_aktion)
{
global $host, $user, $pass, $db_name;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
$db_verbindung = mysql_connect($host,$user,$pass);
if (!$db_verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
// Datenbank auswählen
mysql_select_db($db_name, $db_verbindung);
// Plausibilität 1: Prüfe, ob eine Newsletter-# angegeben wurde
$newsletter_ok = FALSE;
if ($session_newsletter != "")
$newsletter_ok = TRUE;
// Plausibilität 2: Prüfe, ob ein Toolname angegeben wurde
$toolname_ok = FALSE;
if ($session_toolname != "")
$toolname_ok = TRUE;
// Plausibilität 3: Prüfe, ob ein URL angegeben wurde
$url_ok = FALSE;
if ($session_source_url != "")
$url_ok = TRUE;
// Plausibilität 4: Prüfe, ob ein Datum angegeben wurde
$datum_ok = FALSE;
if ($session_datum != "")
$datum_ok = TRUE;
// Plausibilität 5: Prüfe, ob eine Kurzbeschreibung angegeben wurde
$summary_ok = FALSE;
if ($session_summary != "")
$summary_ok = TRUE;
// Alle Plausis sind durchlaufen. Hier wird im Falle von Fehlern das Ergebnis präsentiert
if (!$newsletter_ok || !$toolname_ok|| !$url_ok || !$datum_ok || !$summary_ok) {
$boxstuff = "<font color=#ff0000><b>Folgende Fehler wurden bei der Eingabe festgestellt:</b><p></font>";
if (!$newsletter_ok)
$boxstuff .= "Sie müssen die Nummer des SF-Newsletters eingeben!<p>";
if (!$toolname_ok)
$boxstuff .= "Sie müssen den Namen des Tools eingeben!<p>";
if (!$url_ok)
$boxstuff .= "Sie müssen den URL zur Homepage des Tools eingeben!<p>";
if (!$datum_ok)
$boxstuff .= "Sie müssen das Datum der Erfassung eingeben!<p>";
if (!$summary_ok)
$boxstuff .= "Sie müssen eine Kurzbeschreibung eingeben!<p>";
$boxstuff .= "<P><FORM>";
$boxstuff .= "<button name='Zurueck' type='button' value='Zurueck' onClick='history.back()'><font class=\"content\">Zurück zur Eingabe</font></button>";
$boxstuff .= "</FORM>";
// Die Meldung anzeigen ...
if ($superaktion == AKTION_NEU_2_INFO)
bildschirmaufbau("center", INFO_HAUPTTITEL." | Neuen Tool-Eintrag erfassen", INFO_SUBTITEL, "", $boxstuff, INFO_EINTRAG_ATWORK);
else
bildschirmaufbau("center", INFO_HAUPTTITEL." | Tool-Eintrag bearbeiten", INFO_SUBTITEL, "", $boxstuff, INFO_EINTRAG_ATWORK);
}
else
if ($superaktion == AKTION_NEU_2_INFO) // Gebe Ok-Wert für Einfügen des Datensatzes zurück
return(OK_INSERT_INFO);
if ($superaktion == AKTION_EDIT_2_INFO) // Gebe Ok-Wert für Update des Datensatzes zurück
return(OK_UPDATE_INFO);
}
}
/********************************************************************************************/
function neu_2_tool()
{
global $host, $user, $pass, $db_name, $tab_tools;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
// Nimmt die Formulardaten entgegen und erzeugt neuen Datensatz.
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
// Now insert the new record into the database
$sql = "INSERT INTO ".$tab_tools." (Toolname, Entwickler, URL, Plattform, Summary, Newsletter, Datum)
VALUES ('$session_toolname', '$session_entwickler', '$session_source_url',
'$session_plattform', '$session_summary', '$session_newsletter', '$session_datum')";
$ergebnis = mysql_query($sql, $verbindung);
if (!$ergebnis)
echo "Es ist ein Fehler mit der Datenbank aufgetreten.";
else
mysql_close($verbindung);
}
}
/********************************************************************************************/
/*
Nimmt die Copy+Paste-Formulardaten entgegen und extrahiert die einzelnen Datenfelder
*/
function neu_2_autoinfo_tool($alte_aktion)
{
global $host, $user, $pass, $db_name, $tab_tools;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
/***********************************************************************************************************
Beispiel für einen Copy+Paste-Eintrag (wird per Copy & Paste / Drag & Drop aus dem SecurityFocus Newsletter
entnommen und als Textbereich in das Formular eingefügt. Der Text steht hier in der Variable
***$session_summary*** zur Verfügung. Es müssen nun die einzelnen Werte für die einzelnen Datenfelder der
Datenbank extrahiert werden.
Der Wert für die Newsletter-Nr. sollte vom Anwender manuell eingegeben worden sein. Der Wert befindet sich
in der Variable ***$session_newsletter***.
<----- EINTRAG BEGINNT HÌER ----->
1. Logwatch v2.8.5
by Kirk Bauer
Relevant URL:
http://www.logwatch.org
Platforms: MPE/iX, N/A
Summary:
Logwatch analyzes and reports on system logs. It is a customizable and
pluggable log-monitoring system and will go through the logs for a given
period of time and make a customizable report. It should work right out of
the package on most systems.
<----- EINTRAG ENDET HÌER ----->
**********************************************************************************************************/
$tmp = $session_summary;
// Toolname
$pos = strpos($tmp, chr(10));
$session_toolname = rtrim(substr($tmp, 0, $pos));
$pos2 = strpos($session_toolname, " ") + 1;
$session_toolname = substr($session_toolname, $pos2, strlen($session_toolname));
$tmp = ltrim(substr($tmp, $pos, strlen($tmp)));
// Entwickler
$pos = strpos($tmp, chr(10));
$session_entwickler = rtrim(substr($tmp, 0, $pos));
$pos2 = strpos($session_entwickler, " ") + 1;
$session_entwickler = substr($session_entwickler, $pos2, strlen($session_entwickler));
$tmp = ltrim(substr($tmp, $pos, strlen($tmp)));
// Text: "Relevant URL:" -- dieser Text wird ausgespart
$pos = strpos($tmp, chr(10));
$tmp = ltrim(substr($tmp, $pos, strlen($tmp)));
// URL
$pos = strpos($tmp, chr(10));
$session_source_url = rtrim(substr($tmp, 0, $pos));
$tmp = ltrim(substr($tmp, $pos, strlen($tmp)));
// Plattform
$pos = strpos($tmp, chr(10));
$session_plattform = rtrim(substr($tmp, 0, $pos));
$pos2 = strpos($session_plattform, " ") + 1;
$session_plattform = substr($session_plattform, $pos2, strlen($session_plattform));
$tmp = ltrim(substr($tmp, $pos, strlen($tmp)));
// Text: "Summary" -- dieser Text wird ausgespart; der verbleibene Rest in $tmp ist die
// eigentliche Summary, die in die Datenbank kommt
$pos = strpos($tmp, chr(10));
$session_summary = ltrim(substr($tmp, $pos, strlen($tmp)));
$session_datum = date("Y-m-d");
$aktion2 = AKTION_NEU_2_INFO;
// Formular aufrufen
formular_tool($aktion2, $alte_aktion, -1);
}
/********************************************************************************************/
function edit_2_tool($tool_id)
{
global $host, $user, $pass, $db_name, $tab_tools;
include('globals.inc.php');
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
// Der Datensatz in der Datenbank wird aktualisiert ...
$sql = "UPDATE ".$tab_tools."
SET Toolname='$session_toolname', Entwickler='$session_entwickler', URL='$session_source_url',
Plattform='$session_plattform', Summary='$session_summary', Newsletter='$session_newsletter',
Datum='$session_datum' WHERE Tool_ID='$tool_id'";
$ergebnis = mysql_query($sql, $verbindung);
if (!$ergebnis)
echo "Es ist ein Fehler mit der Datenbank aufgetreten.";
else
mysql_close($verbindung);
}
}
/********************************************************************************************/
function loeschen_2_tool($tool_id)
{
global $host, $user, $pass, $db_name, $tab_tools;
global $session_userrights;
// Prüfe, ob derjenige, der hier hin gekommen ist, überhaupt berechtigt ist (falls nicht: absterben ...)
if ($session_userrights != USER_RIGHT_SUPERUSER AND $session_userrights != USER_RIGHT_RW)
die();
// Löschvorgang wird durchgeführt
$verbindung = mysql_connect($host,$user,$pass);
if (!$verbindung)
echo "Es konnte keine Datenbankverbindung hergestellt werden.";
else {
mysql_select_db($db_name, $verbindung);
// delete the record from the database
$sql = "DELETE FROM ".$tab_tools." WHERE Tool_ID='$tool_id'";
$ergebnis = mysql_query($sql, $verbindung);
if (!$ergebnis)
echo "Es ist ein Fehler mit der Datenbank aufgetreten.";
else
mysql_close($verbindung);
}
}
/********************************************************************************************/
function first_char_is_char($str, $char)
{
return( substr($str, 0, 1) == $char ? TRUE : FALSE );
}
/********************************************************************************************/
function last_char_is_char($str, $char)
{
return( substr($str, strlen($str)-1, 1) == $char ? TRUE : FALSE );
}
/********************************************************************************************/
?>