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 für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.08.2008, 16:35:06
mysteryxxx mysteryxxx ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 43
Beiträge: 3
XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as array

Hallo Leute

ich arbeite zurzeit an einem Projekt und ist eigentlich sogut wie fertig. Naja auf meinem Virtuellen Server (XXAMP) läuft und funktioniert alles nur auf dem realen Server gibt es ein problem mit dem Warenkorb class bzw darin ist ein array mit dem hat der irgendwie probleme.

Ich hab es so gemacht wenn jemand ein Artikel kaufen will bestimmte Werte an die Class Warenkorb.php gesendet werden und dort die funktion checkOK starten. Um sicher zu gehen hab ich mal in der funktion CheckOK getestet ob er überhautp die Werte bekommt und test war erfolgreich.

Die fehlermeldung ist immer: Fatal error: Cannot use object of type Warenkorb as array in ...class/warenkorb.php on line 67

durch einige if abfragen mit is_array merkt man das meine Variable kein array ist und ich denk mal genau daswegen gibt de rmir ne fehlermeldung obwohl es eigentlich ein array ist. Was komnisch ist, ist das beim ersten Kauf wenn wenn mandie seite betritt alles funktioniert und aber dem zweiten kauf gibt es dann diese fehlermeldung.

Server Version ist aktuellste also PHP 5.3 oder sowas

Das ist hier mein Warenkorb class, wäre schön wenn man mir helfen könnte sitze schon seit gestern an diesem Problem
PHP-Code:
<?php

class Warenkorb{
    
    public 
$waren;
    
    public function 
getArtikelNr($param){ 
        if(
is_array($this->waren)){ 
            return 
$this->waren[$param][0]; 
        }Else{return 
"Warenkorb Leer";} 
    } 
     
    public function 
getOrdner($param){ 
        if(
is_array($this->waren)) { 
            return 
$this->waren[$param][1]; 
        }Else{return 
"Ordner Leer";} 
    } 
     
    public function 
getRubrik($param){ 
        if(
is_array($this->waren)){ 
            return 
$this->waren[$param][2]; 
        }Else{return 
"Rubrik Leer";} 
    } 
     
    public function 
getPreis($param){ 
        if(
is_array($this->waren)) { 
            return 
$this->waren[$param][3]; 
        }Else{return 
"Preis Leer";} 
    } 
     
    public function 
getMenge($param){ 
        if(
is_array($this->waren)) { 
            return 
$this->waren[$param][4]; 
        }Else{return 
"Menge Leer";} 
    } 
    
    public function 
setArraySession(){
        unset(
$_SESSION['warenkorb']);
        
$_SESSION['warenkorb'] = $this->waren;
    }
    
    public function 
getArraySession(){
        return 
$this->waren $_SESSION['warenkorb'];
    }
    
    public function 
check($artikelNr$ordnerX$rubrik$preis){
            
$this->getArraySession();
            if(
count($this->waren) == 10)
                
$_SESSION['warenkorbStatus'] = 'warenrkorbVoll';
            else
                
$this->checkOK($artikelNr$ordnerX$rubrik$preis);
    }
    
    public function 
checkOK($artikelNr$ordnerX$rubrik$preis){
        
$check 'true';
        
$menge 1;
        for(
$i=0$i count($this->waren); $i++){
            if(
$artikelNr == $this->getArtikelNr($i)){
                
$check 'false';
                
$menge $this->waren[$i][4];
                
$menge++;
                
$this->waren[$i][4] = $menge;
                break;
            }
        }
        if(
$check == 'true'){
            
$this->waren[] = array($artikelNr$ordnerX$rubrik$preis$menge);  <-------Line 67
            var_dump
($this->waren);
        }
        
$this->setArraySession();
        
$_SESSION['warenkorbStatus'] = 'einkaufOK';
    }
}
?>

Geändert von mysteryxxx (02.08.2008 um 16:41:15 Uhr)
Mit Zitat antworten
  #2  
Alt 03.08.2008, 10:33:10
mysteryxxx mysteryxxx ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 43
Beiträge: 3
AW: XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as arr

Kann hier niemand den fehler finden?

wenn ich $this->waren mal mit var_dump() ausgeben bekomme ich das hier gesagt:

object(Warenkorb)#2 (1) { ["waren"]=> object(Warenkorb)#2 (1) { ["waren"]=> *RECURSION* } }

Wie kann ich das machen das es funktioniert? Auf xxamp geht alles nur auf dem server nicht und ich blick nicht durch was da los ist. Der soltle mein array wie üblich zum array machen und nicht zum objekt.

Geändert von mysteryxxx (03.08.2008 um 10:33:56 Uhr)
Mit Zitat antworten
  #3  
Alt 03.08.2008, 12:08:45
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as arr

Zitat:
Kann hier niemand den fehler finden?
Doch, ich könnte, mag aber nicht!
Weil:
Das Sessiongedöns im Warenkorb würde ich bleiben lassen, sondern das Warenkorbobjekt selbst in $_SESSION speichern.
Evtl. sogar die ArrayAccess Schnittstelle implementieren.

Geändert von DokuLeseHemmung (03.08.2008 um 12:08:58 Uhr)
Mit Zitat antworten
  #4  
Alt 03.08.2008, 12:34:35
mysteryxxx mysteryxxx ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 43
Beiträge: 3
AW: XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as arr

Verstehe ehrlichgesagt nicht wie du das meinst, aber wäre klasse wenn du mir meinen Fehler hier zeigen würdest damit ich das korrigieren kann, da ich selbst es nicht sehe obwohl es über xxamp einbahnfrei läuft allerdings nicht auf mein server.
Mit Zitat antworten
  #5  
Alt 03.08.2008, 15:33:04
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as arr

Ich kann dir wohl einen Codefetzen posten.......

PHP-Code:
<?php
error_reporting
(E_ALL|E_STRICT); 
ini_set('display_errors'TRUE); 


$vorrat   = array();
$vorrat[] = 'hemd';
$vorrat[] = 'pulli';
$vorrat[] = 'nagel';


class 
Warenkorb implements Countable
{

  private 
$inhalt = Array();

  public function 
hinzufuegen($artikel)
  {
    if (isset(
$this->inhalt[$artikel]))
    {
      
$this->inhalt[$artikel]++;
    }
    else
    {
      
$this->inhalt[$artikel] = 1;
    }
  }
  public function 
count()
  {
    return  
count($this->inhalt);
  }

  public function 
entfernen($artikel)
  {
    if (isset(
$this->inhalt[$artikel]))
    {
      if(
$this->inhalt[$artikel]<=1)
          unset(
$this->inhalt[$artikel]);
       else 
$this->inhalt[$artikel]--;
    }

  }

  public function 
leeren()
  {
    
$this->inhalt = Array();
  }

  public function 
gibkorb()
  {
    return 
$this->inhalt;
  }
}

session_start();


if(!isset(
$_SESSION['korb']))
{
  
$_SESSION['korb'] = new Warenkorb;
}
elseif(!(
$_SESSION['korb'] instanceof Warenkorb))
{
  throw new 
Exception('Warenkorb kaputt (schon mit was anderm belegt)');
}

if(isset(
$_GET['artikel']))
{
  
$_SESSION['korb']->hinzufuegen($_GET['artikel']);
}

if (isset(
$_GET['entf']))
{
  
$_SESSION['korb']->entfernen($_GET['entf']);
}

if (isset(
$_GET['loeschen']))
{
   
$_SESSION['korb']->leeren();
}
?>
<html>
    <body>
        <h1>Warenkorb</h1>
        <a href="?loeschen=1">Warenkorb löschen</a> <br>
<?php
if(count($_SESSION['korb']))
{
  print 
"Sie haben folgende Artikel ausgewählt:<br> ";
  foreach (
$_SESSION['korb']->gibkorb() as $artikel => $anzahl)
  {
    print 
"Artikel $artikel Anzahl: $anzahl  ";
    print 
"<a href='?entf=$artikel'>";
    print 
"Artikel entfernen</a><br>";
  }
}else
{
  print 
"Bisher nichts ausgewählt";
}

print 
"    <h1>Folgende Artikel können Sie bestellen</h1>";
foreach(
$vorrat as $ding)
 print 
"<a href='?artikel=$ding'>$ding in Warenkorb legen</a><br>";
?>

  </body>
</html>
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
Array umstrukturieren Tikiwiki PHP Grundlagen 2 28.07.2008 13:24:28
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 18:19:53
Sessions chieftequila PHP Grundlagen 26 12.10.2006 16:40:22
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58
Problem mit array schmidt PHP für Fortgeschrittene und Experten 15 23.10.2003 16:39:33


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:05:58 Uhr.


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


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