simplexml_load_file fehlermeldung beim Aufrufen der Class

M

merlin1

Hallo Leute ich sitze hier vor der Prüfung mit der aufgaben stellung ein Formular names bestellung.xml aufzurufen und dies dann auf einen webserver zu übertragen.

nun habe ich den fehler
Notice: Undefined property: webshop::$senden in C:\xampp\htdocs\Webshop-Project\webseite.php on line 46

ich kann die class nicht auf der seite aufrufen, und finde den Fehler nicht.

vlt kann jemand helfen, Danke im vorraus

Hier ist die datei class_datensatz.php
PHP:
<?php
class daten

{
// Die Datei bestellung.xml enthält ein XML-Dokument mit einem Wurzel-Element
// und mindestens einem Element /[root]/title.
public function senden()
{
if (file_exists('bestellung.xml')) {
    $xml = simplexml_load_file('bestellung.xml');

    print_r ($xml);
	
} else {
    exit('Konnte bestellung.xml nicht öffnen.');

}
}
}
?>

hier ist die webseite über die ich die datei aufrufen möchte und da kommt der Fehler

PHP:
<?php
	require_once ("class_webshop.php");
	require_once ("class_texte-neu.php");
	require_once ("class_kunde-neu.php");
	require_once ("class_datensatz.php");

		
	$art = new webshop("artikeldaten.xml");
	if(isset($_REQUEST['pdf']))
	{
	$art->pdfliste();
	}
		 		
	$art->setTitel("Webshop01");
	$art->kopf();
	
	if(isset($_REQUEST['wk']))
	{
		$art->inhalt($text[3]);
		$art->auswahl();
		$art->inhalt($text[2]);		
	}
	elseif(isset($_REQUEST['order']))
	{	
		$art->bestellen($art->getkundennummer());
		$art->inhalt($text[4]);
		}
	else
	{
		if(!empty($_REQUEST['id']))
		{
		$art->waehlen($_REQUEST['id']);
		}
	    $art->inhalt($text[0]);
		$art->anzeigen(); 
		$art->inhalt($text[1]);
	if(!isset($_SESSION['id']) || $_SESSION['id'] != 1)# anmelden
	{
		$art->inhalt($text[5]);
		print "Sie sind als Kunde angemeldet";
	}
	else
	{
		$art->inhalt($text[6]);
		$art->inhalt($text[8]);
		$art->senden(); #hier ist der fehler, 
	}
	}
	$art->fuss();	
?>
 
Kannst du mal die senden-Methode der webshop-Klasse posten?

Warum hast du den Code der daten-Klasse gepostet?
 
Hallo Mermshaus
ich glaube ich habe den fehler endeckt, ich habe das verwechselt, habe oben class daten und unten die function senden. das geht glaube so nicht. die senden methode fehlt.
ich hatte vor über den code der daten klasse zu senden. Habe mich so einbisschen an diesen code gehalten
Die function anzeigen oder wählen functioniert. so dachte ich bei mir, sollte das auch functioniern.


PHP:
<?php
require_once ("class_sitzungsSeite.php");

class artikel extends sitzungsSeite
{
  protected $artikelArray = array();

  public function __construct($dateiname)
  {
    parent::__construct();
    $data = simplexml_load_file($dateiname);
    foreach($data as $k => $v)
    {
      $artNr = intval($v->attributes());
      foreach($v as $k1 => $v2)
      {
        $this->artikelArray[$artNr][$k1] = (string)$v2;
      }
    }
  }

  public function anzeigen()
  
   {
	  print "<table>\n";
	  print "<tr>\n <th>Artikel</th><th>Preis</th>\n </tr>\n";
	  $zeilenanzahl = 0;
	  foreach($this->artikelArray as $key => $value)
	  {
	  if ($zeilenanzahl %2)
	  print "<tr bgcolor=\"#CCCCCC\">\n";
	  else
	  print "<tr>";
      foreach($value as $subKey => $subVal)
	  
      {
        if ($subKey == "name")
        {
			print "<td> ".$subVal."</td>";
		}
		else
		{
		  print "<td>" .$subVal." &euro;</td>";
          print "<td><a href=\"".$_SERVER['PHP_SELF']."?id=".$key."\">In den Warenkorb</a></td>\n";
        }
       
      }
      print "</tr>\n";
	  $zeilenanzahl++;
	
    }
	print "</table>\n";
  }

  public function waehlen($artikelnummer)
  {
	if(isset($this->korb[$artikelnummer]))
	$this->korb[$artikelnummer]++;
	else
	$this->korb[$artikelnummer] = 1;
  }

  public function bestellen($kunde, $datei = "bestellung.xml")
  {
	 if (!is_integer($kunde))
	 throw new Exception('Keine Kundennummer');
	 #Fehler ausgeben
	 else
	 { 
    if(count($this->korb) > 0)
    {
      $xml = new SimpleXMLElement("<bestellung></bestellung>");
	  $xml->addAttribute("Kunde",$kunde);
	  #$xml->addAttribute("Name", $kunde);
	  foreach($this->korb as $key => $value) # Alle Artikel bearbeiten
      {
        $art = $xml->addChild("artikel");# neues <artikel>-Element
        $art->addAttribute("nummer", $key);#Attribut "nummer" schreiben 
		$knd = $art->addChild("kunde", $kunde);#Tag <kunde> anlegen.
        $art->addAttribute("anzahl", $value);# Tag <anzahl> anlegen.
      }
      $xml->asXML($datei);  # Datei schreiben.
	  
      $this->korb = array();    # Auswahl löschen.
      #return $error;
    }
    return false; # keine Artikel ausgewählt
  
	 }
  }
 
	public function getKundenNummer()
		{
			return $this->kunde->getKundenNummer();
		}
		
		
  }

?>
 
hallo, ich habe jetzt auf der webseite, eine neue methode geschrieben, wenn ich nun den Login button drücke wird die xml datei angezeigt.
geht das so ?
gruss merlin



PHP:
if(!isset($_SESSION['id']) || $_SESSION['id'] != 1)# anmelden
	{
		$art->inhalt($text[5]);
		print "Sie sind als Kunde angemeldet";
	}
	else
	{
		$art->inhalt($text[6]);
	}
		#$art->inhalt($text[7]);
		$senden = new senden();# hier habe ich das so geschrieben
		$senden->senden(); 
	}
	
	$art->fuss();	
?>
 

Neue Beiträge

Zurück