tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1689
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    schuett schuett ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    16
    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


    PHP-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;  
    }  
    }
    ?>
    Artikel.inc

    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.

    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
    }
    ?>
    Eigentlich soll das so aussehen:

    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
     

  2. #2
    Sebastian Seidelmann Sebastian Seidelmann ist offline Mitglied Silber
    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!
     

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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

  4. #4
    schuett schuett ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    16
    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:

    PHP-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;   
    }   

    ?>
    Folgende Bücher können Sie bestellen

    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
     

  5. #5
    schuett schuett ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    16
    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

  1. Hilfe - Finde den Fehler nicht!!
    Von redliner51 im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 27.07.08, 13:32
  2. Antworten: 6
    Letzter Beitrag: 06.08.07, 14:03
  3. Finde den Fehler nicht....
    Von aTa im Forum PHP
    Antworten: 9
    Letzter Beitrag: 19.09.05, 09:58
  4. Hilfe! Ich finde den Fehler nicht
    Von evoleena im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.09.04, 07:52
  5. Finde den Fehler nicht! Hilfe...
    Von HansLaass im Forum PHP
    Antworten: 4
    Letzter Beitrag: 09.02.04, 19:18