|
|||
|
Liebe Gemeinde
Brauche dringend Eure Hilfe !!! Nach einigen Tage ohne jegliche Reaktion und Bestellungen auf meinem neuen Shop habe ich einmal eine Testbestellung gemacht und siehe da..... Fatal error: Cannot use object of type order as array in /is/htdocs/domain/shop/checkout_process.php on line 106 das erscheint im Browserfenster was bedeutet das ? es erscheint als sogenannte Bestellabschlu?meldung Helft mir bitte |
|
|||
|
Hi,
den Fehler kann ich best?tigen. Es sieht aber so aus, als wenn diese Fehlermeldung erst mit PHP 5.0.? hochkommt. Bisher lief auf dem Server 4.3.11, nach der Umstellung auf 5.0.4 tritt dieser Fehler auf. Der Fehler ist aber nicht verwunderlich, denn Zeile 106: 'customers_status' => $order['status'], Zeile 108: 'customers_status_image' => $order['status_image'], sind definitiv fehlerhaft. $order ist ein Objekt vom Typ order Zeile 78: $order = new order; Ich w?rde die Zeilen aber nicht rauswerfen, sondern die Zeilen ?ndern in Zeile 106: 'customers_status' => "", Zeile 108: 'customers_status_image' => "", Da m?ssen die Entwickler nachbessern. Sch?n w?re es, wenn hier eine L?sung zu dem Problem gepostet w?rde. Gru? Uwe |
|
|||
|
hi
um mal zu sehen was in $order ist baute nach zeile 101 das hier ein require_once "Var_Dump.php"; echo Var_Dump::display($order,1); die ausgabe ist recht leerreich und laesst vermuten, dass in zeile 106: 'customers_status' => $order->customer['status'], und in zeile 108: 'customers_status_image' => $order->customer['status_image'] stehen sollten. dieselbe heimsuchung ereilt die zeilen 167 und 169. nach der aenderung funzte das gute stueck )hier noch die (gekuerzte) ausgabe: object(order)#10 (7) { info => array(20) { order_status => string(1) 1 currency => string(3) EUR ... &c. } totals => array(0) products => array(2) { 0 => array(9) { qty => string(1) 2 ... id => int 2 } 1 => array(9) { qty => int 2 ... id => int 1 } } customer => array(15) { firstname => string(8) xxxxxxxx lastname => string(7) yyyyyyy csID => NULL gender => string(0) company => string(25) ------------------------- street_address => string(12) mmmmmmmmmmmm suburb => NULL city => string(11) lllllllllll postcode => string(4) zzzz state => string(10) bbbbbbbbbb zone_id => string(3) 102 country => array(4) { id => string(2) 14 title => string(7) Austria iso_code_2 => string(2) AT iso_code_3 => string(3) AUT } format_id => string(1) 5 telephone => string(11) 12345678987 email_address => string(22) aaaaaaaaa@bbbbbbbbb.at } ... ... &c. } |
|
|||
|
Richtig, das ist die richtige Zugriffs-Syntax auf Objekt-Entities, und die meisten anderen Zugriffe in diesem Code machen das auch so.
PHP 4 erlaubt da wohl einen regelwidrigen Zugriff. L?schen ist sicher keine richtige L?sung, da sich der Entwickler ja sicher etwas dabei gedacht hat, als er den Code eingef?gt hat. Code:
Zeile 106: 'customers_status' => $order->customers['status'], Zeile 108: 'customers_status_image' => $order->customers['status_image'], |
|
|||
|
ich hab jetztbeide zeilen ge?nert und bei mir kommt jetzt
C:\Programme\xampp\htdocs\xtc\checkout_process.p hp on line 281 ich habe php5.05 die zeilen 280, 281 und 282 'products_tax' => $order->products[$i]['tax'], 'products_discount_made' => $order->$products[$i]['discount_allowed'], 'products_quantity' => $order->products[$i]['qty'], |
|
|||
|
Dejavu!
Ich hab irgendwann schonmal die gleiche Frage beantwortet. Mach aus 'products_discount_made' => $order->$products[$i]['discount_allowed'], 'products_discount_made' => $order->products[$i]['discount_allowed'], Das Dollarzeichen ist in PHP4 hier noch erlaubt, aber seit PHP5 verboten. |
![]() |
| Lesezeichen |
| Stichworte |
| 106, checkoutprocessphp, error, fatal, line |
| Themen-Optionen | |
| Ansicht | |
|
|