Guest skalar1 Posted June 6, 2004 Report Share Posted June 6, 2004 Guten Abend, XTC Gemeinde, folgendes Problem: 3 Artikelkategorien, in der untersten erscheinen alle Artikel, in der Auswahlbox kann man jetzt nach Hersteller w?hlen, so dass nur die Artikel dieser Kategorie dieses Herstellers erscheinen, w?hlt (klickt) man jetzt auf den Hersteller landet man allerdings in der ?bergeordneten Kategorie und es werden alle neuen Artikel (box neue Produkte dieser Kategorie gelistet. In den Artikeln ist der Hersteller nat?rlich hinterlegt, beginne ich die Art.-Auswahl nach Hersteller kann ich auch perfekt ?ber die dann erscheinende Kategorienbox ausw?hlen. Woran kann denn das liegen? Leider ist der Shop noch nicht online - erst ab Ende kommender Woche. Ich schwanke noch zwischen bytecamp und fairhost24, wen w?rdet Ihr empfehlen? freundliche Gr??e Olaf Methling Vers. XT-Commerce v2.0 RC1.2 Release Datum: 26.04.2004 Link to comment Share on other sites More sharing options...
khan_thep Posted June 6, 2004 Report Share Posted June 6, 2004 Hallo Olaf, die Hersteller-Box ist genauso programmiert, wie Du es beschreibst. Gehe in den Adminbereich und aktiviere unter Konfiguration/produktlisten-optionen die Anzeige der Sortierungsfilter, indem Du den Wert auf 1 setzt (irgendwas ganzzahliges gr??er null). Du erh?lst dann in den product_listings einen weiteren Filter als Dropdown, der genau das macht, was Du m?chtest. Alternativ kannst Du in die Abfrage der Herstellerbox den SQL-Query um den aktuellen cPath erweitern. Viele Gr??e Chris Link to comment Share on other sites More sharing options...
Guest skalar1 Posted June 7, 2004 Report Share Posted June 7, 2004 Guten Morgen Gehe in den Adminbereich und aktiviere unter Konfiguration/produktlisten-optionen die Anzeige der Sortierungsfilter, indem Du den Wert auf 1 setzt (irgendwas ganzzahliges gr??er null). Der Filter, wie beschrieben ist ja da, dh die Auswahlbox in dem Fall nach Hersteller erscheint. Ich habe den Fehler eingegrenzt: - navigiere ich in die unterste Kategorie ?ber die mittlere Kategorienauswahl (Standardtemplate) funktioniert die Auswahl nach Hersteller. - navigiere ich allerdings ?ber die linke Kategorienbox, erscheint auch die Auswahl nach Hersteller, allerdings springt dann die Anzeige eine Kategorie zur?ck und die linke Kategorienbox zeigt die oberste Ebene der Kategorien. Gr??e Olaf Link to comment Share on other sites More sharing options...
khan_thep Posted June 7, 2004 Report Share Posted June 7, 2004 Nur damit wir uns nicht falsch verstehen, es gibt sogesehen ZWEI 'Filter': 1. Die Hersteller-Box 2. ein dyn. Drop-Down in der Produktliste (aktivierbar s.o. configuration_id = 130) 1. wirft ALLE Produkte EINES Herstellers aus und deshalb f?llt die linke Kategorien-Box auf die oberste Ebene zur?ck. 2. sollte Dir die gew?nschte Funktion bieten: alle Artikel eines Herstellers in EINER bestimmten Kategorie Was meinst Du mit: "navigiere ich in die unterste Kategorie ?ber die mittlere Kategorienauswahl (Standardtemplate) funktioniert die Auswahl nach Hersteller". Wie filterst Du in diesem Fall nach Hersteller? Also nur ?ber die Navigation an sich, oder ?ber eine Box? Kann man sich das online mal ansehen? Link to comment Share on other sites More sharing options...
Guest skalar1 Posted June 9, 2004 Report Share Posted June 9, 2004 so, ich habe das Ganze jetzt mal Online gestellt, vielleicht hat jemand eine L?sung. Hier der Link kurz noch einmal das Problem: Artikel ?ber die Kategorienauswahlbox links bis in die unterste Ebene ausw?hlen und dann ?ber die in der Mitte erscheinende Herstellerbox sortieren, dann sollten doch eigentlich nur Artikel des ausgew?hlten Herstellers erscheinen - so ist das jedenfalls bei anderen Shops, aber leider nicht bei mir. :grml: Gr??e Olaf Link to comment Share on other sites More sharing options...
khan_thep Posted June 13, 2004 Report Share Posted June 13, 2004 issn BUG in der includes/modules/metatags.php ?ndere die markierten Codezeilen und es l?uft. <?php /* ----------------------------------------------------------------------------------------- $Id: metatags.php,v 1.8 2004/04/26 10:31:17 fanta2k Exp $ XT-Commerce - community made shopping [URL=http://www.xt-commerce.com]http://www.xt-commerce.com[/URL] Copyright ? 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: ? 2003 nextcommerce (metatags.php,v 1.7 2003/08/14); [url]www.nextcommerce.org[/url] Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ ?> <meta name="robots" content="<?php echo META_ROBOTS; ?>"> <meta name="language" content="<?php echo $language; ?>"> <meta name="author" content="<?php echo META_AUTHOR; ?>"> <meta name="publisher" content="<?php echo META_PUBLISHER; ?>"> <meta name="company" content="<?php echo META_COMPANY; ?>"> <meta name="page-topic" content="<?php echo META_TOPIC; ?>"> <meta name="reply-to" content="<?php echo META_REPLY_TO; ?>"> <meta name="distribution" content="global"> <meta name="revisit-after" content="<?php echo META_REVISIT_AFTER; ?>"> <?php if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO)) { $product_meta_query = xtc_db_query("select pd.products_name,p.products_model,pd.products_meta_title,pd.products_meta_description , pd.products_meta_keywords,pd.products_meta_title from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'"); $product_meta = xtc_db_fetch_array($product_meta_query); ?> <META NAME="description" CONTENT="<?php echo $product_meta['products_meta_description']; ?>"> <META NAME="keywords" CONTENT="<?php echo $product_meta['products_meta_keywords']; ?>"> <title><?php echo TITLE.' - '.$product_meta['products_meta_title'].' '.$product_meta['products_name'].' '.$product_meta['products_model']; ?></title> <?php } else { if ($_GET['cPath']) { if (strpos($_GET['cPath'],'_')=='1') { $arr=explode('_',$_GET['cPath']); $_cPath=$arr[1]; // **************** <#$cPath durch $_cPath ersetzen } $categories_meta_query=xtc_db_query("SELECT categories_meta_keywords, categories_meta_description, categories_meta_title, categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='".$_cPath."' and // **************** <#$cPath durch $_cPath ersetzen language_id='".$_SESSION['languages_id']."'"); $categories_meta = xtc_db_fetch_array($categories_meta_query); if ($categories_meta['categories_meta_keywords']=='') { $categories_meta['categories_meta_keywords']=META_KEYWORDS; } if ($categories_meta['categories_meta_description']=='') { $categories_meta['categories_meta_description']=META_DESCRIPTION; } if ($categories_meta['categories_meta_title']=='') { $categories_meta['categories_meta_title']=$categories_meta['categories_name']; } ?> <META NAME="description" CONTENT="<?php echo $categories_meta['categories_meta_description']; ?>"> <META NAME="keywords" CONTENT="<?php echo $categories_meta['categories_meta_keywords']; ?>"> <title><?php echo TITLE.' - '.$categories_meta['categories_meta_title']; ?></title> <?php } else { ?> <META NAME="description" CONTENT="<?php echo META_DESCRIPTION; ?>"> <META NAME="keywords" CONTENT="<?php echo META_KEYWORDS; ?>"> <title><?php echo TITLE; ?></title> <?php } } ?> Wenigstens ?berschreibt die RC1.2 nicht mehr gleich die $_GET['cPath '], wie seinerzeit die BETA2. Link to comment Share on other sites More sharing options...
khan_thep Posted June 13, 2004 Report Share Posted June 13, 2004 Link to comment Share on other sites More sharing options...
khan_thep Posted June 13, 2004 Report Share Posted June 13, 2004 Sodele, wo wir schon dabei sind, nochmal ein kleiner BUGFIX. Durch die $cPath=$arr[1]; Werden falsche Metatags und Seitentitel generiert. Hier der bereinigte Code. Ersetze Deine includes/modules/metatags.php durch folgenden Code: <?php /* ----------------------------------------------------------------------------------------- $Id: metatags.php,v 1.8 2004/04/26 10:31:17 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright © 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: © 2003 nextcommerce (metatags.php,v 1.7 2003/08/14); www.nextcommerce.org Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ ?> <meta name="robots" content="<?php echo META_ROBOTS; ?>"> <meta name="language" content="<?php echo $language; ?>"> <meta name="author" content="<?php echo META_AUTHOR; ?>"> <meta name="publisher" content="<?php echo META_PUBLISHER; ?>"> <meta name="company" content="<?php echo META_COMPANY; ?>"> <meta name="page-topic" content="<?php echo META_TOPIC; ?>"> <meta name="reply-to" content="<?php echo META_REPLY_TO; ?>"> <meta name="distribution" content="global"> <meta name="revisit-after" content="<?php echo META_REVISIT_AFTER; ?>"> <?php if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO)) { $product_meta_query = xtc_db_query("select pd.products_name,p.products_model,pd.products_meta_title,pd.products_meta_description , pd.products_meta_keywords,pd.products_meta_title from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'"); $product_meta = xtc_db_fetch_array($product_meta_query); ?> <META NAME="description" CONTENT="<?php echo $product_meta['products_meta_description']; ?>"> <META NAME="keywords" CONTENT="<?php echo $product_meta['products_meta_keywords']; ?>"> <title><?php echo TITLE.' - '.$product_meta['products_meta_title'].' '.$product_meta['products_name'].' '.$product_meta['products_model']; ?></title> <?php } else { if ($_GET['cPath']) { if (strpos($_GET['cPath'],'_')) { $arr=explode('_',$_GET['cPath']); $metaID=$arr[sizeof($arr)-1]; } else $metaID=$_GET['cPath']; $categories_meta_query=xtc_db_query("SELECT categories_meta_keywords, categories_meta_description, categories_meta_title, categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='".$metaID."' and language_id='".$_SESSION['languages_id']."'"); $categories_meta = xtc_db_fetch_array($categories_meta_query); if ($categories_meta['categories_meta_keywords']=='') { $categories_meta['categories_meta_keywords']=META_KEYWORDS; } if ($categories_meta['categories_meta_description']=='') { $categories_meta['categories_meta_description']=META_DESCRIPTION; } if ($categories_meta['categories_meta_title']=='') { $categories_meta['categories_meta_title']=$categories_meta['categories_name']; } ?> <META NAME="description" CONTENT="<?php echo $categories_meta['categories_meta_description']; ?>"> <META NAME="keywords" CONTENT="<?php echo $categories_meta['categories_meta_keywords']; ?>"> <title><?php echo TITLE.' - '.$categories_meta['categories_meta_title']; ?></title> <?php } else { ?> <META NAME="description" CONTENT="<?php echo META_DESCRIPTION; ?>"> <META NAME="keywords" CONTENT="<?php echo META_KEYWORDS; ?>"> <title><?php echo TITLE; ?></title> <?php } } ?> Link to comment Share on other sites More sharing options...
Guest skalar1 Posted June 14, 2004 Report Share Posted June 14, 2004 Vielen Dank an khan_thep Dank Deiner schnellen Hilfe ist das Problem gel?st. Gru? Olaf Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Hat mich gewundert, da? der Fehler in der RC1.2 noch nicht gefixt ist. Ich schreibs in den BUGTRACKER. Link to comment Share on other sites More sharing options...
mzanier Posted June 14, 2004 Report Share Posted June 14, 2004 if (strpos($_GET['cPath'],'_')) { $arr=explode('_',$_GET['cPath']); $metaID=(int)$arr[sizeof($arr)-1]; } else $metaID=(int)$_GET['cPath']; Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Typecasting?!? Aber bitte, auch gerne mit int() Link to comment Share on other sites More sharing options...
mzanier Posted June 14, 2004 Report Share Posted June 14, 2004 nein. mit (int)$variable ist schon richtig. int($variable) gibs nicht. Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Ja klar, sorry (int). Aber Du hast im SQL-Query eh ein automatische Casting. Super, da? zwischen Eintrag in Bugtracker und Erledigt 2 Min. vergehen. Link to comment Share on other sites More sharing options...
mzanier Posted June 14, 2004 Report Share Posted June 14, 2004 es geht hier nicht um typecasting, sondern SQL injection zu verhindern. Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Wow, Du hast recht! Genial. Ich schreibs mir hinter die L?ffel. Da aber die IF_ELSE eh beidesmal $metaID initialisiert. ABER - MZANIER HAT RECHT!!!!!!!!!!!!!!!!!!!!!! Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 und ich schon wieder unrecht: cPath=22_wget... =SQL-Injection Na dann mal mantau, da? das gefixt ist. Link to comment Share on other sites More sharing options...
Guest HHGAG Posted June 14, 2004 Report Share Posted June 14, 2004 ich glaube beim experementieren habt ihr ne } unterschlagen if ($_GET['cPath']) { if (strpos($_GET['cPath'],'_')) { ? ? ?$arr=explode('_',$_GET['cPath']); ?$metaID=(int)$arr[sizeof($arr)-1]; ?} else $metaID=(int)$_GET['cPath']; } <--#DER WURDE BEI KHAN_THEP unterschlagen sollte es richtig sein Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Mensch HHGAG: Zanier'sche Regel beachten! Nix unterschlagus! Link to comment Share on other sites More sharing options...
Guest skalar1 Posted June 14, 2004 Report Share Posted June 14, 2004 Hallo, erst einmal ...... if ($_GET['cPath']) { if (strpos($_GET['cPath'],'_')) { $arr=explode('_',$_GET['cPath']); $metaID=(int)$arr[sizeof($arr)-1]; } else $metaID=(int)$_GET['cPath']; } <--#DER WURDE BEI KHAN_THEP unterschlagen setze ich den "unterschlagenen" erhalte ich ein: Parse error: parse error in /modules/metatags.php on line 63 ... ohne funktioniert, ich hoffe richtig Gru? Olaf Link to comment Share on other sites More sharing options...
Guest HHGAG Posted June 14, 2004 Report Share Posted June 14, 2004 Ja ist richtig. Hatte mich beim Klammern z?hlen vertan Link to comment Share on other sites More sharing options...
khan_thep Posted June 14, 2004 Report Share Posted June 14, 2004 Zusammen bekommen wir das schon hin!!!!!!!!!!!!!!!!!! :z: Wichtig ist doch nur, da? die User bestehender Shops die metatags.php jetzt updaten. Ich meine, die alte l?scht nicht nur partiell den wichtigen $cPath, was Folgefehler wie von skalar1 beschrieben nach sich zieht. Es werden ja auch Seitentitel und Metatags falsch generiert bwz. nicht im Sinne des Erfinders ausgegeben. Die oben besprochene (int) Problematik, die ein Sicherheitsloch bedeutet ist ja in der bisherigen Version nicht gefixt. Also: updaten! Link to comment Share on other sites More sharing options...
mzanier Posted June 14, 2004 Report Share Posted June 14, 2004 die int problematik is nicht so schlimm, bei der query kann man nix anrichten. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.