Internet: PHP, CGI, stb.

Statikus website generátor?

Üdv!

A saját, személyes, különbejáratú honlapom eleddig Jekyll-ben van "írva" (ld. git-repó). Viszont ezen bug(?) miatt kicsit kétkedek, hogy biztos a Jekyll-e a legmegfelelőbb.
Nézegettem a staticgen oldalon a listát, de valahogy mindig oda lyukadok ki, hogy (leegyszerűsítve) gyakorlatilag bármelyik generátor kb. ugyanazt tudja, maximum más a template, amiben meg kell írni a cuccot.

Lényeg: keresnék egy ilyen generátort, ami tudja a következőket:

  1. tud valamilyen adatbázis-szerűségből dolgozni (pl. CSV, de bármi jó, a legegyszerűbb valami flat-file lenne)
  2. az adatbázis adatain végig lehet menni pl. egy for-ciklus szerűséggel, hogy az elemeket megjelenítsük (pl. mint itt)
  3. virtuálisan is tudjon létrehozni oldalt (a Jekyll-ben ezzel van megoldva - minden egyes képet meg lehessen külön nézni, pl. itt, config.yml vonatkozó része - persze azóta rájöttem, hogy az oldal jelentős része megoldható lenne így, hiszen pl. a math/exams07/index.html és a math/exams08/index.html között sok különbség nincs - hála a zseniális pdf_items layout-nak :) )
  4. minél kevesebb runtime függősége legyen, és azok is valamilyen szinten standardok

Összegezve: a honlapot jellemzően fájlok letöltésére/megosztására használom, némi wiki-beütéssel.

Megjegyzés: nem feltétlen céleszközben gondolkodom, pl. egy Makefile és m4 kombó is szóba jöhetne, ha az m4-et értelmesen rá lehetne bírni "adatbázis" feldolgozására.

Adobe Flash 24 NPAPI - jól látom?

Ugye jól emlékszem, hogy nem volt NPAPI felületre Linux alá új Flash Player? Gondoltam, letöltöm a PPAPI-s verziót, meg a szokásos illesztő réteget lefordítom forrásból. Erre azt látom, a 24-es Flash létezik NPAPI interface-re.

Miről maradtam le? Változott valami? Ahelyett, hogy kihalna ez a csoda, megint kényelmesen lesz Firefoxhoz is Linuxra? :)

Lassú mysql lekérdezés+while ciklus

Sziasztok!

Adott egy raktár program aminek az egyik függvénye pdf fájlt állít elő. Az adatokat mysql táblákból veszi és így rakja össze. A probléma az, hogy amikor rákattint a user az adott azonosítóra, hogy létrejöjjön a pdf fájl, nagyon sokáig teker a böngésző addig amíg letölthetővé válik a fájlt. Az alábbi függvény részletre gyanakszom, mert amikor kikommentezem, akkor pillanatok alatt létrejön az állomány.

Készítettem indexeket is, de akkor se lett gyorsabb. A táblákhoz tartozó adatbázis motor innodb.

A kérdésem, hogy van valami ötletetek, hogy hogyan lehetne gyorsítani a két lekérdezést és/vagy a két ciklust? Esetleg lehetne egyszerűsíteni ezt a részt?

$sql = $db -> query("SELECT tabla1.aruaz,tabla1.maz,tabla1.me AS menny,tabla1.bruttokg AS btt,tabla1.mee,
CONCAT_WS('=>',tabla2.itemno,tabla2.itemname) AS arumegn
FROM tabla1
LEFT JOIN tabla2 ON tabla2.id=tabla1.aruneve
WHERE aruaz=szuloaz AND tmod='polc' AND betarszam='$pono'
ORDER BY aruaz");

while ($data = mysql_fetch_array($sql,MYSQL_ASSOC)) {
$pdf->Ln();
$keret = 0;
$maz = $data["maz"];
$bttkg = $data["menny"]*$data["btt"];
$pdf->Cell($w[0],6,$maz,$keret,0,'L');
$pdf->Cell($w[1],6,"",$keret,0,'L');
$pdf->Cell($w[2],6,$data["menny"],$keret,0,'R');
$pdf->Cell($w[3],6,$data["mee"],$keret,0,'L');
$pdf->Cell($w[4],6,$data["btt"],$keret,0,'R');

$aruaz = $data['aruaz'];
$alsql = $db -> query("SELECT tabla1.regihely,tabla1.mee,tabla1.raktarhely,tabla1.me AS menny,tabla1.bruttokg AS btt,
CONCAT_WS('=>',tabla2.itemno,tabla2.itemname) AS arumegn
FROM tabla1
LEFT JOIN tabla2 ON tabla2.id=tabla1.aruneve
WHERE aruaz!=szuloaz AND kikapcs=0 AND ((szuloaz='$aruaz' AND regihely=0) OR regihely='$aruaz')
ORDER BY aruaz");

while ($aldata = mysql_fetch_array($alsql,MYSQL_ASSOC)) {
$pdf->Ln();
$keret = 'B';
$maz = '';
$bttkg = $aldata["menny"]*$aldata["btt"];
$pdf->Cell($w[0],6,$maz,$keret,0,'L');
$arumegn = $aldata["arumegn"];

if ($aldata["regihely"]==$data["aruaz"]) $arumegn.="==>".$aldata["raktarhely"]."!!";

$pdf->Cell($w[1],6,$arumegn,$keret,0,'L');
$pdf->Cell($w[2],6,$aldata["menny"],$keret,0,'R');
$pdf->Cell($w[3],6,$aldata["mee"],$keret,0,'L');
$pdf->Cell($w[4],6,$bttkg,$keret,0,'R');
}
}

Webshopban bankkártyát elfogadni kereskedőként mennyire biztonságos?

Sziasztok!

Pont most vezetnék be webshopban online bankkártya elfogadást, és azon gondolkoztam, hogy bankkártyás csalások ellen létezik-e védelem, és ha lopott kártyával fizet valaki, lehet-e ez ellen egyáltalán tenni valamit?

Pont most írt erről az Index: http://index.hu/tech/2016/11/24/mi_tortenik_egy_lopott_bankkartyaszamma…

Megerősítette bennem az elképzelést, hogy igazából a kereskedő nem sok mindent tud tenni. Tényleg az a megoldás, amit a cikk ír, hogy bele kell kalkulálni a lopott kártyás vásárlások miatti veszteséget az árba?

Mivel összességében irdatlan pénzekről van szó, aminek a nagy része sosem térül meg, ezt a veszteséget (vagy a biztosítás költségét, amit kötnek rá) kénytelenek belekalkulálni az áraikba az online boltok és szolgáltatók, ahogy a bolti lopásokat a hagyományos áruházak. Így aztán végső soron minden vásárló megszívja.

Furcsa nekem, hogy még 2016-ra sem sikerült biztonságossá tenni az internetes vásárlást. Alapvetően az egész elgondolás hibás: a bankkártyaadatok ismeretében bárki vásárolhat adott kártyával az interneten. Sok esetben pedig a kereskedőhöz eljutnak a bankkártyaadatok, innentől kezdve pedig csak idő kérdése, hogy mikor szivárognak ki.

Pl. tök durva, hogy a legnagyobb szállásközvetítő oldalakon a legtöbb helyen meg kell adni foglaláskor a bankkártyaadatainkat, és hová kerülnek ezek a kártyaadatok? Közvetlenül eljutnak a szállásadóhoz. Aki aztán ha tárolja saját rendszerében, és azt a rendszert feltörik, máris kiszivárognak az adatok. De sokkal egyszerűbben is kiszivároghatnak: adott recepciós szépen felirogatja magának a kártyaaadatokat, majd észrevétlenül értékesíti azokat. Kb. soha nem derül ki szerintem. És gondoljunk bele, naponta hány internetes szállásfoglalás történik, ahol megadják a kártyaadatokat? Naponta több milliószor jutnak el kártyaadatok a legkülönfélébb szállások felé.

Ez csak egy példa volt. Az a lényeg, hogy ha egy adott webshopban lopott bankkártyával vásárol egy csaló, nem nagyon látok rá módot, hogy lehet ez ellen védekezni. Ha már teljesítésre került a megrendelés, és ezután reklamál csak az igazi bankkártyatulajdonos, akkor mit lehet tenni? A kereskedő nyeli le a veszteséget, az igazi kártyatulajdonos, a bank, a kártyakibocsátó, vagy mindenki megosztva?

Olyan rendszert kellett volna már rég bevezetni mindenhol, mint a Paypal: a kártyaadatok soha nem jutnak el a kereskedőhöz, így csak akkor lehet ellopni a kártyaadatokat, ha feltörik a Paypalt. Ha viszont a Paypal titkosítva tárolja a kártyaadatokat, akkor meg elég nehéz ugye feltörni.

Azt hiszem, a Mastercard és Visa cégeknek is van már Paypalhoz hasonló szolgáltatása, de nem számít, amíg nem teszik kötelezővé. Ugyanis a kérdés szempontjából az a fő probléma, hogy még mindig nagyon sok ellopott bankkártyaadat van, amit felhasználnak webshopokban vásárlásokhoz. Akkor oldódna meg a probléma, ha csak Paypal-szerű módszerrel lehet interneten fizetni, más módokat nem engedélyeznének a kártyatársaságok.

Akkor tényleg bele kell kalkulálni webshopnál online bankkártya elfogadáskor, hogy lesznek lopott kártyás vásárlások, ami miatt veszteség keletkezik, más védekezés nincsen?

Chrome blank screen localhost

Üdv!
Win alatt a chrome/firefox böngésző a localhost-ra üres oldalakat ad. IE böngészőben nincs ilyen gond.
Melyik beállítás okozza ezt?
A neten olvastam néhány javaslatot, de nem működtek. (Az inkognitó mód nem segített... stb.)

Érdekes, hogy bizonyos gépeken rendesen működik, bizonyos gépeken meg az üres oldal effektus. (Pedig mindegyik win8.*)

(update: 11-30)

SOLVED [JavaScript] Ez mit csinált?

Egy ismerősöm elmondása szerint az alábbi fájlt küldözgeti automatikusan a facebook -ja személyes üzenetben. Kaptam én is belőle…
Megtudja mondani valaki, hogy ez mit csinált?
Photo_8436.svg néven

http://pastebin.com/R681EXKk

és mégegy...

Photo_1125.svg néven

http://pastebin.com/K2tBgJND

Előre is köszönöm a segítséget

Lassú smarty foreach

Sziasztok!

Adott egy termék adatbázis amiből az adatokat kiolvasva egy táblázat formájában jelennének meg. A táblázat datatables-el van még kombinálva.

A php mögött smarty van ahol is egy foreach függvénnyel listázom ki a tömb adatait.

Valami hasonló képen:


{foreach from=$ItemsList item=$il}




{$il.itemno}
{$il.itemname}
{$il.clientname}





{/foreach}

A termékeknél kb. 8-10 ezer sorról beszélünk jelen pillanatban. A probléma az, hogy mire végigmegy a forech az összes soron az kb. 20-30 másodperc a legjobb esetben is.

A kérdésem, hogy hogyan lehetne azt megoldani, hogy gyorsan jelenjenek meg az adatok a táblázatban még akkor is ha nagyobb mennyiségű adatról van szó? Bár véleményem szerint ez még nem súrolja a sok adatmennyiség fogalmát sem.

PHP imap cache törlése

Sziasztok!
PHP-ból szeretnék egy IMAP fiókot törölni. imap_open, imap_delete, imap_expunge, imap_close ... rendben is megy. Lefut a program, letörli a leveleket, webmail-en ránézek, tényleg. Újra futtatom, jelzi, hogy üres, nincs mit törölnie.
De ha a futtatás után közvetlen újra futtatom, azt jelzi, hogy a fiókban benne vannak a levelek, és újra letörli. Bárhányszor futtatom, míg másik imap klienssel rá nem nézek a fiókra, úgy mutatja, mintha lenne benne levél.
Ha törlés után új levelet küldök a fiókba, akkor a régiek mellé teszi. Lehet, hogy az expunge nem fut le rendben, és azt csak a webmail futtatja? (imap_error* semmit nem mutat.)
Próbáltam imap_gc-t is, és az imap_opent OP_SHORTCACHE paraméterrel is, valamint ezek kombinációit is, még a php session-t is kikapcsoltam, de mindhiába.
Van bárkinek tippje, hogyan lehet olyan php programot írni, amelyik második futtatásra már üresnek jelzi azt az imap fiókot amit előtte kiürített?
Vagy a webamil csinál valamit, amit php-ből nem tudok megtenni?
Minden ötletért hálás lennék!
Köszönöm előre is.

Authentikáció, munkamenet azonosítás - hogyan?

Korábban írtam, van egy picike router-em nagyon kevés RAM-mal (32 MB) és még kevesebb háttértárral (4 MB), erre pedig tettem egy LEDE disztribúciót. Az image-et saját magam állítom elő, hogy épp a szükséges csomagok és file-ok kerüljenek bele. Ugyanakkor a webes felület már nem fér fel a routerre, viszont az uhttpd https támogatással még éppen. Ezek után kitaláltam, hogy egy egyszerűsített webes felületet csinálok neki, amely első körben az alábbiakat tudja majd:

- bejelentkezés
- állapot lekérdezés
- wifi interface be-ki kapcsolás, SSID, wifi jelszó módosítás
- host PC elindítása - wake on LAN
- felhasználónév, jelszó megváltoztatása
- esetleg még ami eszembe jut, port forwarding például, IP cím modosítás, effélék
- kilépés

Ezek természetesen ssh-n keresztül elérhetők, a webes felület nem létkérdés, ugyanakkor kedvem van hozzá, így csinálgatom. A neten kerestem valami JS-mentes, csak HTML5 és CSS3 picike, egyszerű template-et, hogy ne a színek és kinézet megálmodásával menjen az idő.

PHP-m meg egyéb úri huncutságom hely hiányában nincs, marad a CGI, azon belül pedig ash és awk scriptek szerver oldalon. Kliens oldalon nem szeretnék JS-t.

A problémám az autentikációval van. Odáig megvagyok, hogy felhasználónevet illetve titkosított jelszót tárolok, ellenőrzök, user-t elhajtom a fenébe vagy beengedem az ellenőrzés eredményétől függően. A gondom a session azonosítás: ha valakit beengedtem, s ezt egy állapot változóban tárolom, akkor bárki más autentikáció nélkül is bejöhet. Az is megfelelne, ha mindenki mást elhajtanék akkor, ha egy valaki be van jelentkezve. Az a kérdésem, honnan tudja a router-em, hogy az az egy valaki adja a lekérést a router szervere felé, illetve küldi a POST-okat, akit beengedtem az autentikáció alkalmával? Ezt hogyan szokás csinálni? Ha lehet, kerülném a kliens oldali JS-t, amit lehet, szerver oldalon csinálnék ash-val, awk-val. Kész eszközök a hely hiánya miatt nem jöhetnek szóba, tehát az nem megoldás most, hogy használjam valamelyik függvénykönyvtárat. Az elv érdekel, az implementáció egyedi lenne.