Neueste Nachrichten (in Englisch): (am laden..)

Ingo Malchow

Team Member
  • Gesamte Inhalte

    9.459
  • Benutzer seit

  • Letzter Besuch

Ansehen in der Community

3 Neutral

4 folgen dem Benutzer

Über Ingo Malchow

  • Geburtstag 30.12.1961

Contact Methods

  • Website URL
    http://www.strelitzer.de

Profile Information

  • Gender
    Male
  • Ihr Name
    Ingo Malchow
  • Location
    Neustrelitz (Freistaat Mecklenburg-Strelitz)
  • Interests
    Was interessant ist!

Letzte Besucher des Profils

40.254 Profilaufrufe
  1. Umstellung auf PHP 5.6

    Bitte nicht falsch verstehen. Der Code sieht etwas konfus aus. Du benutzt hier ungekapselt die Funktion mysql_query. Mal ganz nebenbei: mysql_query ist als deprecated markiert und sollte unbedingt entfernt werden! Die Funktion tep_expire_automatic() scheint überflüssig, wenn sie nicht noch zusätzlich von woanders aufgerufen wird. (Das solltest Du prüfen!) Die Funktion liefert auch keinen Rückgabewert, der der Variablen $aktiv zugewiesen werden könnte. Die Query in der Variablen $update ist unausführbar, sofern Du nicht eine Tabelle mit dem Namen "TABLE_PRODUCTS" hast. Sie heißt meiner Meinung nach "products". Die Konstante "TABLE_PRODUCTS" hält den Stringwert "products", wird im String $aktiv aber nicht erkannt! Das kannst Du mit echo $pdate gern mal probieren. Des weiteren kenne ich das Feld products_date_available als vom Typ date default null. Du kannst ihm also nicht wirksam einen Leerstring zuweisen. Eine Fehlermeldung des Datenbankservers sollte folgen. Passiert das nicht, ist der Server zu tolerant konfiguriert. Wenn ich das richtig verstehe, sollten alle Produkte, deren Verfügbarkeitsdatum erreicht ist, aktiviert werden und das Verfügbarkeitsdatum gelöscht werden. Deshalb würde ich das wie folgt kürzen: tep_db_query('update ' . TABLE_PRODUCTS . ' set products_date_available = null, products_status = 1 where now() >= products_date_available');
  2. Upgrade auf PHP 5.6 und MySQL 5.6

    Das sollte die eigentliche Version sein: define('PROJECT_VERSION', 'osCommerce 2.2-MS2'); Es gibt kein Update im eigentlichen Sinne. Also nicht klick und warten bis fertig. In den allermeisten Fällen wurden die Scripte umfangreich modifiziert und individualisiert. Im Download von 2.3 usw. findest Du meist eine Textdatei, in der die Änderungen dokumentiert sind. Diese musst Du einarbeiten. Besser wäre es freilich gewesen, die Modifikationen zeitnahe zur Veröffentlichung vorzunehmen. Es gab in der Geschichte von PHP diverse Stufen, die eine Anpassung der Scripte erforderlich machten. PHP5.6 ist da ein solcher, der sicher ein k.o. bei Nichtumsetzung bedeutet.
  3. Umstellung auf PHP 5.6

    Hast Du die Abfrage aus der Funktion mal in PHPMyAdmin getestet, ob sie wirklich ein Ergebnis bringt?
  4. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    $featured_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, s.status as specstat, s.specials_new_products_price, p.products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_FEATURED . " f on p2c.products_id = f.products_id, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . $featured_products_category_id . "' and p.products_status = '1' and f.status = '1' order by rand() DESC limit " . MAX_DISPLAY_FEATURED_PRODUCTS); Nur die zweite Abfrage ist betroffen.
  5. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    Dann poste bitte hier in einem CODE-Container die komplette Zeile in ursprünglicher Form, wo das "$featured_products_query = tep_db_query(" drin steht.
  6. Umstellung auf PHP 5.6

    PHP5.6 setzt auf diverse Konfigurationswerte, die vorher optional möglich waren, jetzt aber obligatorisch wurden. Die meisten Probleme werden zwar mit Fehlermeldungen quittiert, diese müssen aber auch in der php.ini zugelassen sein (display_errors = On) Durch den Wechsel auf utf-8 als Standard, müssen ALLE Funktionen, denen die Kodierung als Parameter übergeben werden kann diese auch übergeben werden, wenn es NICHT iso-8859-1 ist, was früher mal Standard war. Das betrifft zum Beispiel htmlspecialchars(), htmlentities() etc.pp. Diese Funktionen brechen Ihre Arbeit zum Beispiel am ersten unzulässigen Zeichen ab. Fehlermeldung? Fehlanzeige! Wahrscheinlich dürfte auch die Umstellung auf mysqli erforderlich sein. Wohl dem, der die Änderungen in der Versionshistorie von PHP seit Erscheinen von osCommerce 2.x konsequent nachgepflegt hat. Den dürfte da nichts überraschen.
  7. Paypal IPN klappt nicht

    Ja. Paypal meckert über die übergebenen Daten. Diese solltest Du prüfen.
  8. Die Versandart wird standardmäßig nicht im Auftrag vermerkt. Lediglich der Text (sprachspezifisch) bei den Versandkosten könnte darüber Aufschluss geben. Du müsstest also bei den totals nach ot_shipping schauen. Etwas einfacher wäre es, die Klassenbezeichner (unabhängig von der Sprache) von Versand und Bezahlung in den Auftrag zu übernehmen.
  9. Die Optionen und Werte bekommen IDs und diese werden den Produkten (products_id) zugeordnet. Wahrscheinlich musst Du Dein csv zweimal durchgehen. Bei ersten mal werden alle Optionen und Werte angelegt und bei zweiten mal den Produkten zugeordnet.
  10. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    Wieso einfügen? Umschreiben!
  11. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    Schau Dir bitte die zweite und dritte Zeilen HINTER "from" richt genau an.
  12. Benutzereingabefelder bei Bestellung

    Wenn diese zusätzlichen Angaben mit der Bestellung übertragen (gespeichert) werden sollen, sind sie wahrscheinlich auch im Warenkorb zu speichern. Der Warenkorb wird bei osCommerce in der Session gespeichert. Dabei werden nur Produkt-ID, Menge und gegebenenfalls die Attribute gesichert. Überall, wo der Warenkorb seinen Inhalt offenbaren soll (Warenkorbseite, Bestellaufgabe), muss er die weiteren Details jeweils aus der Datenbank abrufen können. Wahrscheinlich muss der Kunde auf der Seite, wo er den Artikel in den Warenkorb legen soll, entsprechende Eingabefelder haben und die Daten werden zusätzlich im Warenkorb gespeichert und letztendlich an den Auftrag übergeben. Da gab es auch mal eine Contribution, mit Hilfe der man bei den Attributen nicht nur vorbestimmte Werte wählen kann, sondern Eingabefelder für den Kunden präsentiert. Vielleicht ist das etwas für Dich.
  13. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    Alt: select distinct p.products_id, p.products_image, p.products_tax_class_id, s.status as specstat, s.specials_new_products_price, p.products_price from products p left join specials s on p.products_id = s.products_id, products_to_categories p2c, categories c left join featured f on p.products_id = f.products_id where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '243' and p.products_status = '1' and f.status = '1' order by rand() DESC limit 12 Neu: select distinct p.products_id, p.products_image, p.products_tax_class_id, s.status as specstat, s.specials_new_products_price, p.products_price from products p left join specials s on p.products_id = s.products_id, products_to_categories p2c left join featured f on p2c.products_id = f.products_id , categories c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '243' and p.products_status = '1' and f.status = '1' order by rand() DESC limit 12 Du musst es nur noch in den PHP-Code einbauen.
  14. OSC 2.2-MS2 von MYSQL4 auf MYSQL5 bringen

    Schau mal: includes/modules/featured_products.php
  15. Umlaute mal wieder

    1. Kollation ist die Handhabung der Sortierung. Hat also nichts mit der Zeichenkodierung zu tun. Ich gehe mal davon aus, dass Du MySQL5 benutzt. Die interne Kodierung ist stets utf8. Interessant wird es bei der Kodierung der Verbindung. Wenn Deine PHP-Anwendung ebenfalls utf-8 ausgeben soll, wäre es das einfachste, bei der Verbindung auf diese Kodierung zu setzen (hier für osCommerce mit mysqli): $$link = mysqli_connect($server, $username, $password, $database); if (mysqli_connect_errno()==0) { mysqli_set_charset($$link, 'utf8'); } vor dem Beginn der Ausgabe sollte zur Sicherheit noch ein Header gesendet werden: header('Content-Type: text/html; Charset=' . CHARSET, true); Wenn dann alle Zeichen korrekt kodiert ausgegeben werden, klappt es mit dem Browser. Ob dieser die richtige Kodierung erkannt hat, kann man sich anzeigen lassen: Alt -> Anzeige -> (Text)kodierung Problematisch kann aber durchaus die Funktion strftime() sein, weil dort iso-kodierte Strings zurückgegeben werden. Eventuell muss dort ein Filter installiert werden, der gegebenenfalls utf8_encode() ausführt. Soweit die Ausgabe. Wenn Du fremde Daten importieren willst, die in iso-8859-1 kodiert sind, bleibt Dir nichts weiter übrig, als diese vorher umzuwandeln oder zumindest bei der Verbindungsaufnahme zur Datenbank die Kodierung auf eine auf dem Datenbankserver verfügbare latin-Kodierung umzuschalten. Ansonsten sind die Daten vergriesgnaddelt in der Datenbank abgelegt.