Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 90.176.141.–

peter
Návrhy na vylepšení › Obrázková Captcha je hrozná
8. 8. 2018   #381151

Ja v nekterych programech mam js, ktere skryje a predvyplni input. Bez js se zobrazi input a treba textova otazka typu kolik je dva plus pet a pod. Zatim jsem nemel problem se spamem.
Jestli chces komplikovanejsi, tak vygenerovat base64 hash z casoveho razitka a ip, ktery se meni kazdych 5 min.

Mam FF, nejsem registrovany. Ted tady captcha funguje tak, ze se objevi zaskrtavatko, staci na nej kliknout. Zadne obrazky ani nic se neobjevuje.

peter
MySQL › Jakou používat strukturu tab…
3. 8. 2018   #381102

Pro monitorovani site, teploty pouzivame ve firme zabbix. Netusim, jak to vnitrne resi.
Umi udelat grafy po 10 min a zoomovat to po 30 min, 1h ... Kazdy zoom bych resil extra tabulkou, kde bych vypocital prumer. Hlavne se to pak rychleji nacita.

U tvych zarizeni nevim. 800.000 radku je docela dost a jestli to ma byt casem 50x.
50 sloupcu... Neslo by treba mit tabulku aktualni stav, kam ukladas aktualni data do X sloupcu, zvysujes v jednom sloupci n+1? Az bude n==X, tak zaznam zkopirujes do tabulky2 a v tabulce1 smazes. A ted, otazka je, potrebujes se k tem floatum dostat hned? Nebo by stacilo to ulozit do stringu jako csv. Uvazuji o tom, pridat tam treba dalsi sloupce 50+50+50 (vic radku do jednoho)... aby se zmensil pocet radku. A jestli ty data nevyuzivas nejak aktivne, jestli by bylo ci nebylo lepsi to zapsat jako string. Jako, urcite je asi lepsi to mit ve float sloupcich. Ale nevim, kolik sloupcu sql zkousnou. Nejvic jsem mel v tabulce asi 30. je fakt, ze v programu na vedecke publikace je jich 130 a neni s tim problem.

Cili, asi bych to resil tak, jak to mas vymyslene. A az pokud by nastal nejaky problem, tak to zkusil zmenit.
Jestli s temi daty aktivne pracujes, tak bych si resil bokem jeste tabulku aktualni stav, kde bych udrzoval treba 30 poslednich hodnot. Pocital inserty a pri pocet>Y spustil promazani starsich hodnot (podle casu), treba.

peter
PHP › Xml práce s kategoriemi
1. 8. 2018   #381091

PS. Parser se nazyva ta cast kodu, ktera xml parsuje. Tahle funkce je az takovy post proces, kteremu predavas uz jakasi data, ktera dal zpracovavas. No, slo by to nazvat asi tez parsovani. Ale, myslim si, ze pro nas zajimavejsi by byla ta cast pred touto funkci, v hierarchii.

peter
PHP › Xml práce s kategoriemi
1. 8. 2018   #381090

To se velmi tezko odhaduje. Jako obvykle davas jakysi slozity kousek kodu misto jednoducheho funkcniho celku. Treba tvuj parser, kod, ktery jsi tu nedal, ani atributy nevytahuje.

php.net/xml
http://php.net/…ml-parse.php
Parser uvedeny v prikladu od "lz_speedy at web dot de - 9 years ago" vytahuje atributy do $result['attr'][$attr]. Mozna echo $item['attr'] ? Mozna neco pod itemem. Kdyz ty pouzivas i takove nestandartni znaceni :) Ztezuje to orientaci v kodu. Coz muze byt dobra obrana vuci hackerum, ale ted je to spis ke skode.
 

php.net/dom
DOMElement::getAttribute — Returns value of attribute

peter
PHP › PHP - náhodný výběr z databáze
1. 8. 2018   #381088

$result = mysql_query
mysql_query vraci resource. Naklonuje radek nebo radky db tak, jak jsou ulozene v db. Echo takoveho balicku dat nema vyznam. Zkus na ten balicek zpracovat jeste funkci fetch a pak dej echo nebo var_dump().

Priklady na to mas primo v online dokumentaci.

php.net/mysql
php.net/mysql_query

peter
PHP › rmdir() a unlink()
1. 8. 2018   #381087

S tim otevrenym adresarem mne napada, u wordu dela to, ze si zamyka otevreny soubor, dokud word neukoncis. Kdo vi, co se deje u XP.

Ja bych zkusil adresar vytvorit, pak smazat. Pak vytvorit, pridat soubor, smazat soubor, smazat adresar. To by melo projit, jak popisujes, protoze v prubehu toho kodu nic dalsiho neoteviram. Pokud to neprojde, pak je neco hrozne spatne. Mozna mas zapnute nejake zalohovani souboru (klonovani na server) nebo antivir nebo neco soubor zablokuje. Mozna jen docasne.
Tak bych to mazani mozna pustil pres cron hromadne jednou za pul dne nebo tak a provedl nejaky test, jestli mi to vse smazal a kdyz ne, tak asi rucne dohledal problem a smazal to sam. Teda, kdyby se mi nechtelo zjistovat, co presne mi smazani toho souboru nedovoluje.

Celkem oblibeny trik hackera je podstrcit vir.exe jako vir.jpg. Pak to treba blokne antivir.

peter
MySQL › Promazání tabulky, nechat ka…
1. 8. 2018   #381085

'Zkoušel jsem několik možností' - vypsat moznost, vypsat text chyby. Pak je mozne diskutovat o tom, co tam mas spatne.

peter
PHP › Session a uživatelská skupina
30. 7. 2018   #381061

Lepe pocitat s tim, ze je mozne vsechno a mit zalozni plan :) Pokud ti jde fakt o bezpecnost. Neco necekaneho. Treba nejakou past. Jako, do linku pridat admin=1, ale v programu to ignorovat. Vypsat uzivateli treba jakoze je prihlasen jako admin (aby mel pocit, ze to funguje), ale v programu mu pridelit user prava nebo dokonce guest.

A vubec, nebudu ti psat, ze treba neco nedelam nebo, jak to resim, nikdy nevis, kdo to cte. Nepotrebuji, aby vedel nekdo tak moc informaci o tom, jak moc nebo malo zabezpecuji :)

peter
HTML / XHTML › automatické skrytí fotogalerie
27. 7. 2018   #381042

<span class=ccc>| ccc fotka |</span> *oprava radku
 

peter
HTML / XHTML › automatické skrytí fotogalerie
27. 7. 2018   #381041

Aha. Opet nic moc, co se kodu tyce. Ale, tak tohle snad pokryje zakladni myslenku: 

<style>
.aaa {color:#f00;}
.bbb {color:#0B0;}
.ccc {color:#08F;}
#galerie {}
#galerie.aaa .bbb, #galerie.aaa .ccc {display:none;}
#galerie.bbb .aaa, #galerie.bbb .ccc {display:none;}
#galerie.ccc .aaa, #galerie.ccc .bbb {display:none;}
</style>

<script>
function $(id) {return document.getElementById(id)}
function zmen(odkaz)
{
var vse, hodnota;
vse     = odkaz.href=='#' ? true : false;
hodnota = odkaz.innerHTML;
$('galerie').className = vse==false ? hodnota : '';
return false;	// prerusit odkaz
}
</script>

<a href="#" onclick="return zmen(this)">vse</a> |
<a href="#filtrAAA" onclick="return zmen(this)">aaa</a> |
<a href="#filtrBBB" onclick="return zmen(this)">bbb</a> |

<div id=galerie>
<span class=aaa>| aaa fotka |</span>
<span class=bbb>| bbb fotka |</span>
<span class=bbb>| bbb fotka |</span>
<span class=aaa>| aaa fotka |</span>
<span class=ccc>| aaa fotka |</span>
<span class=aaa>| aaa fotka |</span>
</div>
peter
CSS › nejde označit obrázek divem
27. 7. 2018   #381038

'Na obrazku jen vime, jak to vypada.'
Chci jen rici, ze mame obrazek a nevime, co je jinak a jak melo byt a co na nem vlastne si mame vlastne prohlizet.
Napr, foto z fotbaloveho stadionu a k tomu koment, je to spatne. Co je spatne? No, ze tam mava cervenou vlajeckou a sedi na tribune s bilym tymem. A to nemuzes rici hned?! Jak si mame vsimnout v tom davu lidi jednoho s jinou vlajeckou. nebo, ze nekdo ji vlastni burger misto toho, aby si koupil parecek od prodavace a ze prichazis o zisk, tak...

peter
CSS › nejde označit obrázek divem
27. 7. 2018   #381037

Pokud chces hledat chybu, udelej si jednoduchou testovaci stranku s minimalnim kodem. Pripadne kompletni a postupne odmazavej, dokud nenarazis na problem.

Tvuj kod nemame, html, css, pripadne js. Ani z kodu ani textu neni uplne jasne, co by se melo stat. Ani z obrazku. Na obrazku jen vime, jak to vypada. Ale, ceho e ma docilit, uz neni jasne.
Auto mas v garazi, v dilne automechanika je prazdno. Nebo jsi prinesl urvanou kliku. Takze ti ji muze prisroubovat leda k bote.

Tohle je podobne tvemu kodu, text je zelene. Nic se neignoruje. Takze to mas nejspis spravne?

<style>
    span .yyy {
color:#f00;
    }
      .xxx span .yyy {
color:#0f0;
  }
</style>

<div class="xxx">
<span><span class="yyy">aaa</span></span>
<span><span class="yyy">bbb</span></span>
<span><span class="yyy">ccc</span></span>
</div>

Podle mne selhava ten ostatni css kod nebo je problem v html kodu.
Mas nastavene aside na z-index:5. Nevim, zda z-index pro img bude mit nejaky vliv, snad ano.
Pokud se jedna o rotaci, take se chova spravne. Spany se otoci na vysku, o 90 stupnu.

<style>
span {border:2px solid #f00;}
    span .yyy {
display:block;
color:#f00;
transform: rotate(43deg);
    }
      .xxx span .yyy {
display:block;
color:#0f0;
transform: rotate(90deg);
  }
</style>

Tezko rici. Muzu tipnout, ze ti to prebiji jina class, kde pouzivas stejnou vlastnost. Nerekl jsi jakou, takze zkus pouzit vyhledavani v kodu a najit jeji nazev a do kazde takove class napro pripsat border:2px solid #f00, pokazde jinou barvu.
A nemas tam nekde zapomenuty strednik nebo preklep v pismenku nebo neco takoveho?
Mas v html class 'logo'? A je ta class u nadrazeneho prvku? Protoze, jestli je jinde, tak se to pise takto:

.logo aside img
aside.logo img
aside img.logo

 

peter
PHP › Session a uživatelská skupina
27. 7. 2018   #381035

S bezpecnosti se neda prehanet. V podstate zadnou nemas, jak to popisujes. Potrebujes tak 75% a mas tak 5% :) Admin=1 zkusi hacker na prvni pokus. Az pak zacne zkouset hesla a tak.

Ted mne jeste napadlo, ze u db je vlastne dobre udelat uzivatele admin, uzivatel, moderator. Pokud muzes delat vlastni uzivatele. Kazdemu dat jina prava pro konkretni tabulky. Pokud bude sql dotaz nad tabulkou, kde nema bezny user prava, tak mu nastaveni admin=1 nebude nic platne, pokud bude v sql prihlaseny jako user z predchozi stranky.  A mas dalsich 10% navic, treba :)

peter
PHP › Session a uživatelská skupina
23. 7. 2018   #381008

Spravne bys mel overovat login a opravneni uzivatele pokazde, kdyz je to kriticky dulezite. Zmeny udaju (UPDATE, DELETE, INSERT) nebo cteni udaju (SELECT), ktere nema jiny uzivatel videt. Idealne vzdy, vsechno.
Napr, aby bezny uzivatel nemohl zjistit prihlasovaci jmeno admina, takze vsechny dotazy, co pristupuji do tabulky uzivatele, napr. Ale mene dulezite muze pro tebe byt, ze se uzivatel dostane k pripravovanemu nezverejnenemu clanku. Ikdyz, tohle by mohlo zas zajimat konkurencni casopis, mohl by clanek vydat driv a ziskat vic prodeju.

Otazkou je, co do session davat.
Muzes tam dat login, psw. Ale, kdyz to bude prohlizet hacker, bude vedet primo login.
Muzes tam davat pseudo-hash, ktery si ulozis do tabulky id_uzivatel, pseudo-hash. To je o neco lepsi, platnost potrva jen dokud je uzivatel prihlasen, nebo das limit 5 min a bud se vygeneruje novy nebo ho to auto-odhlasi. Ale, pokud nekdo sleduje linku, muze stejne podvrhovat akce. Takze by hashe mohla byt soucasti ip a nejake dalsi identifikacni udaje, rozmery okna a jine.

Ja to resim v kazdem programu jinak. Do session davam loginy, hashe. Delam si v php promenou $UZIVATEL. Ale neni to spravne reseni. Spravne by ses mel pokazde zeptat sql. To uz mam take v kritickych programech. Jde o to, ze, pokud se hackerovi podari pres formular obejit nejake kontroly a nastavi si v $UZIVATEL login na admin, skupinu na admin, tak, pokud neoveris i heslo uzivatele, tak mu dovolis treba vytvaret administratory nebo zmenit jinemu uzivateli prava na admina.

Jeste se da udelat superadmin uzivatel. Nekdo, kdo ma login zapsany v externim souboru a vubec ne v db. Pokud nekdo zcizi db, tak tam by mel jen loginy beznych uzivatelu s beznymi pravy.

peter
HTML / XHTML › automatické skrytí fotogalerie
23. 7. 2018   #381007

Mam auto v garazi. Je rozbite. Co mu je? My taky nevime, co je tvemu programu :)

V js se da aktvovat odkaz pomoci elOdkaz.click();
V te galerii bude nejspis moznost nacitat na pozadi. A kdyz ne, muzes pres css nastavit visibility:false. A tu zmenit rekneme po 5s na true. Nastaveni od zacaku prazdneho filtru by nenacetlo obrazky, ne? Kdyz nema nic nacist, nebude nic nacitat. Neco jineho je mit tam jakesi tlacitko, ktere spoustis po nakesovani obrazku.

peter
PHP › include_once '' špatně odkaz…
19. 7. 2018   #380987

Konkretne se jedna o tyto 2 radky, kdyz si je napises pod sebe, realne cesty k obema souborum:
> c:\xamp\htdoc\Link-Ads\Login\index.php include mas
> c:\xamp\htdoc\Link-Ads\Source%20Files\partials/headers.php

peter
PHP › include_once '' špatně odkaz…
19. 7. 2018   #380986

Kit - Firefox a nb nema s obrazky zadny problem. Zkus problem reklamovat a lepe popsat na prislusnem foru Navrhu :) Tak, aby to pochopila i 7 leta holcicka, kdyz to ted nepochopi 40 lety chlap :)


Filip
soubor index.php ma cestu:
> c:\xamp\htdoc\Link-Ads\Login\index.php include mas
> partials/headers.php , cili
> c:\xamp\htdoc\Link-Ads\Login\partials/headers.php ale na obrazku mas
> c:\xamp\htdoc\Link-Ads\Source%20Files\partials/headers.php
Jake je tedy spravna odpoved?
- musis se dostat do links-add, to je '../'
- musis z links-ads otevrit Source%20Files, takze jeste 'Source%20Files/'
Neni to tezke, kdyz si cele ty cesty napises pod sebe.

peter
PHP › upload nefunguje v PHP5
19. 7. 2018   #380985

Pokud mas dotaz, zaloz si vlakno. Pridej tam link na toto vlakno, treba.

Myslim, ze tohle docilit normalne nejde.

Resil bych to zachytavanim inputu pres js. Prekodovanim na base64 v js a poslanim do php jako data. Pripadne to poslat httprequestem (ajaxem). Ale nevim, zda ti tohle umozni web-prohlizec, protoze je to tak jaksi hackovani.
Tam by pak slo vytvorit si i vlastni upload request, kde si to prejmenujes. Ale fakt si nejsem moc jisty, zda to vubec pujde a jak.

A zkousel jsi ten soubor ZIPnout pred poslanim? Ikdyz, nektere scripty stouraji i do zipu...

FF umoznuje takovou vec, ze pomoci 'drag' (uchopeni) souboru z plochy, presunuti do okna do urcite oblasti a 'drop' (pusteni) ti ho uploaduje. Tam to prave pouziva base64.
Nebo, do content=editable divu to jde podobne s obrazky.

https://html5demos.com/dnd-upload/

peter
Návrhy na vylepšení › Zruště programujte.com
17. 7. 2018   #380977

:) Jen chci rici, ze zbytecne delas ze sebe cil i pro nekoho, kdo je jinak cestny. Prilezitost, dela zlodeje, pripadne i vraha. Zlodej obvykle nechce, aby se o jeho jednani vedelo verejne. Vi, ze jedna protipravne. Coz jej stavi do zoufale situace v pripade mozneho odhaleni a muze jednat az vrazedne.

peter
MySQL › Ako sa ukladá viacero hodnôt…
17. 7. 2018   #380976

Moznosti je vicero, ale obvykle se to resi extra tabulkou. id_uzivatel, id_skupina

Pokud je pocet skupin predem znamy, muzes tam dat, tusim, ENUM typ a urcovat to po bitech 100110..., ve ktere je skupine. Ale, je tam tusim nejake omezeni velikosti. Pripadne by tam slo dat integer, ale pak v dotazech na konkretni skupinu bys musel mit policko & 0x01 a pod, pro konkretni bit. Nevim, jak rychle by to bylo.

peter
Návrhy na vylepšení › Zruště programujte.com
13. 7. 2018   #380971

O to zajimavejsi se stava zcizeni takove penezenky, kdyz vis, ze ma ten clovek na karte pin. Nebo si to jen myslis :)

peter
Návrhy na vylepšení › Zruště programujte.com
13. 7. 2018   #380967

Takze, na jinem pc, pokud treba mas pc a 2 nb jako ja, tak jsi uplne ztraceny, ze? Pripadne, pokud zrovna jsi na ucebne, kde ani 1 z tech 3 nemas... :)

peter
JavaScript, AJAX, jQuery › Problém s odesláním formulář…
13. 7. 2018   #380965

Aha. Kdyz on nevyrobi jednoduchy nefunkcni kod a udela copy paste neco uprostred, co treba ani s tim nesouvisi. Nicmene, v tom kodu ma ty chyby, co jsem napsal. Return false nebo event.preventDefault mu zastavi submitovani. Cili, v tomhle pripade se mu vymstilo copy-paste z jineho kodu, kdyz se nesnazil pochopit, jak tech 5 radku vlastne funguje. Ale zas chapu, ze neni jednoduche zrovna submitovani pochopit, jak se propojuje s js. A ani nejsem dobrej ve vysvetlovani, tak snad neco malo z toho pochopi :)

peter
JavaScript, AJAX, jQuery › Editor do redakčního systému
13. 7. 2018   #380964

Ha, ted jsem narazil na tento editor. Take vypada celkem slusne. Ale asi nebude free, kdyz je to pod domenou .com, comercial
https://wordhtml.com/

peter
JavaScript, AJAX, jQuery › problém s prohozením obrázků
13. 7. 2018   #380963

Viz MilanL
<img src="aa.jpg" onclick="changeImage(this)" > - tady je IMG jako tag, do funkce predavas objekt tohoto tagu pres 'this'
<span onclick="changeImage(this)"></span> - do funkce predavas SPAN tez pomoci this
<span><span onclick="changeImage(this.parentNode)" /></span> - do funkce predavas SPAN nad aktualnim objektem, cili ten prvni
 

function changeImage(img) { - tady je img tebou pojmenovana promena
function changeImage(rakosnicek) {
if (rakosnicek.src.endsWith("aa.jpg"))
rakosnicek.src = "bb.jpg";
else rakosnicek.src = "aa.jpg"; }

To bude delat porad totez. Ale lepsi je si promenou pojmenovat tak, aby odpovidala obsahu, ktery prenasi. cili zvolil img. Jeste by bylo pouzitelne el, elem, tag, el_img, obj a podobne. Ale img je asi pro tebe srozumitelnejsi.

<span><span onclick="changeImage(this)" /></span>  <!-- kdyz misto this.parentNode pouziji jen this... -->
function changeImage(rakosnicek) {
span = rakosnicek.parentNode // na ten nadrazeny span muzu dostat uvnitr funkce
 

peter
PHP › Nefunkčný <div>
13. 7. 2018   #380962

Doplneni

html: <form id=a> <span id=b> <div id=c>
css: #a, #b, #c
css: form#a, span#b, div#c /* jeste by to slo psat takhle */

html: <form class=a> <span class=b> <div class=c>
css: .a, .b, .c
css: form.a, span.b, div.c

a kdyz mas vic tagu, tak muzes pracovat se zanorenym, pokud je nad nim konretni tag nebo class nebo id

html: <form class=a> <span class=b> <div class=c>
css: .a, .b, .c {}
css: .a .b {} .a .c {} .b .c {}
css: form.a span.b {} ...
css: form .b {} ...
...

To muzes ruzne kombinovat. Bacha, ale jsou tam urcite priority pri prepisovani. tag, id ma prednost pred class, ... Osobne se snazim pouzivat pro hlavni layout class. Pokud s tim pracuji pres js, tak i id. Pro vsechny dalsi malickosti uz jen class. Jakoze mam na strance blok zpravy
<div id=zpravy class=zpravy> a pak mam jednotlive zpravicky uz jen jako
<div class=zpavicka><div class=nadpis> text </div> ... </div> (css: .zpravy .zpravicka {} .zpravy .zpravicka .nadpis {})
Navic, se snazim maximalne vyuzit prednastavene vlastnosti tagu, abych nemusel pouzivat classy
<div class=zpavicka><h1> text </h1> ... </div> (css: .zpravy .zpravicka {} .zpravy .zpravicka h1 {})
Ale, to je na tobe, jakou si zvolis cestu.

 

peter
PHP › Nefunkčný <div>
13. 7. 2018   #380961

'keď som chcel pridať orámovanie cez css pridaným novinkám'
Co to znamena? V css news {} nemaji zadny border, oramovani. Navic, v html kodu nemas tag news.

spravny zapis

html: <form> <span> <div>
css: form, span, div

html: <form id=a> <span id=b> <div id=c> <!-- pozor, idecka se nesmi opakovat! -->
css: #a, #b, #c

html: <form class=a> <span class=b> <div class=c> <!-- classy se v html kodu opakovat muzou, proto se take vic pouzivaji -->
css: .a, .b, .c

html: <form name=a> <input name=b> <textarea name=c></textarea>
css: form[name=a], input[name=b], textarea[name=c] /* tohle nemusi fungovat ve vsech, prevazne starsich, prohlizecich */

atd...

Www prohlizec ma moznost zobrazit si html kod. Firefox napr.kod soucasne validuje, doplnuje o schazejici tagy. Tam vidis, co ti to vyplodi. Tvuj php kod to vygeneruje uplne spatne. Takze, pak se to ani spravne neoramuje, jestli slo o ten tag table. Struktura tabulky je v html presne dana.
<table> text </table> je spatne (to delaji tve echa)
<table> <tr> <td> text </td> </tr> </table> je povolena varianta
Zkus si html zapisy zkouknout zde:
https://www.jakpsatweb.cz/…tabulky.html

U tabulky je jeste problem, ze ten ramecek nemusi projit. Ona ma vlastni rameckovat.
Misto toho vych tam dal spis
<div class="prispevek"> text </div>
a do css: .prispevek {border: 2px solid #F00;}
https://www.jakpsatweb.cz/css/border.html

peter
Návrhy na vylepšení › Zruště programujte.com
13. 7. 2018   #380960

To propojeni s fb ma prave itnetwork a mozna by to slo vyresit i tady.

peter
Návrhy na vylepšení › Zruště programujte.com
13. 7. 2018   #380959

- s itnetwork.cz zatim nemam zadny problem, adblock funguje dobre
- s programujte.com take ne
- builder.cz je vicemene mrtvy (tam to podelali s updatem forka, ktery trval asi 2-3 mesice, komunita proste odesla)
- jakpsatweb.cz ted ovlada jakasi skupinka prazaku s obchodni politikou, tam nema vubec smysl psat (Pokud se jim znelibite, koncite. Staci zkritizovat par jejich webu v kritice. Pokud to precte zakaznik, muze to poskodit jejich zajmy, coz se jim sakra nelibi. Puvodni svobodne forko proste padlo. Vydrzel jsem tam dost dlouho, co spustili ten terror, ale bylo mne lito kazdeho cloveka, ktereho bloknuli. Najednou prestal treba mesic psat nebo i dele...)

A pak jsou ruzna dalsi forka, ktera jsou uzavrena pres registraci. Hej, nechci si pamatovat login. Jeste bych souhlasil se propojenim s fb uctem.

peter
.NET › Zjednodušení algoritmu
10. 7. 2018   #380934

n - cisel (kod delka)
m - znaku, znaky = string "1234' (kod pocet znaku)

 Pseudokod by mohl vypadat nejak takto:

kod = []
cyklus (i = 0 az n delka)
	{
	next = 1;
	cyklus (j = 0 az n delka) // zkotroluj vsechny znaky
		{
		next = vyhodnot(j, next) // x = kod[j]; x++; if (x<m) {kod[j] = x; return 0;}; kod[j] = 0; return 1;
		if (next==0) break;
		}
        // vypis kod...
	}
peter
JavaScript, AJAX, jQuery › Editor do redakčního systému
10. 7. 2018   #380932

TinyMCe bych doporucil.

Nevim, jaky problem mas s uploadem. Mozna to ocekava nejaky plugin, ta free verze.

Aspon stary FCK nemel defaultne nastaveny upload. Pokud tam tedy v adresarich ty soubory na upload jsou (find text = move_uploaded_file), tak to treba nejspis jen nastavit v configu na php upload a zadat spravne cesty root adresarum. V fck jsem odnekud ten plugin ziskal, ale musel jsem ho cely prepsat. Pocital tam s cestou k webu, kdy je primo / = root = /editor/. Kdezto na hostingu je root adresar / nastaveny jen jako root hostingu. cili, ty mas stranky pod /var/www/moje/editor/. Coz potom je cesta blbe. Mno, nakonec jsem tam udelal asi 3 ruzne cesty misto 1 a v celem pluginu to poprepisoval

Jinak, vypis souboru mas  

$skip = array();
	$dirhandle = opendir($path);
	while (($name=readdir($dirhandle)) !== false)	// adresar name='0'
		{
		if (in_array($name,$skip))
			{
			continue;
			}
		if (is_dir($path.$name))
			{
			$out['dirs'][] = $name;
			continue;
			}
		$out['files'][] = $name;
		}
	closedir($dirhandle);
//var_dump($out['files']);

Upload je trochu slozitejsi. Mam to provazane na nekolik class, tak to sem davat nebudu cele. A tahle cast je jeste netetovana. Zrovna ty odzkousene verze mam na jinem pc...

class classFileUpload
{
var $cfg, $lock_status, $input_all, $file_all;

function __construct()
	{
	$this->cfg = array(
		'root'      => '',
		'lock_path' => './actual/', 
		'lock_file' => 'lock.txt',
		'log_file'  => 'log.txt'
		);
	$this->lock_status = array(
		'locked'   => 'locked',
		'unlocked' => 'unlocked'
		);
	$this->tmp_all  = array();
	$this->file_all = array();
	}


public function errFn($name)
	{
	return 'classFileUpload::'.$name.': ';
	}

public function fileClearPath($path)
	{
	return preg_replace('~^\.+\/+()|\.+(\/)+|(\/)\/+~',"$2",$path);	// odstran ./ ../ ///
	}

public function inputRead($input_name='')
	{
	$err_fn = $this->errFn('inputRead');
	$input_field = isset($_FILES[$input_name]) ? $_FILES[$input_name] : (isset($HTTP_POST_FILES[$input_name]) ? $HTTP_POST_FILES[$input_name] : '');
	if (isset($input_field['tmp_name']) && is_uploaded_file($input_field['tmp_name']))
		{
		$file = $input_field['tmp_name']
		$this->input[] = $file;
		return $file;
		}
	fce_notice($err_fn.'No file is uploaded!','error');
	return false;
	}

public function fileCopy($path_from, $path_to)
	{
	$fp1   = fopen($path_from, "r");
	$data1 = fread($fp1, filesize($path_from));
	fclose($fp1);
	$this->fileWrite($path_to, $data1);
	}

public function fileWrite($file_name, $data, $opt=array())	//, $file_pos_line=0
	{
	$err_fn = $this->errFn('fileWrite');
	$opt = array(
		'end_time'   => 5000,	// 5000 ms
		'type'       => 'w',	// !!! ZMENIT na w nebo w+
		'dir_chmod'  => 0777,
		'file_chmod' => 0755
		);
	$old = umask(0);	// https://www.tutorialspoint.com/…rmission.htm
//	@chmod($dir,$opt['dir_chmod']);		// !!! UPRAVIT kod, pokud budes chtit pouzit | nastav prava adresare na 0777
	$fp  = fopen($file_name, $opt['type']);
	if ($fp === false)
		{
		umask($old);
		fce_notice($err_fn.'Cannot open file '.$file_name.'.', 'error');
		return false;
		}
	// cekej na locknuti 5000 ms, zkousej to kazdych 0 - 100 ms
	$can_write = false;
	$i     = microtime();
	$i_end = $i + $opt['end_time'];
	while (!$can_write && microtime()<$i_end);
		{
		$can_write = flock($fp, LOCK_EX);	// lock
		if (!$can_write)
			{
			usleep(round(rand(0,100)*1000));	// micro-second
			}
		}
	if ($can_write === false)
		{
		umask($old);
		fclose($fp); 
		fce_notice($err_fn.'Cannot unlock file '.$file_name.'.', 'error');
		return false;
		}
//	fseek($fp, $file_pos_line);	// !!! zakomentovat
	fwrite($fp, $data);
	flock($fp, LOCK_UN);				// unlock
	fclose($fp); 
	@chmod($file_name, $opt['file_chmod']);	// !nastavit prava k zapisu souboru, 0755 (rwx r.x r.x) nebo 644 (rw. r.. r..) (owner-vlastnik, group-skupina, other-ostatni, r-read, w-write, x-execute; umask, mkdir)
	umask($old);
	return true;
	}

public function fileRead($name)
	{
	if (file_exists($name))
		{
		$data = file_get_contents($name);
		return $data;
		}
	return false;
	}

public function fileMove($path_from='', $path_to='', $rewrite=false)
	{
	$err_fn = $this->errFn('fileMove');
	if ($rewrite==true || !file_exists($path_to))
		{
		$old  = umask(0);
		@chmod($file_path,0777);	// nastav prava adresare na 777 !nebezpecne
		$bool = move_uploaded_file($path_from, $path_to) || copy($path_from, $path_to) || $this->fileCopy($path_from, $path_to);
		if ($bool!==false)
			{
			fce_notice($err_fn.'Soubor uploadovan.','');
			}
		else	{
			fce_notice($err_fn.'Cannot move file from "'. $path_from .'" to "'. $path_to .'". Check file permitions.', 'error');
			}
		@chmod($to,0444);		// https://www.tutorialspoint.com/…rmission.htm
		umask($old);
		return $bool;
		}
	fce_notice($err_fn.'Cannot move file. File "'.$path_to.'" is exist!', 'error');
	return false;
	}

public function upload($input_name, $file_path, $rewrite=false)		// NORMAL UPLOAD
	{
	$err_fn    = $this->errFn('upload');
	$path_from = $this->inputRead($input_name);
	if ($path_from===false)
		{
		return false;
		}
	return $this->fileMove($path_from, $path_to);
	}
peter
JavaScript, AJAX, jQuery › Problém s odesláním formulář…
10. 7. 2018   #380931

Na nevyznam se odpovidat, tak se ho nauc :) A vzhledem k tomu, ze tve dotazy tu vidam neco pres rok... Opet zadarmo a opet zadna vlastni snaha. Nekdo by to mohl oznacit za zlodejinu :)

$(".validate-form").submit --- tohle nejspis nahrazuje zapis <form onsubmit="return mojefunkce();" action="posli.php">
Pokud je return uvnitr v 'mojefunkce' true, tak se formular odesila do action.
Pokud false, formular se neodesila.

Puvodni kod tedy funguje tak, ze
1. check = true
2. cyklus, projdi vsechna policka a kdyz je neco spatne, nastav check = false (jakasi validace)
3. return check

var noValidate = $(this).find('[clicked="true"][formnovalidate]').length !== 0;
if (noValidate) { return true; }

Tady si nejsem jisty, co to presne udela ten jquery zapis. Prijde mi, ze je to nejaky nesmysl. Tezko hadat bez html kodu, co jsi chtel docilit. Takze, dalsi krok je google.
google = jquery find examples // nebo mozna
google = jquery find examples by name checkbox

https://stackoverflow.com/questions/4870494/jquery-find-child-checkbox

Cili, bych tam ocekaval spis neco takoveho

$tc = $(this).parent().find('input:checkbox:first'), // nebo ('input[name="nevalidovat"'),
if ($tc.attr('checked')) {...}


https://api.jquery.com/…ox-selector/

event.preventDefault(); // to je asi neco, co tam strasne moc nechces, zkopiruji ti celou cast z dokumentace... 

// Prevent the form from submitting
$( "form" ).submit(function( event ) {
    event.preventDefault();
});

Prelozeno do cestiny: Zabran odeslani formulare za kazdou cenu. Ok, tak jen bez poslednich slov s cenou :)
1. Jde o to, ze kdyz kliknes na <input type=submit>, tak udalost click se ulozi do objektu event. Bylo kliknuto, bylo kliknuto na element button.
2. Nekde na pozadi bezi program sledovac udalosti elementu. Zjisti, ze bylo kliknuto na element, ktery ma zpusobit odeslani formulare. Spusti funkci form onsubmit a ceka na jeji vysledek.
3. Pokud tam mas navazavou vlastni funkci, to muzes. Ale, onsubmit je samostatna funkce, pseudokod by vypadal nejak takto:

onsubmit=funkce(event){ mojefunkce(event){ return neco; }}

Default je kazda funkce nastaveny return na true, cili

onsubmit=funkce(event){ mojefunkce(event){ return neco; } return true;}

4. Cili, vykona se tva funkce mojefunkce a onsubmit vrati defaultne true. A pokud ano, tak se pokracuje dal v odesilani formulare pomoci adresy action, neco jako odesli(url=action, data=inputy).

Takze, pokud nechces formular odeslat, tak vratis returnem false.
onsubmit=funkce(event){ mojefunkce(event){ return neco; } return false;}

Pokud je tva funkce validacni a ma rozhodovat o odeslani nebo ne, tak by pseudokod vypadal takto
onsubmit=funkce(event){ return mojefunkce(event){ return neco; } }
A nebo muzes pouzit zastaveni sledovace udalosti event.preventDefault();
onsubmit=funkce(event){ mojefunkce(event){ if (!neco) event.preventDefault(); } }

Tak, jak to mas ted napsane, se to chova podle mne takto (za predpokladu, ze spravne funguje to novalidate = checkbox...)
- pokud je zaskrtnuty, ukonci se funkce 'return true;' a formular se odesle
- pokud neni zaskrtnuty, ukonci odesilani e.preventDefault();
- a dalsi casti uz nemaji na samotne odesilani (submit) vliv :)

peter
XML / XSL(T) › XML_DITA
8. 1. 2017   #214413

Zkousel jsi to dat do google?

https://docs.oasis-open.org/dita/v1.2/os/spec/langref/bibliolist.html

<bookmap>
  <!-- ... -->
  <backmatter>
    <amendments href="updatesToTheBook.dita"/>
    <booklists>
      <trademarklist href="listoftrademarks.dita"/>
      <bibliolist href="bibliography.dita"/>
      <indexlist/>
    </booklists>
  </backmatter>
</bookmap>
peter
JavaScript, AJAX, jQuery › Prihlásenie cez ajax alebo r…
6. 1. 2017   #214392

Html / javascript je treba odesilat pres https. Jde o to, aby nikdo nemohl prihlaseni napodobit, kdyz sedi vedle v pokoji a vidi celou tvou bezdratovou komunikaci, vidi html / js, kdyz si tu stranku take otevre.

Cili, jestli udelas html formular nebo to resis na pozadi pres javascript, je uplne jedno. A na tu otazku se neda odpovedet.

peter
PHP › Parser z M Onlajny
2. 1. 2017   #214345

Tu stranku davam proto, ze je mozne si na ty funkce kliknout a pise tam, co delaji a semtam byva i nejaky pouzitelny priklad.

peter
PHP › Parser z M Onlajny
2. 1. 2017   #214344

 class je attribut, vsechny attributy muzes vytahovat takto

example 1 posledni radky xml:

  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

example 5 posledni radky php: <?php

foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;

funkce, ktere class objekt dale obsahuje jsou...
http://php.net/…tor.php ;

/* Methods */
public mixed current ( void )
public SimpleXMLIterator getChildren ( void )
public bool hasChildren ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Inherited methods */
final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )
public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )
public mixed SimpleXMLElement::asXML ([ string $filename ] )
public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )
public int SimpleXMLElement::count ( void )
public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )
public string SimpleXMLElement::getName ( void )
public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )
public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )
public string SimpleXMLElement::__toString ( void )
public array SimpleXMLElement::xpath ( string $path )
}

Tohle je nejaky nesmysl, ktery se ani neodvazim komentovat. Mozna v php7, ale v php, ktere znam ja, takhle zapisovat nelze
$time = $domPhpDocument->document.getElementByClass('time');
 

peter
PHP › CMS v PHP, mySQL - test
1. 1. 2017   #214335

Mno, bylo by fajn to prepsat na pdo a php 7.

https://github.com/BluesatKV/CMS-Bluesat/blob/master/admin/template/newcat.php
Tady bych se treba vyhnul michami html, js, php dohromady. Napr vypsani selectu cyklem uprostred php pri nespravnem nastaveni php muze delat potiz. Navic to proste nema pres funkci, ale ma tam furu ifu. Snadno udelas chybu.
select name="jak_permission[]"
Osobne mam funkce
html_selectlist($params, $list, $selected) nebo
html_checklist($params, $list, $selected) pro checkboxy
$params = array (id=>..., name=>..., onclick=>)
list = (1=>auto,2=>motorka, ...)
selected = (2, 5)

Testovat to nejdu. Pokud ti to vyhovuje, tak to pouzij :)

peter
PHP › Parser z M Onlajny
1. 1. 2017   #214334

http://php.net/manual/en/simplexml.examples-basic.php 
(xml soubor je v example 1)

Example #5 Using attributes

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Access the <rating> nodes of the first movie.
 * Output the rating scale, too. */
foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>
peter
PHP › č prepíše na ?
1. 1. 2017   #214333

:)
Podivej, otevres si phpmyadmina.
1. Podivas se, jak mas nastavene pripojeni nebo zkusis vytvorit novou tabulku. Tam ti nabizi, jake ma pouzit colation.
2. Rozklikas tabulku a podivas se na strukturu pripadne jestli najdes nekde kodovani. Tam by mel ukazovat stejne kodovani, idealne. cili to utf8.
3. A ted, kdyz delas import, tak musis vedet v jakem kodovani mas soubor. Ted to zacne byt hrozne zajimave. Kdyz soubor udelas ve win, tak kodovani je win-1250 pro header() pro echo na obrazovku, ale i SET NAMES pro sql musis dat na win-1250. Db by si to pak mela spravne prekodovat do tabulky s utf8.

Vetsinou u prevodu starych db do novych pc je soubor v latin-swedish a db maji tabulky tez latin, SET NAMES je tez latin. Takze je dobre tam vzdycky vnutit vlastni prikaz nez spolehat na default nastaveni.

Kdyz treba delas SELECT z db a navic vypisujes soubor z win-1250, tak muzes pred SELECT pouzit SET NAMES pro utf8, php header pro uft8, ale soubor musis prekonvertovat pres iconv() nebo neco jako mb_conv() z w1250 na utf8. jinak se na obrazovce zobrazi nesmysly.

Spatne se to popisuje, udelat to je otazka asi minuty :) Tak je fajn, ze se ti to nejak podarilo.
Jeste se ti muze stat, ze to prave naimportujes se spatnym kodovani. Jakoze soubor mas w1250, ale das SET NAMES latin1 a tabulka bude utf8. Tak to pak uz z ni ve spravnem kodovani nikdo nedostane a je treba to pres php nejak opravit :)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý