php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Sonstiges > Archiv / Trash
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Archiv / Trash Hier findet ihr alles, was aus anderen Foren verschoben wurde, weil es inhaltlich in keines der anderen Foren passt.

 
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-02-2008, 12:06
Saemm
 Newbie
Links : Onlinestatus : Saemm ist offline
Registriert seit: Feb 2008
Beiträge: 4
Saemm ist zur Zeit noch ein unbeschriebenes Blatt
Question Daten im Warenkorb nicht richtig übernommen

Hallo,

ich soll als Hausarbeit einen kleinen Webshop erstellen (und zwar ohne MySQL). Es funktioniert auch lokas alles ganz prima. Online gibt es allerdings ein Problem: ruft man die Seite http://34322010.haf-projekt.de das allererste Mal neu auf und erstellt eine Bestellung mehrerer Artikel, so überschreibt man mit dem zweiten bestellten Artikel den ersten. Beim 3. 4. ocder 5. Artikel klappt alles wie es soll und auch wenn man eine zweite Bestellung tätight. Der Fehler tritt also in nur einem ganz bestimmten Fall auf.

Offensichtlich wird also der allererste Artikel nicht ins Session Array übernommen. Frage ist jetzt : warum und vor Allem warum nur online, wenn lokal alles funktioniert.

Waren.inc und artikel.inc werden in einer index.php includiert in die dann die warenkorb.php usw. ebenfalls includiert werden.

Schon mal danke im Voraus

Hier der Code:

Artikel.php


<?php
include("artikelliste.php");
$artikelparser = new Artikelparser($datei);
?>
<html>
<head>
</head>
<body
<br>
<table class="contenter" border="1" style="margin-left:20" width="70%">
<?php
print "<tr bgcolor='#f0f4f1'><td>Art.nr.</td><td>Titel</td><td>Autor</td><td>Einzelpreis</td><td></td></tr>";
foreach ($artikelparser->art as $nummer=>$artikel) {
print "<tr>" ;
print "<form name='artikel' method='post' action='index.php?
goto=warenkorb&artikel=$nummer&titel=$artikel->name&preis=$artikel->preis >";
print "<td>" . $nummer . "</td>";
print "<td class='contenter'><b>";
print $artikel->name;
print "</b><br>" . $artikel->desc . "</td>";
print "<td align='right'>" . $artikel->autor . "</td>";
print "<td align='right'>" . $artikel->preis . " Euro</td>";
print "<td><input type='image' src='images/warenkorb_header.gif' ></td>";
print "</tr>";
print "</form>";
}
?>
</table>

artikeldaten.xml
<?xml version="1.0" encoding="windows-1250"?>
<artikeldaten>
<artikel nummer="2548">
<name>Der Dativ ist dem Genitiv sein Tod</name>
<desc>... </desc>
<preis>12.90</preis>
<autor>Bastian Sick</autor>
.
.
</artikeldaten>

artikel.inc.php
<?php
class Artikel {
var $name;
var $anzahl;
var $preis;
var $autor;
var $desc;
function Artikel($name, $preis, $autor, $desc) {
$this->name= $name;
$this->anzahl=1;
$this->preis=$preis;
$this->autor=$autor;
$this->desc=$desc;
}
}
?>

artikelliste.php

br>
<p class="contenter" style="text-align:right;margin-right:150"><a href="index.php?goto=warenkorb"><img src="images/warenkorb_header.gif" width="30" height="18" border="0"></a></p>
<?php
class Artikelparser{
var $nummer;
var $art;
var $aktuell;
var $titel;
var $preis;
var $autor;
var $desc;
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);
}
/*************************************
Funktionsdeklarationen
*************************************/
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->autor, $this->desc);
$this->aktuell = "";
}
function cdata($parser, $text) {
if($this->aktuell == "PREIS") $this->preis = $text;
if($this->aktuell == "NAME") $this->titel = $text;
if($this->aktuell == "AUTOR") $this->autor = $text;
if($this->aktuell == "DESC") $this->desc = $text;
}
function getArikelArray(){
return $this->art;
}
}
?>

waren.inc.php
<?php
class Warenkorb
{
var $inhalt =Array();
function hinzufuegen($artikel, $titel, $preis) {
$this->inhalt[$artikel]['anzahl'] ++;
$this->inhalt[$artikel]['titel'] = $titel;
$this->inhalt[$artikel]['preis'] = $preis;
}
function entfernen($artikel)
{
unset ($this->inhalt[$artikel]);
}
function leeren()
{
$this->inhalt = Array ();
}
}
?>

warenkorb.php
<?php
session_start();
// aus der SESSION
$korb= $_SESSION['korb'];
if (!is_object($korb)) {
$korb=New Warenkorb();
$_SESSION['korb'] =$korb;
}

if (isset ($artikel)) $korb->hinzufuegen($artikel, $titel, $preis);

if (isset ($entf)) $korb->entfernen($entf);
if (isset ($loeschen)) $korb->leeren();
$gespreis = 0;
if (!empty($korb)) {
print "<br><br><br>";
print "<table style='margin-left:10;margin-right:40' align='right'>";
print "<tr><td><a href='index.php?goto=warenkorb&loeschen=1'><span style='margin-right:60'>
<img src='images/leeren.gif' height='18' border='0'></span></a></td>";
print "<td class='button'><span style='margin-right:60'><a href='index.php?goto=artikel'>Weiter einkaufen </a></span>";
print "<td><a href='index.php?goto=kundendat'><img src='images/weiter.gif' width='131' height='18' border='0'></a></td></tr></table>";
print "<br><br><br>";
print "<table border= '1' style='margin-left:10'>";
print "<tr class='contenter' bgcolor='#f0f4f1'><td> Art.nummer</td><td>Titel </td><td>Einzelpreis</td><td>Anzahl</td><td>Preis</td><td>Aktion</td></tr>";
foreach ($korb->inhalt as $artikel => $anzahl) {
$anz = $korb->inhalt[$artikel]['anzahl'];
$tit = $korb->inhalt[$artikel]['titel'];
$kostet=$korb->inhalt[$artikel]['preis'];

print "<form name='warenkorb' method='post' action='index.php?goto=warenkorb&entf=$artikel'>";
print "<tr>";
print "<td class='contenter'>" . $artikel . "</td>";
print "<td class='contenter'>" . $tit . "</td>";

print "<td class='contenter'>" . $kostet . " Euro</td>";

print "<td class='contenter'>" . $anz. "</td>";
print "<td class='contenter'>" . number_format($anz * $kostet,2) . " Euro</td>";
print "<td class='contenter'><input type='image' src='images/cross.gif' ></td>";
$gespreis += $anz * $kostet;

print "</form>";
print "</tr>";
}
}
print "<tr><td class='contenter' colspan='2' rowspan='2' style='text-align:right;font-size:14' ><b>Gesamt</b></td>";
print "<td class='contenter' colspan='4' rowspan='2' style='text-align:right;font-size:14' ><b>" . number_format($gespreis,2) . " Euro</b></td></tr>";
print "</table>";
?>
<br><br><br><br><br><br>

</body>
</html>

Geändert von jahlives (20-02-2008 um 13:45 Uhr)
  #2 (permalink)  
Alt 20-02-2008, 12:14
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

bitte php-tags benutzen (siehe unten)

danke
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
  #3 (permalink)  
Alt 20-02-2008, 12:15
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

benutz doch bitte die PHP Tags, dann kann man das einfacher lesen.
Hast du die die Session schonmal mittels print_r vor dem ändern jener ausgeben lassen?
  #4 (permalink)  
Alt 20-02-2008, 12:18
Saemm
 Newbie
Links : Onlinestatus : Saemm ist offline
Registriert seit: Feb 2008
Beiträge: 4
Saemm ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja das habe ich - ich poste nachher gern noch die Ausgabe
  #5 (permalink)  
Alt 20-02-2008, 12:23
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

nein hast du nicht. wir meinen [ PHP ] ... [ /PHP ] (nur ohne leerzeichen) da rein packst du deinen code.

gruß
peter
EDIT:
upsi, da hat das forum wieder was verschluckt, mein fehler
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (20-02-2008 um 13:38 Uhr)
  #6 (permalink)  
Alt 20-02-2008, 12:37
Saemm
 Newbie
Links : Onlinestatus : Saemm ist offline
Registriert seit: Feb 2008
Beiträge: 4
Saemm ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich meinte auch dass ich print_r schon benutzt habe die Antwort bezog sich nicht auf die PHP Tags
  #7 (permalink)  
Alt 20-02-2008, 13:12
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Solange du die php-Tags nicht verwendest, interessiert sich erst recht niemand für die Ausgabe von print_r.
  #8 (permalink)  
Alt 20-02-2008, 14:36
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

@ts

du bist jetzt dreimal!!! darauf hingewiesen worden, die php-tags (über dem eingabefeld -> buton php) zu benutzen. dazu gibt es den schönen "ändern"-button unterhalb deines threads.

also letzte warnung sonst landet das hier im müll.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
  #9 (permalink)  
Alt 20-02-2008, 17:27
Saemm
 Newbie
Links : Onlinestatus : Saemm ist offline
Registriert seit: Feb 2008
Beiträge: 4
Saemm ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es tut mir ja auch leid dass ich erst mal nach Hause kommen muss und nicht alles von der Arbeit aus machen kann. Aber Deinen Tonfall finde ich auch etwas seltsam muss ich sagen.

Wenn Du es unter Hilfe verstehst in dem Ton zu antworten dann ist das hier vielleicht auch nicht das richtige, danke also
  #10 (permalink)  
Alt 20-02-2008, 17:32
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

* close trash *

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
 

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:11 Uhr.