SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.05.2009, 15:50:34
liculita liculita ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 49
Beiträge: 12
Warenkorb mit xml

Tach hab da mal ne frage und hoffe Ihr könnt mir helfen. Ich hab da ne Hausaufgabe bei der ich nicht weiter komme. Ich habe versucht mir aus dem Netz eine Lösung zusammen zu basteln hat aber nicht geklappt. Ich schreib euch mal kurz die Aufgabe und dann meinen Code. Und hoffe Ihr könnt mir helfen.

Aufgabe:
1.)
Schaffen Sie eine Administrations-Seite, die passwortgeschützt ist.
Diese Seite soll zunächst nur die Funktion anbieten, eine Artikeldatei im XML-Format hochladen zu können, die dann die alte Artikeldatei ersetzt.

2.)
Schreiben Sie ein neues Skript „bestellung.php“, das über einen Link auf der Warenkorbseite aufgerufen werden soll.
Das Skript soll die Bestelldaten in einer Datei „bestellung.xml“ im folgenden XML-Format abspeicher:
<bestellung>
<artikel nummer=“1001“ anzahl=“3“/>
<artikel nummer=“3003“ anzahl=“1“/>
</bestellung>
Außerdem soll der Warenkorb nach einer Bestellung geleert werden.

3.)
Verbessern Sie die Datei „artikelliste.php“, die bisher die XML-Datei „artikeldaten.xml“ parst. Das Parsen soll über eine Klasse „Artikelparser“ gehandhabt werden.
Verwenden Sie die folgende Vorlage der Klasse als Hilfestellung.
<?php
include_once(„Artikel.inc“);
class Artikelparser{
/* Hier müssen die ehemals globalen Variablen als Eigenschaften der Klasse definiert werden*/
function Artikelparser($datei){
// Initialisieren des Artikelarrays
$this->art = Array();
/*Hier muss die XML-Datei eingelesen werden und die Parservariable kreiert werden*/
//Die nächste Funktion dient dazu, dass der
//Parser nicht globale Funktion
//aufruft, sondern Methoden dieser Klasse.
Xml_set_object($parser, $this);
/*Hier müssen die Handler definiert werden und der Parservorgang gestartet werden*/
}
/*Hier müssen die Handler_Funktionen definiert werden*/
function getArtikelArray(){
return $this->art;
}
}
?>

Das ist die gestellte Aufgabe weil der Eintrag zu lang ist kommt der Code im 2 Teil.
Mit Zitat antworten
  #2  
Alt 27.05.2009, 15:52:10
liculita liculita ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 49
Beiträge: 12
warenkorb xml teil 2

Hier kommt mein Code

Index.php
<?php
include("artikelliste.php");
$art = new Artikelparser($datei);
$Artikel = array();
?>
<!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">
<!-- @(#) $Id$ -->
<head>
<title>HTML Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="Dev-PHP 2.3.0" />
<meta name="Keywords" content="your,keywords,here" />
<meta name="Description" content="." />

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="stdStyle.css" />
<style type = text/css>
.nummer{
text-align:right;
width:40px;
}
.name{
text-align:left;
width:200px;
}
.anzahl{
text-align:right;
width:40px
}
.preis{
text-align:right;
width:70px;
}
</style>
</head>
<body>
<h1>Folgende Bücher können Sie bestellen</h1>
<table>
<tr>
<th class='nummer'>ArtNr</th>
<th class='name'>Name</th>
<th class='anzahl'>Anzahl</th>
<th class='preis'>Preis</th>
</tr>
<?php
foreach($art->art as $elemente){
$Artikel = $elemente->Ausgabe();
echo "<tr>\n";
}
foreach($Artikel as $feld=>$wert){
echo"<td class='".$feld."'>".$wert."</td>\n";
}
echo"</tr>\n";
}
?>
</table>
</body>
</html>


artikel.inc
<!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">
<!-- @(#) $Id$ -->
<head>
<title>HTML Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="Dev-PHP 2.3.0" />
<meta name="Keywords" content="your,keywords,here" />
<meta name="Description" content="." />

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="stdStyle.css" />
</head>
<body>
<?php
class Artikel
{
var $nummer;
var $name;
var $anzahl;
var $preis;
function Artikel($nummer,$name,$preis)
{
$this->nummer=$nummer;
$this->name=$name;
$this->anzahl=1;
$this->preis=$preis;
}
function Ausgabe()
{
$arArtikel=array();
$arArtikel=[nummer]=$this->nummer;
$arArtikel=[name]=$this->name;
$arArtikel=[anzahl]=$this->anzahl;
$arArtikel=[preis]=$this->preis;
return $arArtikel;
}
}
?>
</body>
</html>

artikeldaten.xml
<?xml version="1.0" encoding="windows-1250"?>
<artikeldaten>
<artikel nummer="1001">
<name>Der Herr der Ringe</name>
<preis>39.90</preis>
</artikel>
<artikel nummer="2002">
<name>Der kleine Hobbit</name>
<preis>19.90</preis>
</artikel>
<artikel nummer="3003">
<name>Grimms Märchen</name>
<preis>25.90</preis>
</artikel>
<artikel nummer="4004">
<name>Elric von Melnibonee</name>
<preis>29.90</preis>
</artikel>
</artikeldaten>


artikelliste.php
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
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->nummer,$this->titel,$this->preis);
}
$this->aktuell="";
}
function cdata($parser,$text){
if($this->aktuell=="PREIS")$this->preis=$text;
if($this->aktuell=="NAME")$this->titel=$text;
}
function getArtikelArray(){
return$this->art;
}
}
?>
</body>
</html>


bestellung.php
<?php include ("warenkorb.inc");
// Start Session, falls nicht schon passiert
session_start();
// Hole Warenkorb-Objekt aus der Session
$korb = $_SESSION['korb'];
// Falls es der erste Aufruf ist, muss zuerst ein neuer Warenkorb angelegt werden
if(!is_object($korb)){
$korb = new Bestellung();
$_SESSION['korb'] = $korb;
}
?>
<!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">
<!-- @(#) $Id$ -->
<head>
<title>HTML Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="Dev-PHP 2.3.0" />
<meta name="Keywords" content="your,keywords,here" />
<meta name="Description" content="." />

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="stdStyle.css" />
</head>
<body>
<?php
//Handle erstellen
$datei = fopen("bestellung.xml","w");
// Startzeile schreiben
fputs($datei, "<bestellung>\n");
// Artikel aus Array in xml-Datei schreiben
foreach ($korb->inhalt as $artikel=>$anzahl){
fputs($datei, " <artikel nummer=' ".$artikel." ' anzahl=' ".$anzahl." '/>\n");
}
// Endzeile schreiben
fputs($datei, "</bestellung>");
// Datei schließen
fclose($datei);
// Meldung ausgeben
print "<b>Die Datei 'bestellung.xml' wurde gespeichert!</b><br><br>";
print "<a href='index.php'><b>Ausloggen</b></a>";
// Warenkorb nach Bestellung leeren
$korb = array();
?>
</body>
</html>


bestellung.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<bestellung>
<artikel nummer="1001" anzahl="3"/>
<artikel nummer="3003" anzahl="1"/>
</bestellung>


warenkorb.inc
<!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">
<!-- @(#) $Id$ -->
<head>
<title>HTML Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="Dev-PHP 2.3.0" />
<meta name="Keywords" content="your,keywords,here" />
<meta name="Description" content="." />

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="stdStyle.css" />
</head>
<body>
<?php
class Warenkorb{
var $inhalt = array();
function hinzufuegen($artikel){
$this->Inhalt[$artikel]++;
}
function entfernen($artikel){
unset($this->inhalt[$artikel]);
}
funtion leeren(){
$this->inhalt = Array();
}
}
?>
</body>
</html>


warenkorb.php
<?php
include("warenkorb.inc");
// starte Session,falls nicht schon passiert
session_start();
//Hole Warenkorb-Objekt aus der Session
$korb = $_SESSION['korb'];
// Falls es der erste Aufruf ist, muss zuerst
//ein neuer Warenkorb angelegt werden
if (!is_object($korb)){
$korb = new Warenkorb();
$_SESSION['korb'] = $korb;
}
//Artikel hinzufügen?
if (isset($artikel)) $korb->hinzufuegen($artikel);
//Artikel entfernen?
if (isset($entf)) $korb->entfernen($entf);
//Gesamten Warenkorb löschen?
if (isset($loeschen)) $korb->leeren();
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<link rel="stylesheet" href="style.css">
</head>

<body>
<h1>Warenkorb</h1>
<a href="warenkorb.php?loeschen=1">
Warenkorb löschen
</a><p>
<a href="javascript:history.back()">Zurück</a><p>
Sie haben bisher folgende Artikel ausgewählt:<p>
<?php
if (empty($korb)){
//zeige alle bisher ausgewählten Artikel an
foreach ($korb->inhalt as $artikel=>$anzahl){
print "Artikelnummer: $artikel ";
print"<a href='warenkorb.php?entf=$artikel'>";
print "Artikel entfernen</a><br>";
print "Anzahl: $anzahl<br>";
if ($artikel == 1001)
print "Der Herr der Ringe<p>";
if ($artikel == 2002)
print "Der kleine Hobbit<p>";
if ($artikel == 3003)
print "Grimms Märchen<p>";
if ($artikel == 4004)
print "Elric von Melniboee<p>";
}
}
else {
print "Bisher nichts ausgewählt";
}
?>
</body>
</html>


So das war der Code ich hoffe ihr könnt damit etwas anfangen und mir helfen.
DANKE in vorraus.
Mit Zitat antworten
  #3  
Alt 27.05.2009, 15:57:40
Benutzerbild von rarios
rarios rarios ist offline
Member
 
Registriert seit: Jun 2006
Beiträge: 655
AW: warenkorb xml teil 2

Uff, Du machst ja alles falsch, was man hier so im Board falsch machen kann.

Verhaltensregeln unbedingt beachten! http://selfphp.de/forum/announcement.php?f=12

Hier wird Dir so nicht einer helfen.
Benutze PHP Tags - entscheide, was vom Quelltext wirklich wichtig ist - und erstelle verdammt nochmal nur ein Thread!
__________________
Liebe Grüße
Mit Zitat antworten
  #4  
Alt 27.05.2009, 16:49:10
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Warenkorb mit xml

1. mach deine hausaufgaben selbst
2. lies unsere forenregeln

cx

Geändert von cortex (27.05.2009 um 16:53:12 Uhr)
Mit Zitat antworten
  #5  
Alt 27.05.2009, 16:54:24
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: warenkorb xml teil 2

Zitat:
Zitat von rarios Beitrag anzeigen
erstelle verdammt nochmal nur ein Thread!
[mod: verschoben]

cx
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Webshop, Problem mit Warenkorb Bohrmaen PHP Entwicklung und Softwaredesign 14 25.08.2008 12:16:44
Warenkorb löschen nach Bestellung McFrosty1 PHP Grundlagen 2 05.02.2007 18:48:51
Warenkorb editieren - Session ID Baracus PHP Grundlagen 0 27.12.2006 13:58:07
Warenkorb Datenbank erstellen??? tsvmaster MySQLi/PDO/(MySQL) 1 27.12.2004 10:51:30
Warenkorb per E-Mail versenden. Zonk PHP für Fortgeschrittene und Experten 1 09.10.2004 18:24:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:29:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt