Hallo zusammen!
Nun habe ich es fast geschafft und hänge wieder mal fest. Vielleicht erkennt jemand ein Fehler, ich finde ihn leider nicht.
artikel.php
PHP-Code:
<?php session_start();
include("Artikelparser.php");
$art = new Artikelparser();
?>
<?php
if ($_SESSION['login_okay'])
{
?>
<html><head>
<title>Artikel</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Folgende Bücher können Sie bestellen</h1>
<body>
<?php
foreach($art as $nummer=>$art_objekt){
print
"<a href='warenkorb.php?artikel=$nummer'>";
print $art_objekt->name;
print "</a> ".$art_objekt->preis."Euro<p>\n";
}
?>
<br>
<a href="index.php"><b>Zurück zur Login-Seite</b></a>
<?php
}
else {
?>
</body>
</html>
<html>
<head>
<title>Kein Zugriff</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
Leider haben Sie keinen Zugriff auf diese Seite<br>
Bitte melden Sie sich auf der <a href="index.php"><b>Loginseite</b></a> an.
</body></html>
<?php
}
?>
Artikelparser.php
PHP-Code:
<?php session_start();
include ("Artikelparser.inc");
?>
<?php
$html = "<html><body>";
$xmlFile = implode("", file("artikeldaten.xml"));
$parser = xml_parser_create();
xml_set_element_handler($parser,"startElement","endElement");
xml_set_character_data_handler($parser, "cdata");
xml_parse($parser, $xmlFile);
xml_parser_free($parser);
print $html;
print "</body></html>";
/*************************************
Funktionsdeklarationen
*************************************/
function startElement($parser, $name, $atts) {
global $html, $nummer;
switch (strtolower($name)) {
case "artikel":
$nummer = $atts["NUMMER"];
$html .= "<hr>";
break;
case "name";
$html .="<h1>";
break;
case "preis":
$html .="NUMMER: $nummer<br>";
$html .="Preis: ";
break;
}
}
function endElement($parser, $name) {
global $html;
switch (strtolower($name)) {
case "name":
$html .="</h1>";
break;
}
}
function cdata($parser, $text) {
global $html;
$html .=$text;
}
?>
Artikelparser.inc
Code:
<?php
class Artikelparser{
var $name;
var $nummer;
var $anzahl;
var $preis;
function Artikelparser($name, $nummer , $preis ){
$this->name = $name;
$this->nummer = $nummer;
$this->anzahl = 1;
$this->preis = $preis;
}
}
?>
artikeldaten.xml
HTML-Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<artikeldaten>
<artikel nummer="1001">
<name>Der Herr der Ringe</name>
<preis>39.9</preis>
</artikel>
<artikel nummer="2002">
<name>Der kleine Hobbit</name>
<preis>19.9</preis>
</artikel>
<artikel nummer="3003">
<name>Grimms Märchen</name>
<preis>25.9</preis>
</artikel>
<artikel nummer="4004">
<name>Elric von Melnibonee</name>
<preis>29.9</preis>
</artikel>
</artikeldaten>