ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1689
1689
EMPFEHLEN
-
Hallo Zusammen!
Ich hänge fest und weiss nicht mehr weiter.
Der FEHLER-CODE:
Warning: Missing argument 1 for Artikelparser::Artikelparser(), called in C:\xampp\htdocs\PHP02\artikel.php on line 4 and defined in C:\xampp\htdocs\PHP02\artikelparser.php on line 11
Folgende Bücher können Sie bestellen
Euro
Euro
Euro
Euro
Euro
artikelparser.php
Artikel.incPHP-Code:<?php session_start();
include_once ("Artikel.inc");
class Artikelparser{
var $nummer;
var $art;
var $aktuell;
var $titel;
var $preis;
function Artikelparser($datei){
$this->art= Array();
$xmlFile = implode("", file("artikeldaten.xml"));
$parser = xml_parser_create();
xml_set_object($parser, $this);
xml_set_element_handler($parser, "startElement","endElement");
xml_set_character_data_handler($parser,"cdata");
xml_parse($parser, $xmlFile);
xml_parser_free($parser);
}
function startElement($parser, $name, $atts){
$this->aktuell= $name;
if($name == "ARTIKEL"){
$this->nummer= $atts["NUMMER"];
}
}
function endElement($parser, $name){
if($name == "ARTIKEL"){
$this->art[$this->nummer]= new Artikel($this->titel, $this->preis);
}
$this->aktuell="";
}
function cdata($parser, $text){
if($this->aktuell== "PREIS") $this->preis = $text;
if($this->aktuell== "TITEL") $this->titel = $text;
}
function getArtikelArray(){
return $this->art;
}
}
?>
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
<?php class Artikel{ var $name; var $anzahl; var $preis; function Artikel($name, $preis){ $this->name = $name; $this->anzahl = 1; $this->preis = $preis; } } ?>
artikel.php (Objekt erzeugen vom Typ "Artikelparser" Zugriff auf foreach-Schleife auf das Objekt Artikelparser.
Eigentlich soll das so aussehen: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
}
?>
Folgende Bücher können Sie bestellen
Der Herr der Ringe 39.9Euro
Der kleine Hobbit 19.9Euro
Grimms Märchen 25.9Euro
Elric von Melnibonee 29.9Euro
Zurück zur Login-Seite
-
12.06.07 13:15 #2
- Registriert seit
- May 2007
- Ort
- Neuss
- Beiträge
- 74
Ich denke einfacher kannste XML mit SimpleXML auslesen!
schau mal ob du das vlt verwenden solltest!
-
Die Fehlermeldung sagt‘s doch: der Artikelparser()-Methode, die bei der Instanzierung einer gleichnamigen Klasse automatisch aufgerufen wird, wurde kein Argument übergeben. Da aber dem Quellcode zufolge sowieso keine Übergabe notwendig ist (die $datei-Variable tritt in der Artikelparser()-Methode kein mal auf), kann sie auch weggelassen werden.
Markus Wulftange
-
An der Ausgabe hat sich irgendwie nicht viel verändert, außer das die Fehlermeldung weg ist.
Die jetzige Ausgabe ist:
Folgende Bücher können Sie bestellen
Euro
Euro
Euro
Euro
Euro
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";
}
?>
Geänderte Datei:
Folgende Bücher können Sie bestellenPHP-Code:<?php session_start();
include_once ("Artikel.inc");
class Artikelparser{
var $nummer;
var $art;
var $aktuell;
var $titel;
var $preis;
function Artikelparser(){
$this->art= Array();
$xmlFile = implode("", file("artikeldaten.xml"));
$parser = xml_parser_create();
xml_set_object($parser, $this);
xml_set_element_handler($parser, "startElement","endElement");
xml_set_character_data_handler($parser,"cdata");
xml_parse($parser, $xmlFile);
xml_parser_free($parser);
}
function startElement($parser, $name, $atts){
$this->aktuell= $name;
if($name == "ARTIKEL"){
$this->nummer= $atts["NUMMER"];
}
}
function endElement($parser, $name){
if($name == "ARTIKEL"){
$this->art[$this->nummer]= new Artikel($this->titel, $this->preis);
}
$this->aktuell="";
}
function cdata($parser, $text){
if($this->aktuell== "PREIS") $this->preis = $text;
if($this->aktuell== "TITEL") $this->titel = $text;
}
function getArtikelArray(){
return $this->art;
}
}
?>
Der Herr der Ringe 39.9Euro (bei Klick auf Link zum Warenkorb hinzufügen)
Der kleine Hobbit 19.9Euro
Grimms Maerchen 25.9Euro
Elric von Melnibonee 29.9Euro
-
Hallo Zusammen!
Ich komme wirklich nicht mehr weiter und würde mich sehr freuen, wenn mir jemand bei dem Skript helfen würde.
Vielen Dank.
Ähnliche Themen
-
Hilfe - Finde den Fehler nicht!!
Von redliner51 im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 27.07.08, 13:32 -
Finde denn Fehler im Code nicht kann mich nicht einlogen.
Von deinpapa im Forum PHPAntworten: 6Letzter Beitrag: 06.08.07, 14:03 -
Finde den Fehler nicht....
Von aTa im Forum PHPAntworten: 9Letzter Beitrag: 19.09.05, 09:58 -
Hilfe! Ich finde den Fehler nicht
Von evoleena im Forum PHPAntworten: 4Letzter Beitrag: 02.09.04, 07:52 -
Finde den Fehler nicht! Hilfe...
Von HansLaass im Forum PHPAntworten: 4Letzter Beitrag: 09.02.04, 19:18





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren