- Hálózatokról alaposan
- Xiaomi AX3600 WiFi 6 AIoT Router
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- Az iPadOS-re írt appokra is díjat vet ki az Apple
- Letartóztatták a bitcoin-Jézust
- ASUS routerek
- Asustor NAS
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- A pápa egyre jobban tart a romlott AI veszélyeitől
- Milyen program, ami...?
Új hozzászólás Aktív témák
-
Speeedfire
nagyúr
Jó de egy saját tárhely mégis csak praktikusabb. Van amire a docs-ot használom, de a legtöbb esetben egy ingyenes tárat. Raktam rá egy sima mappakezelőt és csókolom.
Mint pl itt. Nem nagy durranás, de megfelel.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
DeltaPower
őstag
Ezt az order-t én se értettem. Azt sem, hogy ha mindenképp year és month kell, akkor miért nem
select ..., year(1.date) as 1year ... order by 1year, ...
formában, szerintem gyorsabb mintha ordernél futtatná a dátumfüggvényeket.
Másik: SELECT *-ot csak az egyszerűség kedvéért van így, vagy tényleg minden mezőt lekérdez?"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
Sk8erPeter
nagyúr
Minek hidden mező és JS ehhez? Miért nem elég, ha csekkoljuk isset()-tel, hogy megvan-e egyáltalán a checkbox típusú input (name szerint)?
===
(#7789) meone:
"amit belinkeltél abban vannak kommentek nálam meg nincsenek. Ennyi a külöNbség."
... meg amit már mondtam párszor... A zárójeleket és a pontosvesszős lezárást még mindig lehagytad...Sk8erPeter
-
Sk8erPeter
nagyúr
Há' vágom én. De a többi elpostolt értékhez tartozó alkalmazáslogikába beletenni egy isset() vagy !empty() (ez úgyis lefedi az isset-et) ellenőrzést nem kerül semmibe. Ez az ellenőrzés úgysem árt, pl. mi van, ha valaki elpostol úgy adatokat, hogy belegányol a kódba kliensoldalon, kiszed elemeket belőle, Te meg a nem létező elemekre futtatsz mondjuk további vizsgálatokat - ezzel legalább az ilyen rosszindulatú szándék elé is teszel plusz egy szűrőt. (Félre ne érts, itt nem azt mondom, hogy ezzel kivédsz bármilyen támadást, vagy hasonló, de legalább plusz egy lépés afelé, hogy teljes körű ellenőrzésed legyen.)
Én is úgy vagyok vele manapság, hogy k@pja be, aki kikapcsolja a böngészőjében manapság a JavaScriptet, de azért még mindig gondolni kell erre az esetre is.Sk8erPeter
-
Sk8erPeter
nagyúr
"Kivéve ha automatizálni szeretnéd a form feldolgozását."
Na de ez még mindig nem mond ellent annak, amit írtam. Automatizáltan is ugyanúgy benne lehet az isset() VAGY !empty() ellenőrzés...A felhasználótól érkező információ megbízhatatlanságáról meg szerintem nem kell különösképpen tárgyalnunk, ez evidens... Nyilván kliensoldali ellenőrzés sehol nem vált ki semmiféle szerveroldali ellenőrzést, ezt mindketten tudjuk, nem is tartozik szorosan a témához.
Arról beszéltem, hogy az isset ellenőrzés azért sem hülyeség, mert kliensoldalon kiszedhet a formból a júzer elemeket, úgy postolja el, Te meg mondjuk ha nem nyomatsz egy isset() ellenőrzést, akkor lehet, hogy vizsgálod a POST tömb olyan indexét, ami nem is létezik, így kaphatsz egy notice-t.A JavaScript hiányával egyetértek, hogy manapság már nem érdemes foglalkozni, legfeljebb szerveroldali validálás szintjén. Mégsem értek egyet feltétlenül a checkbox hidden mezővel való kiegészítésének szükségességével, ez a lényeg.
Sk8erPeter
-
Speeedfire
nagyúr
Nem még nincs semmi script. Egyelőre csak agyalok a lehetőségeken.
Van olyasmire gondoltam, hogy lenne egy feliratkozási lista. id | uid | tid amit megnéz és így küldi el az adatokat. Az ajax csak a feldolgozó scriptet hívná meg, ami elintézne mindent.Na látom mindenki a cron-t írja, akkor az lesz.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Speeedfire
nagyúr
A timeot az változtatható, a másik 2 érdekesebb már.
De akkor cron-nál is kellene egy segéd tábla, ahova berakja az embereket akiknek levelet kell küldeni és mondjuk meg van adva, hogy fél óránként küld ki 100-at, vagy nem tudom, hogy a spam figyelők, hogy működnek.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
DeltaPower
őstag
Amit leírt, az egy elég jól skálázódó megoldás, userlétszám és értesítés-gyakoriság alapján jól tervezhető a kimenő emailek száma.
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
RootRulez
félisten
Nem vagyok nagy mágusa a nyelvnek, csak össze szoktam ollózgatni a dolgokat...
Azt megtaláltam, hogy $x=mt_rand(0,10);-el tudok majd véletlen számot generálni. Meg azt, hogy ezzel megy majd át másik oldalra: $new_location = 'akarmilyen-oldal-ami-ide-kerul';
header('Location: '.$new_location);txt megnyitása:
$myFile = "szoveg.txt";
$fh = fopen($myFile, 'r')
$theData = fread($fh, filesize($myFile));
fclose($fh);de a tudomány itt megáll... szal ezeket össze is kéne rakni...
[ Szerkesztve ]
═════════════════════════════════════════
-
Sk8erPeter
nagyúr
Ja igen, a relatív URL-ekben teljesen igazad van, az tényleg külön kezelést igényelne, most ezzel nem foglalkoztam.
De a nemzetközi domainekre miért ne menne? Konkrétan mikre gondolsz?Azóta milyen nyelven fejlesztgetsz?
===
(#10123) RootRulez : már a kérdésedet sem értem. Miért vinne át másik oldalra? Ez a függvény csak vár egy paramétert, amiről eldönti, hogy valid URL vagy sem. (De mint cucka írta, egyébként relatív URL-eket nem kezel.) Szóval olyan, mintha valakinek feltennél egy eldöntendő kérdést, igennel vagy nemmel válaszol (jobb esetben nem kussol, és nem is beszél mellé ).
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ja igen, az ékezetes domainnevek jogos, azt tényleg nem szűri ki, ilyenre is lehet találni különböző megoldásféleségeket a kommentek közt php.neten: [link], mondjuk érdemes tudni, hogy ilyeneket is validnak tekinti: [link]. Szóval tényleg egy elég gyenge szűrő, esetleg még vegyíteni lehetne a parse_url() függvénnyel is, meg némi egyedi megoldással, és akkor talán már egy egész korrekt függvényt lehetne összehozni vele az ellenőrzésre. Mondjuk meglep, hogy nincs még erre beépített PHP-s függvény.
"Teljesen véletlenül alakult így, php fejlesztőnek vettek fel, első héten derült ki, hogy a szoftver, amin dolgozni kell, az bizony python-ban van írva, nem php-ban."
Érdekes kis tévedés a munkáltató részéről.
Na, a Pythonról speciel semmi véleményem és tapasztalatom sincs, milyennek találod így 1 év távlatából a PHP-val összehasonlítva (már ha van értelme ilyen jellegű összehasonlítást végezni)?====
"Fejlesztés során rengeteg potenciális hibát lehet kiszűrni, ha teljesen be van kapcsolva a hibák kijelzése - érdemes a szkript elején E_ALL-ra állítani."
Inkább E_ALL | E_STRICT-re PHP 5.4.0 alatt. Ezzel kiszűrhetők a deprecated függvényhasználatok is, stb.[ Szerkesztve ]
Sk8erPeter
-
fordfairlane
veterán
Bocs, de nem értem. Nem arról van szó, hogy a keretrendszer valamit megcsinál helyettem, mert mi van akkor, ha nem csinálja meg, másrészt a futási idő szintén érthetetlen érvelés. Egyébként is a keretrendszer használhat singletont, én nem?
Van egy erőforrás, amiből egy van. Fájlrendszer, adatbázis kapcsolat, socket egy kiszolgáló felé, whatever. Ezt a valamit be akarod burkolni egy osztállyal. A Singleton egy "creational pattern", ami az egyszeri példányosítási funkciót belezárja az objektumba, tehát az alkalmazásnak nem kell ügyelnie, hogy ne hozzon létre fölöslegesen új példányt, ha futás során több heylen is hozzá akar férni ehhez az objektumhoz. Egy singleton objektum ugyanolyan kutyaközönséges objektumnak néz ki a guest kód számára, mint a példányosított. Miért baj ez?
[ Szerkesztve ]
x gon' give it to ya
-
RootRulez
félisten
Találtam egy ilyet, hogy
$kihagyando_sor = $link; // itt lesz a kihagyandó sor a korábbi véletlen szám
$megnyitando = fopen("linkek.txt", "w"); // megnyitó, írhatóan a fájlt
if ($megnyitando == NULL || $megnyitando == NULL)
print('Hiba történt a fájlok megnyitása közben.');
else
{ $sor = 0;
while (($karakter = fgetc($megnyitando)) !== false)
{ if ($karakter == "\n")
$sor = $sor + 1;
if ($sor != $kihagyando_sor)
fwrite($megnyitando, $karakter);
}
}
fflush($megnyitando);
fclose($megnyitando);Most épp minden sort kitöröl.
═════════════════════════════════════════
-
RootRulez
félisten
-
RootRulez
félisten
No, ez működik (miután kitöröltem a D:\-t), de notepaddal nincsenek új sorban (minden link egy sorban van). Notepad++-al viszont sorok vannak... Bár a sorok nem hatnak meg, csak addig kell, amíg feltöltöm a txt-t, a későbbiekben nem kavarhat be a PHP fájlnak az, hogy nincsenek sorokban a linkek?
═════════════════════════════════════════
-
RootRulez
félisten
Android program honosításnál találkoztam már ezzel a \n-el.
a "\n" és a "\r\n" helyett érdemesebb a php beépített PHP_EOL konstansát használni, ez a php-t futtató rendszernek megfelelő sorvége jelet tartalmazza.
Ez azt jelentené, hogy a
file_put_contents("linkek.txt", implode("\n", $linkek));
írjam át arra, hogy
file_put_contents("linkek.txt", implode(PHP_EOL, $linkek));
??
[ Szerkesztve ]
═════════════════════════════════════════
-
Sk8erPeter
nagyúr
Nem értem, miért ragaszkodsz ehhez a
function isUrl($val){ return $val != ''; }
függvényhez... Nem kicsit megtévesztő a függvény neve, mert az ember azt gondolná, itt valós ellenőrzés történik arra, hogy URL-ről van-e szó, miközben csak azt ellenőrzöd, empty stringről van-e szó... akkor már inkább legyen isEmptyString a függvény neve, vagy készítsd el rendesen a függvényt.
Most csak azért köcsögösködöm, mert épp tanítasz valakit a helyes kódolásra, akkor mutass neki jó példát, meg tőled nem ilyen béna függvényeket vár az ember.[ Szerkesztve ]
Sk8erPeter
-
papa019
senior tag
Olyat esetleg nem lehet csinálni, hogy betesz egy ehhez hasonló elemet addig, amíg a művelet fut a szerveren és amikor a szerver végzett, akkor küld vissza egy jelzést, és akkor megy tovább minden? (elég kezdő vagyok még az ilyen dolgokban, remélem nem mondtam hülyeséget)
(#10298) Sk8erPeter:
[ Szerkesztve ]
-
-
Soak
veterán
Köszönöm a segítségeteket, de nem tudom ,hogy olvastátok-e amit írtam, hogy tisztában vagyok vele, hogy nem jó, jobban mondva nem hatékony a kód, le is írtam, hogy ugyanígy gondolom ahogy mondjátok csak nem tudom megírni hozzá a kódot. Ebben kértem segítséget az első hsz-ben is.
-
cucka
addikt
Kimaradt: amikor hasonló helyzeteket kell megoldani, érdemes arra gondolni, hogy az adatbázis-műveleteknél a legköltségesebb művelet az, amikor az adatok átkerülnek az adatbázis-szerverről a php-be. Ezért minden esetben arra kell törekedni, hogy csak azokat a sorokat/oszlopokat kérjük le az adatbázistól, amelyekre valóban szükségünk van. Nagyságrendekkel gyorsabb, ha az eredmények listáját leszűri az adatbázis szerver, mint ha elkérnénk tőle az összes sort és php-val szűrnénk ki a fölöslegeseket.
-
Soak
veterán
Újra elmondom : Tudom ,hogy szar volt, tudom, hogy sokkal jobban meg lehet csinálni, de a designt kellett csinálni mert szórít a határidő és addig amíg folyik annak a gyártása addig arra jó volt, hogy szórakozzon vele, hogy mikor hogy néz ki a design.
Amit írtál viszont tökéletesen működik, és már 10 eventnél is érezhetően gyorsabb, ezt akartam alapból is csinálni, csak nehezen megy, ha az ember 1hónapja se foglalkozik php-vel és mysql-el . Köszönöm szépen a segítséget, megyek és pihenésképpen felfogom, hogy miért működik ami kódot adtál .
-
MODERÁTOR
Lényegében unix timestamp -ként tárolom a dátumot. Ez azért jó mert így ugye úgy konvertálom ahogy akarom. A nézetnek egy tömböt adok át, és az egyik ilyen tömb tartalmazza a felhasználó adatait, a regisztrálás dátumával. Kiszedem az adatbázisból a kellő adatokat - tömbként és azon belül kéne még "elő" konvertálni a megfelelő beállítás szerint.
Remélem érthető voltam
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
-
Sk8erPeter
nagyúr
Ja hogy így flat tárolás, így már minden világos, elsőre másra gondoltam.
Az utána következő "programozás alapjai órát" nem tudom, nem inkább mobalnak szántad-e...
Én annyira kérdeztem rá fordfairlane-től, hogy magával az elképzeléssel mi a baj, hogy a nézetben kapsz egy egymásba ágyazott listát, nem arra, hogy az mire jó és hogyan kell bejárni. (Mondjuk én is értékelem a lelkesedést. )(#10363) fordfairlane :
ja OK, szóval ezek szerint az a probléma vele, hogy nem feltétlenül tudod, milyen komplexitású mondjuk egy egymásba ágyazott lista, és bizonyos feltételek döntik el, mi szerint kellene bejárni, milyen mélységig, stb., és ezek a komplex döntések meg pont, hogy nem a view-ban kellene, hogy megszülessenek. Így már teljesen világos.Sk8erPeter
-
Soak
veterán
Megint szopattam magamat 1,5órát, aztán neki álltam alapoktól újra írni egy pár funtcion kódot és eszembe jutott, hiszen pont egy hasonló kódot beszéltünk a php topikban ami ezt megoldhatja. Első probára hibátlanul lefutott, igaz, hogy jó pár módosítással, de logikailag szinte ugyanez a probléma. Lassan rászokom, hogy gondolkozom cselekvés elött.
-
DeltaPower
őstag
Szerintem csak "aa@asd"-re matchel, "@asd"-re nem, de abban igazad van, hogy a @ utáni részben nem teszi kötelezővé a pontot, ami hiba.
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
Soak
veterán
ver. 0.2
public function find_previous($id=0, $users_id) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id < ".$id." AND users_id = ".$users_id." ORDER BY id DESC LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
public function find_current($id=0) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id = ".$id." LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
public function find_next($id=0, $users_id) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id > ".$id." AND users_id = ".$users_id." ORDER BY id ASC LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
if(isset($_GET['user']) AND (isset($_GET['id']) AND isset($_GET['pic'])))
{
global $database;
$_GET['user'] = $database->escape_value($_GET['user']);
$_GET['pic'] = $database->escape_value($_GET['pic']);
$users = User::find_by_id($_GET['id']);
$users_id = $users->id;
$previous_photo = Photograph::find_previous($_GET['pic'], $_GET['id']);
$current_photo = Photograph::find_current($_GET['pic']);
$next_photo = Photograph::find_next($_GET['pic'], $_GET['id']);
$path = Photograph::photosphp_image_path($current_photo->filename);
}
else
{
redirect_to("browse.php");
}
if($previous_photo)
{
echo "<a href=\"photos.php?user=$users->username&id=$users->id&pic=$previous_photo->id\" >previous</a>";
}
if($next_photo)
{
echo "<a href=\"photos.php?user=$users->username&id=$users->id&pic=$next_photo->id\" >next</a>";
}Most kicsit többet gondolkoztam rajta. Biztos nem hibátlan, de szerintem egy fokkal jobb.
-
Sk8erPeter
nagyúr
"Egyébként olvasgatom az utóbbi hozzászólásokat, ti tényleg ezt a PDO-t használjátok? Olyan ocsmány az egész, szívem szerint bottal sem piszkálnám. "
Miért olyan botrányos? Ezerszer szebb, mint a régi mysql_query()-s bohóckodások...
Lehet használni ORM-et is, de ez is jól használható.
Kíváncsi lennék egyébként, hogy ha egy adott ORM lényegében egy "wrapper" a PDO-hoz, akkor az milyen overheadet jelent a gyakorlatban. (Már maga a plusz függvényhívások sokasága is overhead.)A Drupal is a PDO-t használja egyébként a háttérben, de ott is van hozzá egy elég jól használható "wrapper", ami szebbé és egyértelműbbé teszi a használatát.
Meg gondolom az általad használt megoldások is a "natív" PDO-t használják a háttérben. (Vagy legfeljebb a mysqli-t, de az mennyivel jobb? Semmivel, sőt.)[ Szerkesztve ]
Sk8erPeter
-
A PDO annyiból jó, hogy csak egy drivert kell megtanulni több adatbázisszerverhez, így a kód mobilisebb lehet. ORM-nél nem a model számít, hanem az, hogy a change tracking és a kapcsolatok kezelése jól működjön (a model-ben majdnem csak a különböző adatagok lehetnek [POPO class-hoz közelebb kell lennie, mint akármilyen BC-hoz]).
-
Sk8erPeter
nagyúr
Nem azt mondtam, hogy a PDO "szép", ahogy te értelmezted. Hadd idézzem magam még egyszer: "Ezerszer szebb, mint a régi mysql_query()-s bohóckodások..."
"Pontosan azért, mert igazából nem szebb."
De, szebb. Nem is értem, hogy állíthatod ezt. Hol volt bindolás a sima mysql_query()-s szarakodásnál? Mennyire okádék volt, hogy mindenhol mysql_real_escape_string() hívások voltak, és az objektumorientáltsághoz, kivételek dobálásához köze nem volt? Most hadd ne soroljam fel az érdemi különbségeket a PDO és a sima mysql_* szarokhoz képest, össze sem hasonlítható.
Azért a "pár cuccnál" szerintem kicsit jobban érzékelhető különbség van a mysql_* függvényekhez képest. Gondolom azért mondod mindezt, mert hosszabb távon nem is használtad, így távolról ítéled meg.De senki nem mondta, hogy összevethető egy ORM-mel... Azt írod, az ORM bonyolultabb... nem mondod, tényleg?! Szándékosan magyarázod félre, amiket írok? Arról magyaráztam, hogy az ORM-ben szereplő query-k működhetnek a háttérben a PDO-val, és a kettő egy kicsit sem zárja ki egymást, sőt.
"A pdo az egy wrapper a mysql* függvényekhez"
Ha ez ilyen egyszerű lenne, akkor a PDO nem működne más adatbázisokkal is. Egyébként biztos vagy benne, hogy csak a mysql_* függvények köré írtak wrappert? Úgy emlékszem, hogy a php_mysql.dll NEM kell, hogy engedélyezve legyen ahhoz, hogy a PDO-t zavartalanul lehessen használni a php_pdo_mysql.dll engedélyezésével. De cáfolj meg, ha tévedek. Furcsa lenne, ha szimpla "duplikáció" lenne ilyen tekintetben.[ Szerkesztve ]
Sk8erPeter
-
-
sztanozs
veterán
Persze így halál lesz az 'egyéb' bezőkben keresni - ha még a mezőnév sem állandó... Persze a mezőnevek is lehetnek külön táblában, hogy véletlenül se legyen elírva - de azért bővíthető legyen.
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...
Új hozzászólás Aktív témák
- EDIFIER R1700BTS hangfal pár makulátlan, új állapotban, 2 év hivatalos garanciával, alkalmi áron
- LG OLED55B23LA 2 Év GYÁRI GARANCIA
- Apple iPhone XR 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC , i7 12700KF , RTX 3080 Ti , 64GB DDR5 , 960GB NVME , 1TB HDD
- Intel PC , i5 8500 , 1660 6GB , 32GB DDR4 , 512GB NVME , 500GB HDD
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest