CMS Hilfe

G

geblonsky

Brauche dringend hilfe

Habe mir das Tutorial mini cms Ausgabe Internetprofesional 10/2004 in mein xampp (version 1.4.9) geladen
Nun habe ich aber mit der sql Ausgabe Probleme.
Es kommt folgende Fehlermeldung:

Fatal error: Class 'mysqli' not found in C:\apachefriends\xampp\htdocs\dgt\mysql\datenbank.inc.php on line 13

Fatal error: Call to a member function close() on a non-object in C:\apachefriends\xampp\htdocs\dgt\mysql\datenbank.inc.php on line 27

Nun ist es ja so, das Script ist in sachen mysql nicht mehr auf dem neustem Stand der Technik.

Kann mir da vielleicht jemand helfen und es hier posten !
Vielen dank schon mal im Voraus

Hier also mal das Script im Originalzustand


Datenbank sql
PHP:
-- phpMyAdmin SQL Dump
-- version 2.6.0-beta2
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 01. August 2004 um 17:33
-- Server Version: 4.0.13
-- PHP-Version: 5.0.0
-- 
-- Datenbank: `minired`
-- 
CREATE DATABASE `minired`;
USE minired;

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `artikel`
-- 

CREATE TABLE `artikel` (
  `id` int(11) NOT NULL auto_increment,
  `titel` varchar(50) NOT NULL default '',
  `inhalt` varchar(255) NOT NULL default '',
  `datum` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

-- 
-- Daten für Tabelle `artikel`
-- 

INSERT INTO `artikel` VALUES (1, 'Neue MySQL-Erweiterung', 'Die mysqli-Erweiterung unterstützt nun auch neuere <span style="font-weight: bold;">Funktionen </span>wie Transaktionen.<br />', '2004-07-03');
INSERT INTO `artikel` VALUES (2, 'Irgendeine Nachricht', '\r\nIrgendein Text zur Nachricht. Mit Umlauten: ä, ö, ü<br />\r\n', '2004-07-31');
INSERT INTO `artikel` VALUES (5, 'Alte Nachricht', 'Eine ziemlich alte Nachricht, die nur noch zum Bearbeiten angezeigt wird.\r\n', '2003-09-09');

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `nutzer`
-- 

CREATE TABLE `nutzer` (
  `nutzer_id` int(11) NOT NULL auto_increment,
  `name` varchar(20) NOT NULL default '',
  `passwort` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`nutzer_id`)
) TYPE=MyISAM;

-- 
-- Daten für Tabelle `nutzer`
-- 

INSERT INTO `nutzer` VALUES (1, 'tobias', 'hauser');
INSERT INTO `nutzer` VALUES (2, 'internet', 'professionell');
admin.php
PHP:
<?php
  include_once("datenbank.inc.php");
  include_once("anzeigen.inc.php");
  include_once("login.inc.php");
  
  $log = new login();
  $log->einloggen();
  $log->session_pruefen();
  
  $anzeigen = new anzeigen();
  $news_roh = $anzeigen->bereitstellen_alle();
  $news = $anzeigen->formatieren_bearbeiten($news_roh);

  unset($log);
  unset($anzeigen);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>MiniRed - Administrationsbereich</title>
  <link href="style.css" rel="stylesheet">
</head>
<body>
  <div class="header">
    <h1>Mini<span class="red">Red</span></h1>
    <h2>Administrationsbereich</h2>
  </div>
  <div class="news">
    <h3>News</h3>
    <?=$news ?>  
    <br /><a href="bearbeiten.php">Neue Nachricht</a>
  </div>
  <div class="login">
    <form action="index.php" method="POST">
      <br />&nbsp;<input type="submit" name="ausloggen" value="Logout" />&nbsp;
    </form>
  </div>
</body>
</html>


anzeigen.inc

<?php
  class anzeigen {
    private $aufruf;
    function __construct() {
      $this->aufruf = new abfrage("localhost", "root", "", "minired");
    }
    function __destruct() {
      unset($this->aufruf);
    }
    function bereitstellen() {
      $abfrage = $this->aufruf->abfragen("SELECT * FROM artikel");
      $ergebnisse = array();
      $i = 0;
      while ($ergebnis = $abfrage->fetch_assoc()) {
        $datum = strtotime($ergebnis["datum"]);
        $differenz = mktime() - $datum;
        if($differenz < (120 * 24 * 60 * 60)) {
          $ergebnisse[$i] = $ergebnis;
          $i++;
        }
      }
      return $ergebnisse;
    }
    function bereitstellen_alle() {
      $abfrage = $this->aufruf->abfragen("SELECT * FROM artikel");
      $ergebnisse = array();
      $i = 0;
      while ($ergebnis = $abfrage->fetch_assoc()) {
        $ergebnisse[$i] = $ergebnis;
        $i++;
      }
      return $ergebnisse;
    }
    function formatieren($ergebnisse, $css = 1) {
      $news = "";
      if ($css) {
        foreach ($ergebnisse as $ergebnis) {
          $titel = html_entity_decode($ergebnis["titel"], ENT_QUOTES);
          $inhalt = html_entity_decode($ergebnis["inhalt"], ENT_QUOTES);
          $news .= "<span class='titel'>";
          $news .= $titel . "</span><br />";
          $news .= "<span class='inhalt'>";
          $news .= $inhalt . "</span><br />";
        }
      } else {
        $news .= "<table><tr><th>Titel</th><th>Inhalt</th></tr>";
        foreach ($ergebnisse as $ergebnis) {
          $titel = html_entity_decode($ergebnis["titel"], ENT_QUOTES);
          $inhalt = html_entity_decode($ergebnis["inhalt"], ENT_QUOTES);        
          $news .= "<tr><td>" .  $titel;
          $news .= "</td><td>" . $inhalt;
          $news .= "</td></tr>";
        }
        $news .= "</table>";
      }
      return $news;      
    }
    function formatieren_bearbeiten($ergebnisse) {
      $news = "";
      foreach ($ergebnisse as $ergebnis) {
        $titel = html_entity_decode($ergebnis["titel"], ENT_QUOTES);
        $inhalt = html_entity_decode($ergebnis["inhalt"], ENT_QUOTES);
        $news .= "<a href='bearbeiten.php?datei=" . urlencode($ergebnis["id"]) . "'>";
        $news .= $titel . "</a><br />";
        $news .= "<span class='inhalt'>";
        $news .= $inhalt . "</span><br />";
      }
      return $news;      
    }
  }
?>

bearbeiten.inc

<?php
  class bearbeiten {
    private $aufruf;
    function __construct() {
      $this->aufruf = new abfrage("localhost", "root", "", "minired");
    }
    function __destruct() {
      unset($this->aufruf);
    }
    function daten_abfragen($id = 0) {
      if($id != 0) {
        $abfrage = $this->aufruf->abfragen("SELECT * FROM artikel WHERE id='" . mysqli_escape_string($this->aufruf->connect, $id) . "'");
        return $abfrage->fetch_assoc();
      } else {
        return array("titel"=>"", "inhalt"=>"", "datum"=>"");
      }
    }
    function daten_speichern($id = 0) {
      if(isset($_POST["Bearbeiten"]) && $_POST["Bearbeiten"] == "Speichern") {
        $titel = mysqli_escape_string($this->aufruf->connect, $_POST["titel"]);
        $inhalt = mysqli_escape_string($this->aufruf->connect, $_POST["inhalt"]);
        $datum = mysqli_escape_string($this->aufruf->connect, $_POST["datum"]);
        if($id != 0) {
          $sql = "UPDATE artikel SET titel='" . $titel . "', inhalt='";
          $sql .= $inhalt . "', datum='" . $datum;
          $sql .= "' WHERE id='" . mysqli_escape_string($this->aufruf->connect, $id) . "'";
          $aktualisieren = $this->aufruf->abfragen($sql);
        } else {
          $sql = "INSERT INTO artikel (titel, inhalt, datum) VALUES ('" . $titel . "', '";
          $sql .= $inhalt . "', '" . $datum . "')"; 
          $einfuegen = $this->aufruf->abfragen($sql);
        }      
      }
    }
  } 
?>


bearbeiten.php

<?php
  include_once("datenbank.inc.php");
  include_once("anzeigen.inc.php");
  include_once("login.inc.php");
  include_once("bearbeiten.inc.php");
  
  $log = new login();
  $log->session_pruefen();
  
  $bearbeiten = new bearbeiten();
  if (isset($_GET["datei"])) {
    $bearbeiten->daten_speichern($_GET["datei"]);
    $daten = $bearbeiten->daten_abfragen($_GET["datei"]);
  } else {
    $bearbeiten->daten_speichern();
    $daten = $bearbeiten->daten_abfragen(); 
  }

 
  unset($log);
  unset($anzeigen);
  unset($bearbeiten);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>MiniRed - Administrationsbereich</title>
  <link href="style.css" rel="stylesheet">
  <script type="text/javascript">
    _editor_url = "htmlarea/";
    _editor_lang = "de";
    var editor = null;
    function initEditor() {
      editor = new HTMLArea("inhalt");

      var cfg = editor.config; //Eigenständige Konfiguration der Schaltflächen
	    cfg.toolbar = [
	   	[ "fontname", "space",
		    "fontsize", "space",
		    "formatblock", "space",
		    "bold", "italic", "underline", "strikethrough", "separator",
		    "subscript", "superscript" ],

   		[ "copy", "cut", "paste", "space", "undo", "redo", "separator", 
        "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
	   	  "lefttoright", "righttoleft", "separator",
		    "insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator",
	   	  "forecolor", "hilitecolor", "separator",
	      "inserthorizontalrule", "createlink", "htmlmode"]
	    ];
      editor.generate();
    }
  </script>
  <script type="text/javascript" src="htmlarea/htmlarea.js"></script>
</head>
<body onload="initEditor()">
  <div class="header">
    <h1>Mini<span class="red">Red</span></h1>
    <h2>Administrationsbereich</h2>
  </div>
  <div class="news" style="width:800px; left:100px">
    <h3>Bearbeiten</h3>
    <form method="POST">
      <input type="text" name="titel" value="<?=$daten["titel"] ?>" /> Titel<br />
      <textarea name="inhalt" id="inhalt" style="width:800px" rows="20" cols="80"><?=html_entity_decode($daten["inhalt"]) ?></textarea><br />
      <input type="text" name="datum" value="<?=$daten["datum"] ?>" /> Datum<br />
      <input type="submit" name="Bearbeiten" value="Speichern" /><br />
      <a href="admin.php">Zur&uuml;ck</a>    
    </form>
  </div>
</body>
</html>


datenbank.inc

<?php
  class abfrage {
    private $server;
    private $user;
    private $pswd;
    private $db;
    public $connect;  
    function __construct($server, $user, $pswd, $db) {
      $this->server = $server;
      $this->user = $user;
      $this->pswd = $pswd;
      $this->db = $db;
      $this->connect = new mysqli($this->server, $this->user, $this->pswd, $this->db);
      if (mysqli_connect_errno()) {
        printf("Verbindung gescheitert: %s\n", mysqli_connect_error());
        exit();
      }
    }
    function abfragen($query) {
      if($ergebnisse = $this->connect->query($query)) {
        return $ergebnisse;
      } else {
        return "";
      } 
    }
    function __destruct() {
      $this->connect->close();
    }
  } 
?>


index.php


<?php
  include_once("datenbank.inc.php");
  include_once("anzeigen.inc.php");
  include_once("login.inc.php");

  $log = new login();
  $log->ausloggen();
  $log->session_pruefen();

  $anzeigen = new anzeigen();
  $news_roh = $anzeigen->bereitstellen();
  $news = $anzeigen->formatieren($news_roh);
  
  unset($log);
  unset($anzeigen);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>MiniRed</title>
  <link href="style.css" rel="stylesheet" />
</head>
<body>
  <div class="header">
    <h1>Mini<span class="red">Red</span></h1>
    <h2>Das kleine Redaktionssystem</h2>
  </div>
  <div class="news">
    <h3>News</h3>
    <?=$news ?>
  </div>
  <div class="login">
    <p>Administration</p>
    <form action="admin.php" method="POST">
      <input type="text" name="user" /> UID<br />
      <input type="password" name="pass" /> PSWD<br /><br />
      <input type="submit" name="einloggen" value="Login" />
    </form>
  </div>
</body>
</html>


login.inc

<?php
  include_once("datenbank.inc.php");
  include_once("anzeigen.inc.php");
  include_once("login.inc.php");

  $log = new login();
  $log->ausloggen();
  $log->session_pruefen();

  $anzeigen = new anzeigen();
  $news_roh = $anzeigen->bereitstellen();
  $news = $anzeigen->formatieren($news_roh);
  
  unset($log);
  unset($anzeigen);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>MiniRed</title>
  <link href="style.css" rel="stylesheet" />
</head>
<body>
  <div class="header">
    <h1>Mini<span class="red">Red</span></h1>
    <h2>Das kleine Redaktionssystem</h2>
  </div>
  <div class="news">
    <h3>News</h3>
    <?=$news ?>
  </div>
  <div class="login">
    <p>Administration</p>
    <form action="admin.php" method="POST">
      <input type="text" name="user" /> UID<br />
      <input type="password" name="pass" /> PSWD<br /><br />
      <input type="submit" name="einloggen" value="Login" />
    </form>
  </div>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
öhm. selbst mit minimalen englischkenntnissen sollte man diese fehlermeldung verstehen können.

>> die klasse mysqli gibt's nicht.

vielleicht hast du nur vergessen diese zu includen.
 
hmm...glaube nicht dass hier jemand Lust hat, deinen farblosen und doch seehr langen Code durchzuschauen...
Was die Fehlermeldung betrifft gebe ich meinem Vorredner recht.
gruss
 
Zurück