[1.6.5] Problem mit PHP5 und Listen der Produkte

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
host22
Beiträge: 5
Registriert: 06.11.2008, 12:25
Kontaktdaten:

Beitrag von host22 »

Hallo Ich habe folgendes Problem mit dem OOS Shop, seitdem ich über meinen Provider auf PHP 5 umgestellt wurde weißt der OSO Shop Fehler auf mit der Funktion:

RecordCount(); auf.

Wenn ich Produkte anlisten möchte nach Hersteller erscheint nun Folgned eFehlermeldung:

Fatal error: Call to a member function on a non-object in ......../shop/includes/modules/product_listing.php on line 35

Zeile 35:

// fix counted products

$listing_numrows = $db->Execute($listing_numrows_sql);
$listing_numrows = $listing_numrows->RecordCount();

Ändere Ich die Variable in

RecordCount = 1;

Dann ist der Fehler weg, jedoch listet er auch keine Artikel nach Hersteller mehr auf. Die Tabell ebleibt weiß.

Wier kann man das umschreiben damit die Funktion nach Hersteller Listen wieder funktioniert. Nach Angaben meines Providers der sich das Script angesehen hat, meint es müsste umgeschrieben werden damit es auf PHP 5 läuft.

Übrigens unter php 4 war das kein Problem.

Das Problem tritt auch auf bei Anlisten der Meinungen die Kunden abgegeben haben. Und wenn man eine Artiekl in den Warenkorb legen will.

bei allen 3 Sachen steht im Quelltext diese Funktion

RecordCount();

Das Warebkorb Problem konnte ich aber mit der Umschreibung

RecordCount = 0 lösen, jetzt kann ich wieder Artikel in den Warenkorb legen, aber welche nachteile das hat weiß ich nicht.

Über Hilfe und Vorschläge wäre ich sehr Dankbar.
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

seitdem ich über meinen Provider auf PHP 5 umgestellt
Die Meldung ist Datenbank abhängig und nicht PHP abhängig.

Welche MyOOS Version wird verwendet? Und warum wurde in den letzten Jahren kein Update
gemacht?

cu

ralf
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

PS:

Wir können als kostenpflichtigen Service ein Update durchführen
und die Produktdaten und Kundendaten übernehmen

http://foren.myoos.de/index.php?showtopic=90


Für Rückfragen und Anregungen stehe ich gern zur Verfügung.


cu

ralf
host22
Beiträge: 5
Registriert: 06.11.2008, 12:25
Kontaktdaten:

Beitrag von host22 »

Habe OOS 165 am laufen, aber ich habe auch die oos 171 auf den server geladen zum testen, der selbe fehler. Deswegen bin ich noch bei 165 geblieben. Ansich läuft ja der Shop, die Kunden könne bestellen nur das man die Filterfunktion nicht vetrwenden kann, das stört mich etwas, kann man da nicht einafch eine kleinigkeit umschrieben damit die Funktion wieder geht.

was ich lustig finde die filterung nach produkten die funktioniert, jedoch nicht die filterung nach herstellern, obwohl die funktionen ansich die selben sein müssten.
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Habe OOS 165 am laufen, ... kann man da nicht einafch eine kleinigkeit umschrieben damit die Funktion wieder geht.
In der 1.6.6 wurde die 'vergessene' Datenbankabfrage für mySQL 5.x geändert. Dafür gibt es dann nach wenigen Wochen immer ein kleines Update
in wir derartige Kleinigkeiten beseitigen.

Lösung: einfach die 1.6.12 downloaden und alle Skripte mit einer "komplizierten Dantenbankabfrage" austauschen

~/shop/includes/pages/account/history.php(33): FROM " . $oosDBTable['orders] . " o LEFT JOIN
~/shop/includes/pages/checkout/process.php(156): FROM " . $oosDBTable['products] . " p LEFT JOIN
~/shop/includes/pages/main/shop.php(296): FROM " . $oosDBTable['products] . " p LEFT JOIN
~/shop/includes/pages/news/reviews.php(43): FROM " . $oosDBTable['news_description] . " nd LEFT JOIN
~/shop/includes/pages/reviews/product.php(43): FROM " . $oosDBTable['products_description] . " pd LEFT JOIN
~/shop/includes/pages/search/advanced_result.php(223): $from_str = "FROM " . $oosDBTable['products] . " p LEFT JOIN
~/shop/includes/pages/search/quickfind.php(40): LEFT JOIN '

http://download.berlios.de/oos/oos_1612.zip

Da myOOS 1.6.12 keine PNG-Grafiken mehr verwendet muss man vermutlich in den Dateien dann noch eben aus den
GIF-Dateinamen PNG-Dateinamen machen.

Wenn der Shop Probleme mit einer Datenbank-Abfrage hat kann man in
~/oos_temp/logs/adodb_error.log
sich die Problembeschreibung einmal durchlesen.

Fehlermeldungen an den Browser sind bei dem Projekt nicht erwünscht.

hth

r23
host22
Beiträge: 5
Registriert: 06.11.2008, 12:25
Kontaktdaten:

Beitrag von host22 »

Hallo r23,

danke erst mal für die schnelle Lösung, es funktioniert nun wieder (fast ) nur noch bei der Kundenbwertung der Artikel bringt er noch den Fehler:

Fatal error: Call to a member function on a non-object in... html/shop/includes/pages/reviews/product_info.php on line 56, habe auch die product_info aus der oos1612 genommen aber er will nicht. :-( Fehler bleibt

Wenn ich in Zeile 56:

if (!$reviews_result->RecordCount()) oos_redirect(oos_link($aModules['reviews], $aFilename['reviews_reviews]));
$reviews = $reviews_result->fields;

RecordCount() umschreibe in RecordCount=0

dann zeigt er mir wieder ein Ergebniss, jedoch kann ich die Meinungen der Kunden nicht vollständig Lesen, beim Klicken auf den Link, passiert nix.

Welche Datei muss ich hier noch ersetzen. Vielen Dank

Ansonsten läuft der Shop wieder sauber auf PHP 5. Danke
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

danke erst mal für die schnelle Lösung, es funktioniert nun wieder (fast ) nur noch bei der Kundenbwertung der Artikel bringt er noch den Fehler:

Fatal error: Call to a member function on a non-object in... html/shop/includes/pages/reviews/product_info.php on line 56, habe auch die product_info aus der oos1612 genommen aber er will nicht. :-( Fehler bleibt

Wenn ich in Zeile 56:

if (!$reviews_result->RecordCount()) oos_redirect(oos_link($aModules['reviews], $aFilename['reviews_reviews]));
$reviews = $reviews_result->fields;
Die Shop-Konfiguration ist mehr als schrottig. Des weiteren interessiert bei einer Fehlerbeseitigung sicherlich nicht, was der Shop einem
möglichen Angreifer mitteilt. Und wie kommt man auf die Idee, dass das Problemchen ein PHP Problem sein könnte?


Was steht in der Error Log Datei vom Datenbankstraltionslayer AdoDb in
~/oos_temp/logs/adodb_error.log

Da man bei der Installation des Shops auf alle Hinweise im Setup nicht beachtet hat (siehe schrottige installation) kann es möglich sein,
dass die log datei leer ist. dann einfach die schreibrechte der datei so legen, dass der webserver in die datei schreiben darf. notfalls die
datei für alle schreibbar machen chmod 666.

der inhalt bezüglich der o.g. behauptung (datei aus 1.6.12 verwendet) interessiert mich besonders ;)


$reviews_result = $db->Execute($sql);

und hier interessiert mich der inhalt von $sql

echo sql;

bitte ausführen.
donee360
Beiträge: 1
Registriert: 11.02.2011, 10:39

Listen der Kundenbewertungen

Beitrag von donee360 »

Hallo,



hab auch das Problem, dass beim Aufrufen der Meinungen die Fehlermeldung



Fatal error: Call to a member function on a non-object in /homepages/35/d13592529/htdocs/shop/includes/pages/reviews/product_info.php on line 57


kommt.



Den Lösungsweg hab ich bloß nicht ganz gecheckt.



Wenn ich, wie vorher erwähnt, RecordCount auf null setze, bleibt die Fehlermeldung weg. Es kommt die Liste mit allen geschriebenen Meinungen aller Artikel und nicht die Bewertung über den einzelnen ausgewählten Artikel.



phpversion meines Providers ist 4.4.9

mysql Version ist: Client API version 5.0.67



Kann es sein, dass ich vielleicht bei php.ini noch was vergessen habe? (register_global on oder off?)


Wie kann ich bei einem bereits installierten Shop nachträglich die Shop-Version auslesen? (Ist schon länger her, als ich den installiert habe und weis nicht mehr, welche Version ich damlas downgeloadet habe.)



Für einen kleinen Tipp wäre ich sehr dankbar. :thumbsup:



CIAO



donee
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

RE: Listen der Kundenbewertungen

Beitrag von r23 »

[quote='donee360',index.php?page=Thread&postID=2128#post2128]
Fatal error: Call to a member function on a non-object in /homepages/35/d13592529/htdocs/shop/includes/pages/reviews/product_info.php on line 57
[/quote]

Wir verwenden in der aktuellen MyOOS Version 1.6.x diese Datenbankabfrage:

[mysql] $sql = "SELECT rd.reviews_text, r.reviews_rating, r.reviews_id, r.products_id,
r.customers_name, r.date_added, r.last_modified, r.reviews_read,
p.products_id, pd.products_name, p.products_model, p.products_image
FROM " . $oosDBTable['reviews] . " r,
" . $oosDBTable['reviews_description] . " rd,
" . $oosDBTable['products] . " p,
" . $oosDBTable['products_description] . " pd
WHERE r.reviews_id = '" . intval($_GET['reviews_id]) . "'
AND r.reviews_id = rd.reviews_id
AND rd.reviews_languages_id = '" . intval($nLanguageID) . "'
AND r.products_id = p.products_id
AND p.products_status >= '1'
AND p.products_id = pd.products_id
AND pd.products_languages_id = '" . intval($nLanguageID) . "'";[/mysql]

Code: Alles auswählen

  $reviews_result = $db->Execute($sql);
  if (!$reviews_result->RecordCount()) oos_redirect(oos_link($aModules['reviews], $aFilename['reviews_reviews]));
  $reviews = $reviews_result->fields;
Änderungen sind an der PHP.ini nicht notwendig.

cu

ralf
Antworten