php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.08.2008, 12:05  
Benutzer
 
Registriert seit: 04.06.2008
Beiträge: 30
mysteryxxx befindet sich auf einem aufstrebenden Ast
Standard 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.

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* } }


Server Version ist aktuellste also PHP 5.2.5

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{
    
$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);
    }
    
$this->setArraySession();
    
$_SESSION['warenkorbStatus'] = 'einkaufOK';
   }
 }
?>

Geändert von mysteryxxx (03.08.2008 um 12:13 Uhr).
mysteryxxx ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.08.2008, 13:24  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du gehst vorher schon mit der Eigenschaft $waren so um als wäre es ein Array.
Dies ist es aber erst nach einem Aufruf der Methode check. Wie wäre es denn wenn du es so machst?
PHP-Code:
<?php
class Warenkorb{
 
 public 
$waren = array();
...
Zudem wäre es Hilfreich zu wissen was in $_SESSION['warenkorb']; steckt. Mach da mal bitte ein var_dump().
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 03.08.2008, 17:53  
Benutzer
 
Registriert seit: 04.06.2008
Beiträge: 30
mysteryxxx befindet sich auf einem aufstrebenden Ast
Standard

Hi danke erstmal für deine Antwort,

ich hab es aber bisher schon probiert oben waren glech als array zu deklarieren aber es hilft nicht

und hatte oben schon reingeschrieben was der mit var_dump ausgibt:

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

Ich bin schon total am verzweifeln da alles auf dem xxamp version läuft aber auf dem realen server hat er irgendwie probleme mit dem array
mysteryxxx ist offline   Mit Zitat antworten
Alt 03.08.2008, 17:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zeile 67 posten
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 03.08.2008, 18:08  
Benutzer
 
Registriert seit: 04.06.2008
Beiträge: 30
mysteryxxx befindet sich auf einem aufstrebenden Ast
Standard

Zeile 67 ist:

$this->waren = array($artikelNr, $ordnerX, $rubrik, $preis, $menge);

Allerding gibt der mit nun diese fehlermeldung nicht mehr an zeile 67 aus sondern 9 und zeile 9 ist :

return $this->waren[$param][0];

wenn ich mit var_dump($this->waren); ausgebe bekomme ich das heir angezeigt:

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

Geändert von mysteryxxx (04.08.2008 um 09:35 Uhr).
mysteryxxx ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Cannot use a scalar value as an array in PHP Tipps 2005-2 16 28.07.2005 14:11
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
PHP 5 installation PHP Tipps 2005-2 6 16.06.2005 14:19
fehler im script oder fehler beim server PHP Tipps 2005 12 21.05.2005 17:04
[Erledigt] phpMyAdmin Fehler Datenbanken 1 24.04.2005 11:33
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
bbcode - Classe PHP-Fortgeschrittene 4 18.09.2004 17:30
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cannot use object of type as array, cannot use object of type, cannot use object of type pdostatement as array, cannot use object of type datetime as array, cannot use object of type tslib_fe as array, cannot use object of type pdostatement as array in, cannot use object of type as array in, \cannot use object of type pdostatement as array\, cannot use object of type order as array, cannot use object of type groupdav_propfind_iterator, xamp, cannot use object of typ as array, cannot use object of type cfresponse as array, cannot use object of type chat_wrapper as array, fatal error: cannot use object of type datetime as array in, \cannot use object of type tslib_fe as array\, cannot use object of type php class function, cannot use object of type pdostatement fpdf, fatal error: cannot use object oaf type datetime as arry, cannot use object of type fieldrules as array in

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum