- Mikrotik routerek
- Letartóztatták, mert AI segítségével csalt az egyetemi vizsgán
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Aliexpress tapasztalatok
- Újabb államok perelik az Apple-t, mert sok pénzt szed ki a vevőkből
- Linux kezdőknek
- Musk meggondolta magát, mégsem pereli az OpenAI-t
- Csinált valamit a Nokia: megváltoznak a telefonhívások
- Vírusirtó topic
- A call centerekbe viszi az AI-t a Microsoft
Új hozzászólás Aktív témák
-
válasz instantwater #20151 üzenetére
Az adat 1-2MB, vagy több, jobb azt szerveroldalon feldolgozni
Amúgy diagramokat jól fel lehetne dobni X3DOM -al, de azt majd egyszer.Mutogatni való hater díszpinty
-
pelyib
tag
De akkor a frontend azt mondja meg, h mekkora meretben keri a kepet, ne azt, h mekkora a screen size.
Amugy FE cookie-ban lerakja, h mekkora meretet tamogat, amit a kovetkezo requestnel a bongeszo elkuld a backend-nek, ha cookie nincs, akkor meg valami default meretben general. -
-
radi8tor
MODERÁTOR
Help me!
Átköltözött a webshop magasabb PHP verzióra: 7.3.22
Előjött két ilyen dolog az error logban:
PHP Warning: count(): Parameter must be an array or an object that implements Countable in ...path_manager.php on line 49
PHP Warning: count(): Parameter must be an array or an object that implements Countable in ...Core.php on line 1266Az első hivatkozott sor ez lenne:
if (count($banned_cats) && (count($categories) > 1)) {A második pedig ez:
return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);Guglival találtam egy ilyen megoldást (meg csomó másikat is), de nekem kevés a tudásom hogy ezt implementáljam:
Replace the line:
if (count($parentPathPieces) == 1) {
with the following one:
if ($parentPathPieces && count($parentPathPieces) == 1) {Tudnátok segíteni mire írjam át az én soraimat?
[ Szerkesztve ]
⭐ Stella
-
sztanozs
veterán
válasz radi8tor #20156 üzenetére
első:
if $banned_cats && $categories && (count($banned_cats) && (count($categories) > 1)) {
második (talán):
return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : $thing ? count($thing) : 0
de ha mindig array, akkor figyelmen kívül hagyhatod a warningot.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
nevemfel
senior tag
válasz sztanozs #20157 üzenetére
de ha mindig array, akkor figyelmen kívül hagyhatod a warningot.
Nem lehet mindig array. Ha az lenne, nem lennének a warningok.
Feltételezem, hogy a változók nem is léteznek, ha amúgy nem lenne tömbelemük, úgyhogy így látatlanban, hogy nem tudjuk, milyen típusú változók, én isset vizsgálattal fejelném meg a feltételvizsgálatokat.
Rally against apathy draws small crowd
-
pelyib
tag
válasz radi8tor #20156 üzenetére
is_countable lesz az embered
if (
is_countable($banned_cats)
&& is_countable($categories) // jo lenne tudni melyik, mert ezzel csak elrejtjuk a hibat
&& count($banned_cats)
&& (count($categories) > 1)
) {
// do you job
}return is_scalar($thing)
? mb_strlen($thing, $env->getCharset())
: is_countable($thing)
? count($thing)
: 0;[ Szerkesztve ]
-
-
radi8tor
MODERÁTOR
válasz pelyib #20160 üzenetére
Köszi szépen, ez valóban eltüntette a warningokat.
És igen, más nem volt körülötte csak ez a két warning szemetelte tele az error logot mióta PHP ver 7.3.22 lett az oldal alatt.Amúgy ez a teljes kódrészlet arról a területről, hátha látod benne a választ a kérdésedre:
$path = array();
$categories = $this->db->query("SELECT c.category_id, c.parent_id FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "category c ON (p2c.category_id = c.category_id) WHERE product_id = '" . (int)$product_id . "'")->rows;
foreach($categories as $key => $category) {
$path[$key] = '';
if (!$category) continue;
$path[$key] = $category['category_id'];
while (!empty($category['parent_id'])) {
$path[$key] = $category['parent_id'] . '_' . $path[$key];
$category = $this->db->query("SELECT category_id, parent_id FROM " . DB_PREFIX . "category WHERE category_id = '" . $category['parent_id']. "'")->row;
}
$path[$key] = $path[$key];
$banned_cats = $this->config->get('full_product_path_categories');
if (
is_countable($banned_cats)
&& is_countable($categories) // jo lenne tudni melyik, mert ezzel csak elrejtjuk a hibat
&& count($banned_cats)
&& (count($categories) > 1)
) {
if (in_array($path[$key], $banned_cats)) {
unset($path[$key]);
} else if (preg_match('#[_=](\d+)$#', $path[$key], $cat)) {
if (in_array($cat[1], $banned_cats)) {
unset($path[$key]);
}
}
}
[ Szerkesztve ]
⭐ Stella
-
bhonti
tag
Már épp kezdtem csodálkozni milyen tiltott macskák lehetnek
http://1kis.info.hu - Informatikus mindenkinek... 501065096 balazs@honti.tech
-
pelyib
tag
válasz radi8tor #20171 üzenetére
Ha eleg, h nincs tobb warning akkor tenyleg kesz vagy.
Ha meg erdekel, h jobban akkor vedd elo a forraskodot, nezd meg a get() methodot, h milyen bejovo parameterei vannak.
Amirol en beszelek az ilyesmi logikat kovetne:function get($key, $default) {
return isset($configs[$key])
? $configs[$key]
: $default;
} -
instantwater
addikt
Milyen PHP verzió volt korábban?
Tippre 7.1, mert ez a változás a countban a 7.2 verzióval került be: [link]Röviden a lényeg, hogy a változó csak array vagy olyan object lehet ami implementálja a Countable interfészt.
Tehát se string, se integer, se null, semmi más.
Sajnos a korábbi verziókon futó rendszerekben elég népszerű volt a count használata random dolgokra és működött mert hibás viselkedés volt implementálva a futattókörnyezetben. Régebbi PHP verziókban ez jellemző.
Ráadásként mivel a PHP dinamikus nyelv, és a fejlesztők előszeretettel hagyják ki a típusdefiníciókat, így még statikus analízissel sem lehet megtalálni ezeket a hibákat, csak futásidőben ugranak elő.
Persze tesztek írásával is meg lehet találni ezeket, de PHPben senki nem ír tesztet sajnos.Ez milyen rendszer?
Teljesen egyedi, vagy valami kész framework?
Tudod frissíteni a frameworkot? Vagy ez a saját kód a frameworkon felül?[ Szerkesztve ]
-
radi8tor
MODERÁTOR
válasz nevemfel #20173 üzenetére
Én eléggé analfabéta vagyok PHP-ből
Ez lehet nem az amire gondoltál, de eddig tart a tudományom:
<?php
$banned_cats = $this->config->get('full_product_path_categories');
echo var_dump($banned_cats) . "<br>"; ?>Nem ír ki semmit.
Mit kéne beírnom?[ Szerkesztve ]
⭐ Stella
-
radi8tor
MODERÁTOR
válasz instantwater #20174 üzenetére
Opencart 3.0.2.0, de nem szeretném ilyen apróság miatt frissíteni mert azzal magamat szívatnám a sok egyedi kiegészítő inkompatibilitás és azok frissítése miatt is.
[ Szerkesztve ]
⭐ Stella
-
instantwater
addikt
válasz radi8tor #20176 üzenetére
Értem.
Viszont ezzel azt kockáztazod, hogy jövőre darabjaira hullik a rendszer amikor a szervert 7.4re frissíted.PHP verziók életciklusa: [link]
A 7.3 támogatása kicsit több mint 1 hónap múlva megszűnik, és csak biztonsági frissítéseket fog kapni még egy évig.
Tehát legkésőbb jövő ilyenkor lesz egy nagyon erős fejfájásod a 7.4 miatt.
Ha nem lehet frissíteni a frameworkot ami a te esetedben az OpenCart akkor fennáll a veszélye, hogy a 7.4-en még jobban széthullik, és még többet kell majd hackelned.
Ha van ráhatásod a szervere, akkor egyenesen 7.4-re frissítenék. Ha nincs, akkor részvétem az üzemeltetőd miatt aki a support vége előtt 1 hónappal aktiválja a verziót.
Az már csak hab a tortán, hogy a korábbi 7.1-hez már 1 éve biztonsági frissítés sem volt, és az aktív támogatása is lejárt 2 éve.Ezzel a sebességgel a 7.4-es problémák is majd csak 2 év múlva fognak előjönni. Ha addig meg nem hackelik a rendszered egy OpenCart vagy PHP rés kihasználásával.
Tartsd szárazon a puskaport és legalább adatbázis mentésed legyen.
[ Szerkesztve ]
-
radi8tor
MODERÁTOR
válasz instantwater #20177 üzenetére
Nem most lett frissítve a szerver hanem gyorsabb tárhelyre lett költöztetve az oldal és ehhez kapcsolódóan más a PHP verzió.
Ha nagyon muszáj tudok frissíteni de egy ilyen apróság miatt ezt nem tenném meg.
Amúgy ez amit most reszelünk nem az alaprendszer része, hanem egy path manager kiegészítőé.
Adatbázis és fájl mentés naponta készül, szóval általában nyugodtan alszom.[ Szerkesztve ]
⭐ Stella
-
nevemfel
senior tag
válasz radi8tor #20178 üzenetére
Ha ez nem saját program, akkor lehetőség szerint ne nyúlj bele a kódba, mert ha esetleg a jövőben frissítenétek ezt a plugint, akkor a módosítások felülíródnak. Inkább állítsd be valahogy ezt a config paramétert, hogy egy üres tömb legyen a tartalma.
Nem ismerem sem az Opencartot, sem ezt a plugint, úgyhogy nem tudom, hogyan lehet ennek a pluginnek paramétereit beállítani, szóval konkrétumokkal nem tudok szolgálni, mindenesetre azt kell elérni, hogy a
full_product_path_categories
létezzen, de üres tömb legyen.Rally against apathy draws small crowd
-
pelyib
tag
válasz radi8tor #20176 üzenetére
Nezd meg, h az a $this->config az valoban ez a class e: https://github.com/opencart/opencart/blob/master/upload/system/engine/config.php
Ha igen, akkor a has() methoddal ra tudsz vizsgalni:
$banned_cats = $this->config->has('full_product_path_categories')
? $this->config->get('full_product_path_categories')
: [];
[ Szerkesztve ]
-
radi8tor
MODERÁTOR
válasz pelyib #20181 üzenetére
Nekem elemi szinten mondd el mit csináljak.
Csináltam egy php file-t ezt raktam bele,<?php
$banned_cats = $this->config->has('full_product_path_categories')
? $this->config->get('full_product_path_categories')
: []; ?>
Ha megnyitom ezt a file-t akkor nem ír ki semmit, nincs a logban semmi.Még egyszer köszi hogy próbáltok segíteni, de én nem igazán tudom hogyan lehet vizsgálódni.
⭐ Stella
-
nevemfel
senior tag
válasz radi8tor #20182 üzenetére
Nekem elemi szinten mondd el mit csináljak.
Az eredeti kódban ennek a helyére:
$banned_cats = $this->config->get('full_product_path_categories');
Ezt tedd be:$banned_cats = $this->config->has('full_product_path_categories')
? $this->config->get('full_product_path_categories')
: [];Rally against apathy draws small crowd
-
PiXeL90
csendes tag
Sziasztok!
Egy olyan kérdésem lenne hogy hogyan tudok php-ban soap xml kérést küldeni? Elég simplexml-el vagy használnom kell a SoapClientet?
A kérésnek így kell kinéznie:
XML
Válaszokat előre is köszönöm! -
coco2
őstag
válasz PiXeL90 #20187 üzenetére
Pph alatt van soap client, de ami magát a soap-ot illeti, csak akkor lesz problémáktól mentes a gyakorlatban, ha szerver és kliens oldalon is ugyan azt a libet használod. Ha a másik szerver nem a php soap libjét használja, kompatibilitási szitukba futhatsz bele.
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
coco2
őstag
Karakter set kérdésben szeretnék segítséget kérni.
Json-öket küldözgetnék php - javascript között oda-vissza xhr-el. A binárisokat/stringeket base64-elem, a többi mezei numerikus adat (automatán text konverziót kapnak). Escapelnem kell a kész json stringet, vagy nyugodtan alhatok anélkül is?
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
Mike
veterán
Sziasztok
A következő a problémám: a php totálisan figyelmen kivül hagyja a ini_set-ben beállított lokális értékeket. pl. display_error, de lehet futási idő, memória, ugyanez a jelenség. a phpinfo szerint a display_error lokálisan on, ám master off, és nem is jelenít meg egyetlen hibát sem a felületen (a logban persze igen, szóval nincs az error reporting kikapcsolva).
a php.ini-ben kell valamit állítanom, hogy figyelembe vegye a lokális értékeket? -
Mike
veterán
ezzel nem teljesen értem, mit érek el, nem sikerül az érték beállítása? vagy mire gondolsz?
akkor legyen konkrétabb
php.ini-ben
display_errors: Offlokalisan a file-ban
error_reporting(1);
ini_set('display_errors', 1);phpinfo szerint: local On, Master: off
semmilyen hibát nem ír ki a felületre ezek után sem
-
coco2
őstag
Akkor folytassuk pld így:
if (ini_set($var_name,$new_value)===FALSE) var_dump(error_get_last());
Kinyiszálod teljesen külön php lapra a beállításokat abban a környezetben, és írogatsz kifele eredményt. Valamit csak írni fog rá, hogy miért "nem".
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
Gergello
addikt
Sziasztok !
A következő jelenségre lettem figyelmes, hátha találkozott már valaki vele.
PHP programkódból küldök ki leveleket egy webshop alkalmazásban (regisztráció visszaigazolása, stb.) főként a saját gmail.com-os email címemmel teszteltem a leveleket, ahol minden rendben volt.
Időnként megnézem másik email címekkel is.
Most regisztráltam egy új gmail.com-os email címet teszteléshez és ezt tapasztalom.
A kiküldött HTML levelekbe beágyazva küldök ki egy .jpg kiterjesztésű email fejlécet, ami a saját régóta használt gmail.com-os email címemnél nem jelenik meg csatolmányként az új teszt email címnél viszont igen.Beszúrok egy képet, hogy lássátok:
Megerősítené valaki, hogy ez a gmail.com egy új sajátossága vagy valamilyen programozási hiba ? Köszönöm !
A levelek kiküldésére a PHPMailer 5.2.9-es verzióját használom.
Programkód:
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->SetFrom($config_email, $config_name);
$mail->AddReplyTo($config_email, $config_name);
$mail->AddAddress($email, $name);
$mail->Subject = $email_subject;
$mail->MsgHTML($email_body);
$mail->AddEmbeddedImage($image_path, $image_cid, $image_cid, 'base64', 'image/jpeg');
$result = $mail->Send();
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen