Teil von  SELFPHP   Teil von  Praxisbuch
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Newsportal via MySQL - MiniCMS




Abschliessend wollen wir Ihnen noch ein Newsportal vorstellen, welches Ihnen als Grundlage für die Umsetzung von Content Management Systeme (CMS) dienen kann. Das Newsportal setzt sich hierbei aus einem administrativen und einen öffentlichen Bereich zusammen. Insgesamt werden zwei Datenbanktabellen (newstab und newskomm) benötigt. Bei den Tabellen liegt eine 1:n Beziehung vor, einer Nachricht der newstab-Tabelle können beliebig viele Kommentare der newskomm-Tabelle zugewiesen sein.

Die Funktionalität des CMS umfässt folgende Optionen:
. Anzeigen von Nachrichten
. Hinzufügen von Nachrichten
. Bearbeiten von Nachrichten
. Entfernen von Nachrichten
. Entfernen von Kommentaren
. Nachrichtenübersicht
. Seitennavigation


Initialisierungsdateien

. config.inc.php - in diesem Skript befinden sich die wesentlichen Zugriffsdaten und der Verbindungsaufbau zur MySQL Datenbank.
. install.php - mit Hilfe dieses Skripts sind Sie in der Lage die benötigten Datenbanktabellen für die Umfrage-Anwendung festzulegen. Sie müssen das Skript lediglich im Browseraufrufen. Achten Sie darauf das Skript anschliessend von Server zu entfernen!


Datenbanktabellen



CREATE TABLE newstab (
  newsid int(11) NOT NULL auto_increment,
  newstitel varchar(100) NOT NULL default '',
  newsdatum datetime NOT NULL default '0000-00-00 00:00:00',
  newsautor varchar(40) NOT NULL default '',
  newsinhalt text NOT NULL,
  newsurl varchar(100) NOT NULL default '',
  newsrubrik varchar(40) NOT NULL default '',
  PRIMARY KEY  (newsid),
  KEY newsid (newsid)
)





CREATE TABLE newskomm (
  kid int(11) NOT NULL auto_increment,
  kombetreff varchar(80) NOT NULL default '',
  komdatum datetime NOT NULL default '0000-00-00 00:00:00',
  komname varchar(40) NOT NULL default '',
  komemail varchar(80) NOT NULL default '',
  komhome varchar(100) NOT NULL default '',
  kominhalt text NOT NULL,
  knewsid int(11) NOT NULL default '0',
  PRIMARY KEY  (kid),
  KEY kid (kid)
)



Auch in diesem Fall stellt der administrative Bereich den interessantesten Teil der Anwendung dar, daher werden wir Ihnen diesen im folgenden Abschnitt vorstellen.

Administrationsdateien:
. newsadmin.htm - in dieser Seite befindet sich die Eingabemaske (Formular) mit deren Hilfe die Nachrichten erzeugt werden können. Die Seite ist mit dem Skript erzeugenews.php verknüpft.
. navigator.html - diese Seite wird in sämtlichen Seiten via include()-Anweisung eingebunden um die Navigation innerhalb des administrativen Bereich zu erleichtern.
. erzeugenews.php - mit diesem Skript werden die Nachrichten innerhalb der newstab-Tabelle angelegt.
. newsauswahl.php - mit diesem Skript werden die zu bearbeitenden Nachrichten ausgewählt und die Daten an das Skript newsbearbeiten.php weitergeleitet.
. newsbearbeiten.php - in diesem Skript befindet sich das Bearbeitungs-Formular. Die bearbeiteten Daten werden anschliessend an das Skript newsupdate.php weitergeleitet.
. newsupdate.php - mit diesem Skript werden die bearbeiteten Daten in der newstab-Tabelle aktualisiert.
. newsloeschen.php - mit diesem Skript sind Sie in der Lage vorhandene Nachrichten zu entfernen.
. kommloeschen.php - mit diesem Skript sind Sie in der Lage vorhandene Kommentare zu entfernen.


1. newsadmin.htm



<html>
<head>
<title>Newsportal - Administration</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src='../bilder/logo.gif' width='656' height='42'></div><p>
<h3>Newsportal [Administration]</h3>
<form method='post' action='erzeugenews.php'>
  <table width='500' border='0' cellspacing='2' cellpadding='2'>
    <tr>
      <td width='95' valign='top'>Newstitel:</td>
      <td width='391'>
        <input type='text' name='ntitel' maxlength='100' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsautor: </td>
      <td width='391'>
        <input type='text' name='nautor' maxlength='40' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsinhalt:</td>
      <td width='391'>
        <textarea name='ninhalt' cols='30' rows='5' wrap='PHYSICAL'></textarea>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsurl: </td>
      <td width='391'>
        <input type='text' name='nurl' maxlength='100' size='30' value=''>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsrubrik: </td>
      <td width='391'>
        <input type='text' name='nrubrik' maxlength='40' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>&nbsp;</td>
      <td width='391'>&nbsp;</td>
    </tr>
  </table>
  <p class='blocksatz'>Adminstrator:
    <input type='text' name='fadmin' size='20' maxlength='40'>
    Passwort:
    <input type='password' name='fpwd' size='20' maxlength='40'>
  </p>
  <p>
    <input type='submit' name='anlegen' value='News Anlegen'>
     <input type='reset' name='Löschen' value='Reset'>
  </p>
</form>
<table width='600'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>Admin-Navigator</td>
  </tr>
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td><a href='../index.php' target=_blank class="autorblack">Newsportal</a></td>
          <td><a href='newsadmin.htm' class="autorblack">News - Hinzufügen</a></td>
          <td><a href='kommloeschen.php' class="autorblack">Kommentare - Löschen</a></td>
          <td><a href='newsauswahl.php' class="autorblack">News - Bearbeiten</a></td>
          <td><a href='newsloeschen.php' class="autorblack">News - Löschen</a></td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='latestnews'>&nbsp;</td>
  </tr>
</table>
</body>
</html>




1.1 navigator.html



<table width='600'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>Admin-Navigator</td>
  </tr>
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td><a href='../index.php' target=_blank class="autorblack">Newsportal</a></td>
          <td><a href='newsadmin.htm' class="autorblack">News - Hinzufügen</a></td>
          <td><a href='kommloeschen.php' class="autorblack">Kommentare - Löschen</a></td>
          <td><a href='newsauswahl.php' class="autorblack">News - Bearbeiten</a></td>
          <td><a href='newsloeschen.php' class="autorblack">News - Löschen</a></td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='latestnews'>&nbsp;</td>
  </tr>
</table>




1.2 erzeugenews.php



<html>
<head>
<title>News - Erzeugt</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>Atomic-News [Administration]</h3>
<?php

require ("../config.inc.php");

if (isset(
$_POST['anlegen']) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

//Schreibarbeit durch Umwandlung ersparen
foreach ($_POST as $key=>$element) {
    
//Eingaben Filtern
    
${"f_".$key} = $element;
}

$f_ndatum=date("Y-m-d H:i:s");

mysql_query("INSERT INTO $dbtabelle VALUES('','$f_ntitel','$f_ndatum','$f_nautor','$f_ninhalt','$f_nurl','$f_nrubrik')");


echo
"<table width='300'>
  <tr>
    <td align='center' colspan='3'>- NEWS ERZEUGT - <br>
      Die NEWS $f_ntitel wurde erzeugt.<br>
     </td>
  </tr>
</table>"
;

} else {
    echo
"<table width='300'>
  <tr>
    <td align='center' colspan='3'>- FEHLER - <br>
      Umfrage konnte nicht erzeugt werden.<br>
      Versuchen Sie es bitte erneut!<br>
      <a href='javascript:history.back()'>Zur&uuml;ck</a></td>
  </tr>
</table>"
;
}

include(
"navigator.html");

?>

</body>
</html>




2. newsauswahl.php



<html>
<head>
<title>News Auswahl</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>News - Auswahl (Bearbeitung)</h3>
<form method='post' action='newsbearbeiten.php'>
<?php

require ("../config.inc.php");

$satz mysql_query("SELECT * FROM $dbtabelle ORDER BY newstitel");

while (
$row mysql_fetch_array($satz)) {
extract($row);
echo 
"<table width='600'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>Thema: $newstitel [News-ID: $newsid]</td>
  </tr>
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td class='autorblack'>Autor</td>
          <td class='autorblack'>Datum</td>
          <td class='autorblack'>Rubrik</td>
        </tr>
        <tr>
          <td class='autorblack'>$newsautor</td>
          <td class='autor'>$newsdatum</td>
          <td class='autor'>$newsrubrik</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='latestnews'><input type='radio' name='auswahl' value='$newsid'></td>
  </tr>
</table><p>"
;

}

?>
<input type='submit' name="wahl" value='News'>
</form>
<?php

include("navigator.html");

?>
</body>
</html>




2.1 newsbearbeiten.php



<html>
<head>
<title>News [Bearbeiten]</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>News - Bearbeiten</h3>
<p>
<?
require ("../config.inc.php");

if (isset(
$_POST[wahl]) && isset($_POST[auswahl])) {

$satz mysql_query("SELECT * FROM $dbtabelle WHERE newsid=$auswahl");
$row mysql_fetch_array($satz);

echo 
"
<form method='post' action='newsupdate.php'>
  <table width='500' border='0' cellspacing='2' cellpadding='2'>
    <tr>
      <td width='95' valign='top'>Newstitel:</td>
      <td width='391'>
        <input type='text' name='ntitel' value='$row[newstitel]' maxlength='100' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsautor: </td>
      <td width='391'>
        <input type='text' name='nautor' value='$row[newsautor]'maxlength='40' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsinhalt:</td>
      <td width='391'>
        <textarea name='ninhalt' cols='50' rows='5' wrap='PHYSICAL'>$row[newsinhalt]</textarea>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsurl: </td>
      <td width='391'>
        <input type='text' name='nurl' maxlength='100' size='30' value='$row[newsurl]'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>Newsrubrik: </td>
      <td width='391'>
        <input type='text' name='nrubrik' value='$row[newsrubrik]' maxlength='40' size='30'>
      </td>
    </tr>
    <tr>
      <td width='95' valign='top'>&nbsp;</td>
      <td width='391'>&nbsp;</td>
    </tr>
  </table>
  <input type='hidden' name='auswahl' value='$row[newsid]'>
  <p class='blocksatz'>Adminstrator:
    <input type='text' name='fadmin' size='20' maxlength='40'>
    Passwort:
    <input type='password' name='fpwd' size='20' maxlength='40'>
  </p>
  <p>
    <input type='submit' name='bearbeiten' value='News Bearbeiten'>
     <input type='reset' name='Löschen' value='Reset'>
  </p>
</form>
"
;

} else {

echo
"<table width='300'>
          <tr>
            <td align='center' colspan='3'>- FEHLER - <br>
              News konnte nicht bearbeitet werden.<br>
              Versuchen Sie es bitte erneut!<br>
              <a href='javascript:history.back()'>Zur&uuml;ck</a></td>
          </tr>
</table>"
;
}

include(
"navigator.html");

?>

</body>
</html>




2.2 newsupdate.php



<html>
<head>
<title>News [Bearbeiten]</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>News - Bearbeitet</h3>
<p>
<?php

require ("../config.inc.php");

if (isset(
$_POST[bearbeiten]) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

$tab_news "
 UPDATE $dbtabelle
 set newstitel = '$ntitel',
 newsautor = '$nautor',
 newsinhalt = '$ninhalt',
 newsurl = '$nurl',
 newsrubrik = '$nrubrik'
 WHERE newsid = $auswahl"
;


if (
mysql_query($tab_news)) {
    echo
"<table width='300'>
      <tr>
        <td align='center' colspan='3'>- NEWS - <br>
          News wurde bearbeitet.
        </td>
      </tr>
</table>"
;
    unset(
$auswahl);
}

} else {
    echo
"<table width='300'>
          <tr>
            <td align='center' colspan='3'>- FEHLER - <br>
              News konnte nicht bearbeitet werden.<br>
              Versuchen Sie es bitte erneut!<br>
              <a href='javascript:history.back()'>Zur&uuml;ck</a></td>
          </tr>
</table>"
;
}


include(
"navigator.html");

?>
</p>
</body>
</html>




3. newsloeschen.php



<html>
<head>
<title>News [Löschen]</title>
<link rel='stylesheet' type='text/css' href='../css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='../css/main.css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>News - Löschen</h3>
<form method='post' action='<?php echo $PHP_SELF?>'>
<p>
<?php

require ("../config.inc.php");

if (isset(
$_POST[newsloeschen]) && !empty($ergebnis) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

$tab_news "DELETE FROM $dbtabelle WHERE newsid=$ergebnis";
$tab_komm "DELETE FROM $dbkomtabelle WHERE knewsid=$ergebnis";

if (
mysql_query($tab_news) && mysql_query($tab_komm)) {
    echo 
"News wurder erfolgreich entfernt!<p>\n";
    unset(
$ergebnis);
}

} else {
    echo 
"Bitte wählen Sie...<br>Hinweis: Adminname und Passwort sind erforderlich!<p>\n";
}

$satz mysql_query("SELECT * FROM $dbtabelle");

while (
$row mysql_fetch_array($satz)) {
extract($row);
echo 
"<table width='600'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>Thema: $newstitel [News-ID: $newsid]</td>
  </tr>
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td class='autorblack'>Autor</td>
          <td class='autorblack'>Datum</td>
          <td class='autorblack'>Rubrik</td>
        </tr>
        <tr>
          <td class='autorblack'>$newsautor</td>
          <td class='autor'>$newsdatum</td>
          <td class='autor'>$newsrubrik</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='latestnews'><input type='radio' name='ergebnis' value='$newsid'></td>
  </tr>
</table><p>"
;
}

?>
</p>
<p class='blocksatz'>Adminstrator:
    <input type="text" name="fadmin" size="20" maxlength="40">
    Passwort:
    <input type="password" name="fpwd" size="20" maxlength="40">
</p>
<input type='submit' name='newsloeschen' value='News Entfernen'>
</form>
<?php

include("navigator.html");

?>
</body>
</html>




4. kommloeschen.php



<html>
<head>
<title>Kommentare [Löschen]</title>
<link rel='stylesheet' href='../css/umfrage.css' type='text/css'>
<link rel='stylesheet' href='../css/main.css' type='text/css'>
</head>
<body>
<div><img src="../bilder/logo.gif" width="656" height="42"></div><p>
<h3>Kommentar - Löschen</h3>
<form method='post' action='<?php echo $PHP_SELF?>'>
<p>
<?php

require ("../config.inc.php");

if (isset(
$_POST[kommloeschen]) && !empty($ergebnis) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

$tab_komm "DELETE FROM $dbkomtabelle WHERE kid=$ergebnis";

if (
mysql_query($tab_komm)) {
    echo 
"News wurder erfolgreich entfernt!<p>\n";
    unset(
$ergebnis);
}

} else {
    echo 
"Bitte wählen Sie...<br>Hinweis: Adminname und Passwort sind erforderlich!<p>\n";
}

$satz mysql_query("SELECT * FROM $dbkomtabelle");

while (
$row mysql_fetch_array($satz)) {
extract($row);
echo 
"<table width='600'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>Kommentar von $komname [E-mail: $komemail]</td>
  </tr>
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td class='autorblack'>Betreff</td>
          <td class='autorblack'>Datum</td>
          <td class='autorblack'>Homepage</td>
          <td class='autorblack'>Inhalt</td>
        </tr>
        <tr>
          <td class='autor'>$kombetreff</td>
          <td class='autor'>$komdatum</td>
          <td class='autor'>$komhome</td>
          <td class='autor'>$kominhalt</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='latestnews'>L&ouml;schen: <input type='radio' name='ergebnis' value='$kid'></td>
  </tr>
</table>"
;
}

?>
</p>
<p class='blocksatz'>Adminstrator:
    <input type="text" name="fadmin" size="20" maxlength="40">
    Passwort:
    <input type="password" name="fpwd" size="20" maxlength="40">
</p>
<input type='submit' name='kommloeschen' value='Kommentar Entfernen'>
</form>
<?php

include("navigator.html");

?>
</body>
</html>



Das Newsportal selbst, in dem sich der Besucher aufhält stellt sich, wie folgt dar:



 



 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de