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

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

 

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

peter
Právo a podnikání › Teplžtní čerpadlo s úřinnost…
11. 12. 2023   #391689


remmidemmi... Z fyziky pro 8.třídy (kdopak si to pamatuje :) ) platí, že neexistuje žádný stroj na planetě Zemi, který by vyrobil více než se mu dodalo

No, kdyz myslis :)

Ti sami fyzikove take tvrdili, ze se neda jet plachetnici rychleji nez vitr. Jenze vitr je zrychlujici sila, takze limity jsou jen odpor vzduchu (v pripade plachto-auta) nebo vody u lode.

Dalsi zajimavy fenomen je ledka. Tam se vytvori 1 foto castice a odrazem a srazkami se vyrobi mnoho dalsich. Ale pocet dodanych castic je 1. Ano, je treba energii. Ale, prislo mi to jako zajimavy fenomen :)

Ja si myslim, ze s tim cerpadlem to bude tak, ze bude mit 300% proti beznym cerpadlum.
Spoluzak rikal, ze ma tepelne cerpadlo na pude a ohriva vodu pro boiler a vytapeni ve sklepe. Udajne usetri 1/3 energie. Tusim rikal, ze ho to stalo 40.000. To mas behem 3 let zaplaceno.
Cili, je mozne, ze to cerpadlo dodava teplo z nekolika zdroju a dosahuje i tech 300%.
Kuprikladu, pred vikendem byl clanek, ze maji tepelnou elektrarnu, takovy dvojsloup, kde dole maji cernou polokouli, ohrivaji zem a teplem v plasti sloupu roztaci vrtuli a chladem uprostred tez. Maji takovy okruh, instaluji to do pouste. Uplne mi to neni jasne, ale udajne je to zazracne vynosne na energii. Funguje 24h.

A pak tu mas solarni panely. bezny ma 10-15%, v laboratori maji 66-80%. Coz je 500% ucinnejsi nez bezny panel :) A navic tam muzes opet cerpat teplo ze zeme atd... Cele to bude sbirat tedy energii z ruznych zdroju.

Treba, nevim, jestli se tim nekdo zabyval, ale treba dest pada volnym padem a dala by se sbirat kineticka energie pri dopadu. Treba nejakym piezoelektrickym clankem, folii.

peter
.NET › Elipsa a rozpočítání bodů
18. 8. 2022   #390409

Tak si to zkus precist a prelozit :) Zatim to vypada, ze si to nadelis jako vanocni darek pod stromecek tak, ci tak :)

peter
JavaScript, AJAX, jQuery › Rozbalovací tabulka
16. 3. 2022   #389991

https://jsfiddle.net/39gsp6q2/
- js fiddle se nelibylo asi, ze pouzivam f, tak jsem to zmenil na fff
- a take, na konci ma byt misto /script

<script>
...
</script>
peter
Visual Basic › jak stáhnout obrázek z netu
31. 1. 2022   #389811

Co jsi nasel googlem?
Vetsinou to funguje tak, ze se pouziva neco jako curl. Samozrejme o VB nic nevim, takze netusim, jak se to tam jmenuje. Ve VB mozna pujde otevrit browser.

Co jsem nasel ja googlem?

Dim Client as new WebClient
Client.DownloadFile(Source, Destination)
Client.Dispose

---

Private Shared Sub DownloadImage(url As String, saveFilename As String)
    Dim httpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
    Dim httpWebResponse = DirectCast(httpWebRequest.GetResponse(), HttpWebResponse)
    If (httpWebResponse.StatusCode <> HttpStatusCode.OK AndAlso httpWebResponse.StatusCode <> HttpStatusCode.Moved AndAlso httpWebResponse.StatusCode <> HttpStatusCode.Redirect) OrElse Not httpWebResponse.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase) Then
        Return
    End If
    Using stream = httpWebResponse.GetResponseStream()
        Using fileStream = File.OpenWrite(saveFilename)
            Dim bytes = New Byte(4095) {}
            Dim read = 0
            Do
                If stream Is Nothing Then
                    Continue Do
                End If
                read = stream.Read(bytes, 0, bytes.Length)
                fileStream.Write(bytes, 0, read)
            Loop While read <> 0
        End Using
    End Using
End Sub

----
https://www.digitalcoding.com/…rom-URL.html

''' <summary>
02
	''' Function to download Image from website
03
	''' </summary>
04
	''' <param name="_URL">URL address to download image</param>
05
	''' <returns>Image</returns>
06
	Public Function DownloadImage(ByVal _URL As String) As Image
07
	    Dim _tmpImage As Image = Nothing
08
	 
09
	    Try
10
	        ' Open a connection
11
	        Dim _HttpWebRequest As System.Net.HttpWebRequest = CType(System.Net.HttpWebRequest.Create(_URL), System.Net.HttpWebRequest)
12
	 
13
	        _HttpWebRequest.AllowWriteStreamBuffering = True
14
	 
15
	        ' You can also specify additional header values like the user agent or the referer: (Optional)
16
	        _HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
17
	        _HttpWebRequest.Referer = "http://www.google.com/"
18
	 
19
	        ' set timeout for 20 seconds (Optional)
20
	        _HttpWebRequest.Timeout = 20000
21
	 
22
	        ' Request response:
23
	        Dim _WebResponse As System.Net.WebResponse = _HttpWebRequest.GetResponse()
24
	 
25
	        ' Open data stream:
26
	        Dim _WebStream As System.IO.Stream = _WebResponse.GetResponseStream()
27
	 
28
	        ' convert webstream to image
29
	        _tmpImage = Image.FromStream(_WebStream)
30
	 
31
	        ' Cleanup
32
	        _WebResponse.Close()
33
	        _WebResponse.Close()
34
	    Catch _Exception As Exception
35
	        ' Error
36
	        Console.WriteLine("Exception caught in process: {0}", _Exception.ToString())
37
	        Return Nothing
38
	    End Try
39
	 
40
	    Return _tmpImage
41
	End Function

	' Download web image
02
	Dim _Image As Image = Nothing
03
	_Image = DownloadImage("http://www.youdomain.com/sample-image.jpg")
04
	 
05
	' check for valid image
06
	If _Image IsNot Nothing Then
07
	    ' show image in picturebox
08
	    pictureBox1.Image = _Image
09
	 
10
	    ' lets save image to disk
11
	    _Image.Save("C:\\sample-image.jpg")
12
	End If
peter
JavaScript, AJAX, jQuery › C# API pole obrázků do JS
25. 11. 2021   #389033

Njn, kdyz ty mu davas takhle komplexni objekt, to se pak neni cemu divit :) Zkus tam dat

console.log(response[i].propertyitems[0].value) // nebo
console.log(JSON.stringify(response[i].propertyitems[0].value))

Jinak, podle obrazku to vypada, ze to mas prekodovane na base64. Do src by to mozna fungovalo

img.src = "data:image/jpeg;base64," + response[i].propertyitems[0].value;
// ale, to neni jiste, by se muselo zkusit

Kazdopadne, jak pises, zmenil jsi vystup, to je lepsi reseni.

peter
JavaScript, AJAX, jQuery › Chrome Extension
12. 6. 2020   #386229

Navic, v tom prikladu onmessage spousteji nad objektem channel.port1, nikoliv wondow nebo iframewindow.
 

peter
JavaScript, AJAX, jQuery › Chrome Extension
12. 6. 2020   #386228

Nevim, jak vypada cely js kod, ale od pohledu bych tipnul, ze event je udalost prohlizece. A pokud si pamatuji, ty nemaji polozku message.
event.data.message === "start"

Netusim, co ti to pise do logu, takovy vypis jsi neposkytnul, takze o tom ani nebudu spekulovat.
console.log(event.data);

someElement.addEventListener('message', function(event) {...}) - by melo byt totez jako
someElement.onMessage() = function (event) {...} - kde event byva obvykle udalost mysi, klavesnice, httprequestu
addEventListener('message', function(event) {...}) - v tomto pripade je element objekt window
https://developer.mozilla.org/…ventListener#…


https://developer.mozilla.org/…eb/API/Event
Podle dokumentace mozilly event zadne message nevraci.

web-socket message, link z te stranky eventu
https://developer.mozilla.org/…MessageEvent
To tam ma onmessage malymi pismeny, nezvykle.
V tom pripade nemuzes zachytavat pres listener, ale musis pouzit tu funkci. To je totiz funkce jineho objektu nez window. Neni to klasicky event, ale uz primo callback funkce.

https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/postMessage

var channel = new MessageChannel();
var para = document.querySelector('p');
    
var ifr = document.querySelector('iframe');
var otherWindow = ifr.contentWindow;

ifr.addEventListener("load", iframeLoaded, false);
    
function iframeLoaded() {
  otherWindow.postMessage('Hello from the main page!', '*', [channel.port2]);
}

channel.port1.onmessage = handleMessage;
function handleMessage(e) {
  para.innerHTML = e.data;
}   
peter
PHP › Jak ověřit checkboxy a nové…
5. 6. 2020   #386188

vsude melo byt  $_REQUEST, samy preklep, cim jsem starsi :)
 

peter
PHP › Jak ověřit checkboxy a nové…
4. 6. 2020   #386174

Netusim z popisu, jak presne ti to funguje.

Checkboxy resim tak, ze mam zvlast tabulku propojeni (id_item_produkt, id_typ_checkboxu, id_item_checkbox).
Kdyz edituji id_item_produkt=112233 a zaskrtnu jine checkboxy, tak smazu vsechny z tabulky propojeni, kde id_item_produkt=112233 a pridam nove podle toho, jake jsou zaskrtnute.

(id_item_produkt, id_typ_checkboxu, id_item_checkbox)
(112233=knihaXYZ, 1=autor, 1=Ales)
(112233=knihaXYZ, 1=autor, 2=Tomas)
(112233=knihaXYZ, 1=autor, 3=Pepa)

Druha moznost je, vytvorit si tabulku propojeni se strukturou (id_item_produkt, checkbox1, checkbox2, ...). Pri Updatu produktu vynulujes odpovidajici radek a prepises na 1 vsechny zaskrtnute

(id_item_produkt, checkbox1, checkbox2, ...)
(112233=knihaXYZ, true=Ales, true=Tomas, true=Pepa, false=Franta, false=Jenda)
peter
MS SQL › MS Access - předávací dotaz…
25. 5. 2020   #386149

google = MS Access sql dotaz dynamicka promenna

Snad ti to pomuze, neznam access.



Dim com As New SqlCommand("SELECT * FROM Pohyby_stajaky WHERE Datum >= @Datum_od AND Datum <= @Datum_do Order By Cislo, Datum", "váš connectionstring") 'Vytvoříme SqlCommand
com.Parameters.AddWithValue("Datum_od", Now) '1. parametr
com.Parameters.AddWithValue("Datum_do", Now.AddDays(20)) '2. parametr
Dim r As SqlDataReader
com.Connection.Open() 'Otevřeme připojení
r = com.ExecuteReader() 'Získáme data
com.Connection.Close() 'Zavřeme připojení
peter
PHP › omezení vnořených IF
21. 5. 2020   #386128

#8 MilanL
== je standard v mnoha jazycich, typove je ===

Jen nektere opakuji podle pascalu a=b, protoze pascal mel a:=b. Takze to bylo v pohode. Ale pak se prislo na to, ze pro prirazeni je lepsi rovnitko. A najednou se preslo u podminek na ==.
= tusim pouziva jeste python a visual basic. Z tech, co jsem nekdy pouzil :)

Pak se jeste pro prirazeni/spojovani pouziva = php/js, += php/js a .= php. Tady to dava logicky smysl, pouzit rovnitko a nedava smysl pouzit rovnitko v podmince. Protoze oba jazyky umoznuji v podmince priradit. coz se hodne casto pouziva, protoze do ifko vykonava jen do prvni kladne vyhodnoceme podmince pri spojeni s ||. 

if (c==3 || a=funkcexyz() && a==1 || a==c && bb==2)

// je to pak podobne zapisu:
bool = false;
if (c==3) {...}
else { a=funkcexyz(); if (a==1) {...} else (a==c && bb=2) {...} }

// vyhodou je, ze nezatezujes program vyhodnocovanim funkce, 
// ktera muze trvat nejaky cas. To by byl alternativni zapis tento
a=funkcexyz();
if (c==3 || a==1 || a==c && bb==2)
// tady tu funkci musis provest vzdy, kvuli podmince
// kdezto v prvnim pripade IF skonci treba castokrat podminkou c==3
// a na volani funkce nedojde

Jako, je to mysleno dobre, ale prijde mi prehlednejsi pouzivat == a === do podminek.

peter
MySQL › Převod porovnání databáze do…
21. 1. 2020   #385290

Ok. takze na webu je to dobre. V databazi je to nejak, ale zobrazi se to dobre.
Takze data mas dobre, neni treba provadet opravy po jednom znaku. Proste je vytahni najednou.
Zjisti, jake prikazy pouziva web pro databazi (jestli pouziva SET NAMES a jake kodovani nebo zadne, pak zjisti default kodovani sql, ve kterem ti to posila). Zjisti, jak ti to web zobrazuje. A prekoduj to.

Cili, jak jsem psal, priklad.
Db ma default kodovani LATIN1.
Web nema SET NAMES, takze se pripojuje k db s kodovanim LATIN1. (A uklada to do tabulky, ktera ma treba UTF, na tom vubec nesejde, protoze to uklada do tabulky v latin1; informace o kodovani v tabulce je pouze informativni, nemusi odpovidat tomu, jak jsou kodovany data).
Na web to zobrazujes jako utf8, treba, php header(...utf8). A zobrazi se znaky spravne, diakritika.

Cili, ty musis udelat to, ze php scriptem vytahnes data a nasoukas je zpet. A pak opravis ve svem programu SET NAMES na utf8. Mezitim by bylo dobre, aby jsi cely program zablokoval, bud prepnout do nejakeho rezimu udrzby v programu, pokud to umoznuje. A nebo pres htaccess vsechno presmeroval na nejakou html stranku, oznamujici udrzbu. At ti nam nikdo needituje.
V programu pak mas
SET NAMES latin1 nebo nic. Vytahnes data. Nastavis SET NAMES na UTF. Ulozis data. Kompletne cele tabulky i s id-autoincremencem a tak. (mozna je prikaz na kopii cele tabulky, ale nevim, zda se u toho da nastavit kodovani)
(ted by se to melo v phpmyadminu nebo nejakem tom programu na databazi zobrazovat ok)
Doporucuji zalozit si duplicitni tabulky nebo databazi bokem a cely prevod realizovat tam. A pak v programu nastavit, ze ma zobrazovat data z jine database.


Nevim, zda jsem to popsal dobre. Zkus treba poslat vzorek exportu. A pridej informaci o nastaveni db a strukturu tabulky. Priklad:
 

-- phpMyAdmin SQL Dump
-- version 4.0.10deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Feb 18, 2019 at 10:39 AM
-- Server version: 5.6.33-0ubuntu0.14.04.1-log
-- PHP Version: 5.5.9-1ubuntu4.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */; -- tento radek je dulezity

--
-- Database: `EvidenceActivity`
--

--
-- Table structure for table `s_link`
--

CREATE TABLE IF NOT EXISTS `s_link` (
  `idpril` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `iduser` int(10) unsigned NOT NULL DEFAULT '0',
  `idsem` int(10) unsigned NOT NULL DEFAULT '0',
  `idpred` int(10) unsigned NOT NULL DEFAULT '0',
  `idtmp` int(10) unsigned NOT NULL DEFAULT '0',
  `nazev` varchar(255) NOT NULL DEFAULT '',
  `link` varchar(255) NOT NULL DEFAULT '',
  `logdate` date NOT NULL DEFAULT '0000-00-00',
  `loguser` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`idpril`),
  KEY `idsem` (`idsem`),
  KEY `idpred` (`idpred`),
  KEY `idtmp` (`idtmp`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=193 ; -- a tento radek je dulezity (teda, spis informativni, ale kdybych delal pokus na tvych datech, jak si mam nastavit tabulku a ladit do te doby nez mi to phpmyadmin zobrazi ok)

Tam jsem oznacil 2 radky, ktere jsou dulezite.

peter
JavaScript, AJAX, jQuery › soubor js dotaz
3. 12. 2019   #384888

"Funguje mi i to co tu dal peter. " - Dik, ale jen jsem zkusil gna reseni popsat trochu jinak. Ono to nekdy pomuze k lepsimu pochopeni, vic podobnych zpusobu. Nebo naopak k vetsimu zmatku :)

Když to uložim na disk, mam názvy dní a měsicu v češtině.
Když to pošlu do toho HTML, <img src="rrd.php" />, tak to mam v angličtině.
… To moc nechapu. Pokud to generuje program v linuxu, win, tak vystup v obrazku lze ovlivnit parametrem nebo nejakym prepnutim jazyka predem. V php totez nebo nastavenim header(). Tusim, ze jsem to nikdy nepouzil, tak spis takovy vyber moznosti z googlu, manual php.net

rrdtool graph … - cestina

SET … cestina
rrdtool graph …

$graphObj->setOptions($opts); // nekde v opt cestina

$lang = 'Czech';
//setlocale(LC_TIME, $lang);
//setlocale(LC_CTYPE, $lang);
//setlocale(LC_ALL, $lang.'.'.$codeset);
//setlocale(LC_ALL, "en_US.UTF-8");
setlocale(LC_ALL, 'Czech_Czech Republic.65001')
date_default_timezone_set('Europe/Prague');
header('Content-Type: text/html; charset=UTF-8');
$graphObj->setOptions($opts);


 

peter
PHP › pole a význam k čemu je dobr…
24. 4. 2019   #383554

$integer = 123;
$string = "1234";
$znak = $string[1] // = 2
$pole = array();
$pole2 = array(1, 2, 3, 4);
$cislo = $pole2[2];
$pole3 = array('1', '2', '3', '4');
$znak = $pole3[2];
$pole4 = array('1' => 123, 'abc' => 456, 'z' = array(1, 2, 3));
$cislo2 = $pole4['1'];
$cislo3 = $pole4['abc'];
$pole5 = $pole4['z'];
$pole[0] = 123;
$pole['def'] = 'abc';
function aaa() {echo 123;}
aaa(); // volani
$x = 'aaa';// volani
$x();// volani

Zkousel jsi php.net/array nebo https://www.php.net/manual/en/book.array.php nebo google php array?


'V jakém případě je vhodné to použít, lze u databází a jaký druh u databází?'
Ta otazka nedava smysl. Databazi php nema. Sql database maji pole. Ale tam obvykle pouzivas sloupce. Vyjimecne potrebujes zapsat vice hodnot, kde nepotrebujes vyhledavat. Pak se to zapise obvykle jako string s odelovacem sloupcu.
Predstav si, ze mas data. Jak je zapises na papir? Mas cisla, text, datumy? Prevedes to do nejakeho formatu, ktery papir umi. To jsou znaky. V pripade db je to obvykle string, seznam znaku.
Databaze usporadava data do tabulek. Podobne jako mas tabulky v excelu. Nakresli si na papir tabulku, mrizku a zapis do ni pole? Jak vidis, na papire I v databazi obvykle maji sloupce presne rozmery. Rychleji se tak z tabulky tahaji data. Pak maji sloupce s promenou delkou, tam jsou data ulozeny obvykle ve format delka+text.
Nevim, co ti odpovedet na otazku database a pole.
google = database array
'How to store a array in a database? - Stack Overflow'
-> serialize ans unserialize functions
-> json_encode, json_decode
 

'Existuje nějaká alternativa k poli?'
String?
class?
google = php string
google = php class

$pole['def'] = 'abc';
$object->def = 'abc';
$object->{'def'} = 'abc';
 

peter
Návrhy na vylepšení › bug cteni prispevku pri odpo…
14. 2. 2019   #383093

Kdyz pisu prispevek a chci si precist nahore, co ten clovek psal, tak mi to zniceho nic samo kamsi odskoci na policko psani prispevky. Odroluji si nahoru a najednou blik a muzu rolovat znovu.

peter
MS SQL › Periodické čtení z loratechs…
14. 2. 2019   #383092

Uplne nechapu problem a jake mas k tomu znalosti. A me jsou spise zbezne.

Komunikace s sqlserverem (v pythonu asi pyodbc, viz gna):
- connect (server, login, psw)
- query, query, query...
- disconnect
Query je sql prikaz typu "SELECT sloupce FROM tabulka WHERE podminka ORDER BY sloupec". Server ti pak posle kopii radku, ktere odpovidaji pozadavku. Tvuj sql komunikacni program ti tento retezec znaku umi preformatovat pres Fetch funkce do radku a sloupcu.

Komunikace s Loratech server? To mi neni jasne. Jestli je tim myslis server s sql, znacky typu loratech nebo co. Ale jestli je to nejaky jiny server, tak se take pripojis, posles dotaz, co bys rad, odpojis.

SQL view, viz gna
Vysledkem sql dotazu je tabulka (v sql formatu). Pokud s tabulkou pracujes casto, vytvoris si na serveru k tabulce view.
Treba 100x chces SELECT a data v tabulce se nemeni. Tak normalne by sql server pokazde vybiral z tabulky podle podminek. Ale v pripade view si drzi vysledek v pameti a odesila uzivateli data ihned.
Nebo potrebujes z nekolika tabulek podle podminek vytahovat data. Muzes je pomoci SELECT spojit do jedne velke, ulozit do VIEW a pak tuto tabulku jeste dal filtrovat.
Proste je to ulozeni vysledku SQL dotazu do pameti.

A zpracovani kazde 2 min. Nevim, no. To je v podstate chat aplikace. U webu je treba vyhodnejsi provadet kesovani. Vygenerovat vysledky kod do souboru. Dokud nenastane UPDATE (zmena v tabulce), tak uzivateli poslat uz hotovy soubor. Coz zrovna u chatu moc nejde, tak se to samozrejme posila online.

peter
.NET › Přebarvení textu z HTML a je…
7. 1. 2019   #382715

To zadani mas od koho? Neni to nahodou ucitel? A neni nahodou placeny prave za to, aby vam pomohl?

VS nemam. C# mne nezajima.

V php nacteni souboru se provede pres (C# to ma podobne, zkus vygooglovat google = file read example c#)

$str = file_get_contents(path);
echo $str; // vypis na obrazovku

Na obarveni kodu se vetsinou pouzivaji nastroje, treba v js. Ale vas ucitel chce nejspis neco pomoci cyklu a c# nebo nastroj se c#. Precist znak ze souboru, zjistit, co to je a podle toho se rozhodnout, zda barvis nebo ukoncujes barveni a tak.
google = code hightlight syntax example c#

Jestli do ted vubec netusis, jak to funguje, cele, tak takhle
file c# -> c# server -> vygeneruje html -> posle pc uzivateli -> prevezne web browser -> zobrazi
Ve VS si muzes vyrobit c# file nebo html stranku, css a pod. Tento soubor musis nahrat na server, ktery umi c# zpracovat a prelozit ho do html kodu.
Chci rici, ze netusim, zda ti na preklad staci samotne c# nebo budes muset nekde spustit jeste server.
Na serveru preklad toho souboru spustis pak pres url v browseru, napr
localhost/mujweb/soubor.asp
 

peter
CSS › Responzívna stránka - úvodn
13. 11. 2018   #382305

Neva, no. Stale nechapu, co vlastne presne chces. Zkus obrazky, co to dela ted a co by to delat melo. Pripadne k tomu kod, treba I na jsfiddle.

Mozna, to, co hledas je prave obaleni stranky divem. Nastavis mu margin 0 auto + width.
<div>
<header>...</header>
<footer>...</footer>
</div>

Pokud bys to chtel resit, jak to mas na obrazku, 2 prouzky pres celou sirku stranky, tak bych tam pridal do kazde casti stejny 'container' (0 auto + width) a vnejsi casti nastavil ty prouzky. Tak, jak jsi to psal na zacatku. Slo by to resit I tim prvnim, ale musel bys pouzit obrazek na pozadi a to by vyzadovalo definovat presne vysku header a footer. Ale s obrazkem by slo zase carovat jako base64, nejaky ornament, spesl prechod, spesl okraje a tak.
<header><div>...</div></header>
<footer><div>...</div></footer>

peter
PHP › PHP a pochopení OOP
31. 10. 2018   #382126

#22 šnekr
isset($_SESSION["loginId"]) - a to je co, kdyz ne globalni promenna? :)

peter
JavaScript, AJAX, jQuery › Jak zastavit provádění setin…
31. 10. 2018   #382125

Josef Kulhavý
Jak zastavit setInterval?

this.func.timerStart = function()
	{
//alert('start');
	root.func.timerStop();
	root.vars.timer.counter = 0;
	root.vars.timer.timer = setInterval(root.func.timerRun, root.vars.timer.speed); //  uloz timer do promenne
	}

this.func.timerStop = function()
	{
//alert('stop');
	if (root.vars.timer.timer!=null)
		{
		clearInterval(root.vars.timer.timer); // zastav timer v promenne
		}
	root.vars.timer.timer = null;
	}

this.func.timerRun = this.func.arrowGroupMove;

Tu kaskadu si nevsimej, je to soucasti class. Konkretne (mezera strili, spousti interval):

https://mlich.zam.slu.cz/x/js-tanks.htm

peter
PHP › Dotaz do mysql
27. 9. 2018   #381769

Asi nejlepe pouzitelny by mohl byt ten posl. example
http://php.net/…examples.php
-97 / Anonymous / 4 years ago
Aby bylo jasne, tak to odesial obecnou message. Ta byva typu ping, connect, disconnect, text (handshake, reply-handshake, text). Jako text si pak muzes odesilat zpravicky typu "tonda->all Ahoj". Anebo pouzit json a posilat slozitejsi konstrukce. Neresi to uzivatele, to musis resit dalsim systemem. Tohle prijme obecne zpravu. Neco jako na poste, spadne to do krabicky, tu krabicku si system preda pani postacce (dalsimu programu) a pani postatcka si precte adresy a teprve s tim neco dela. Ale to neni problem, zavolat dalsi sluzbu s logovanim uzivatelu, s databazi jmen a tak. Uzivatel ti jako text posle sve jmeno pri prihlaseni...
 

<?php

class MySocketServer
{
    protected $socket;
    protected $clients = [];
    protected $changed;
   
    function __construct($host = 'localhost', $port = 9000)
    {
        set_time_limit(0);
        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);

        //bind socket to specified host
        socket_bind($socket, 0, $port);
        //listen to port
        socket_listen($socket);
        $this->socket = $socket;
    }
   
    function __destruct()
    {
        foreach($this->clients as $client) {
            socket_close($client);
        }
        socket_close($this->socket);
    }
   
    function run()
    {
        while(true) {
            $this->waitForChange();
            $this->checkNewClients();
            $this->checkMessageRecieved();
            $this->checkDisconnect();
        }
    }
   
    function checkDisconnect()
    {
        foreach ($this->changed as $changed_socket) {
            $buf = @socket_read($changed_socket, 1024, PHP_NORMAL_READ);
            if ($buf !== false) { // check disconnected client
                continue;
            }
            // remove client for $clients array
            $found_socket = array_search($changed_socket, $this->clients);
            socket_getpeername($changed_socket, $ip);
            unset($this->clients[$found_socket]);
            $response = 'client ' . $ip . ' has disconnected';
            $this->sendMessage($response);
        }
    }
   
    function checkMessageRecieved()
    {
        foreach ($this->changed as $key => $socket) {
            $buffer = null;
            while(socket_recv($socket, $buffer, 1024, 0) >= 1) {
                $this->sendMessage(trim($buffer) . PHP_EOL);
                unset($this->changed[$key]);
                break;
            }
        }
    }
   
    function waitForChange()
    {
        //reset changed
        $this->changed = array_merge([$this->socket], $this->clients);
        //variable call time pass by reference req of socket_select
        $null = null;
        //this next part is blocking so that we dont run away with cpu
        socket_select($this->changed, $null, $null, null);
    }
   
    function checkNewClients()
    {
        if (!in_array($this->socket, $this->changed)) {
            return; //no new clients
        }
        $socket_new = socket_accept($this->socket); //accept new socket
        $first_line = socket_read($socket_new, 1024);
        $this->sendMessage('a new client has connected' . PHP_EOL);
        $this->sendMessage('the new client says ' . trim($first_line) . PHP_EOL);
        $this->clients[] = $socket_new;
        unset($this->changed[0]);
    }
   
   
    function sendMessage($msg)
    {
        foreach($this->clients as $client)
        {
            @socket_write($client,$msg,strlen($msg));
        }
        return true;
    }
}

(new MySocketServer())->run();
?>
peter
PHP › Dotaz do mysql
27. 9. 2018   #381768

Je to trochu veda. Bohuzel nemam nikde jednoduchy kod. Mam uz do nej primichane vselijake slozitosti pro lepsi ovladani, ukoncovani serveru a tak.

peter
PHP › Dotaz do mysql
27. 9. 2018   #381767

http://php.net/manual/en/sockets.examples.php

Server pro socket funguje tak,
- nastavis si php ne konenecny time_limit
- vytvoris si server (pripojis ho na port a tak) a pripojis na nej socket (jakoze hlavni socket - server pro uzivatele)
- vytvoris si nekonecnou smycku, ve ktere poslouchas, co se deje na socketech, a) hlavnim (1), b) ostatnich (0)
- pokud prijde neco na hlavni, zjistis, co to je. Pokud je to zadost o pripojeni, ta spustis vyvoreni dalsiho socket a odesles na novy socket handshake. Pokud to druha strana potvrdi, tak nechas socket otevreny. Pokud nee, socket odpojis a smazes ze seznamu ostatnich )
- a pak proveris vsechny otevrene sockety, zda jeste reaguji (druha strana je drzi otevrene) a kdyz ne, zavres je.
- a nebo z nich prectes message

Pri testovani si nastav limit jen tak na 5s.
Pokud server neukoncis, je nutne pak uplne vypnout php. Jinak ti bude blokovat na pc port, na kterem jsi server spustil. Je to takove hodne neprijemne, kdyz nevis, proc ti php odmita spustit stejny program, ktery jeste pred chvili bez problem spustil :)

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

Zvlastni, na vsech mych webech, kde jsem to pouzil, tak neviditelny input funguje. Asi to mas spatne udelane.
Staci treba 10x odeslat formular, kde vyplnim 25 a vzdycky to aspon 1x projde.
Spravne bys to mel mit tak, ze php generujes prazdny input. K nemu otazku. Odpoved nesmi byt 0 ani 1 a nebo se opakovat treba po 25 pokusech.

Zkoukni ulozto Maji 4 mistny pismenkovy captcha kod pro pomale stahovani. Zatim se mi nestalo, z 500 pokusu za posl. 5 let, ze bych videl stejny kod 2x. Je mozne, ze to nastalo, ze si to jen nepamatuji. Ale vetsinou si jejich kody podvedomne pamatuji, cili takovych min 30 urcite. Kdybych psal ten samy, urcite mozek rekne blik, to uz jsi psal.
Normalne bych to generoval hash z casoveho razitka kombinovaneho s ip, rekneme 5-10 min interval. Plus, ukladal bych do session pocet odeslanych zprav, ktery bych take zamontoval do toho hash. Aby po odeslani zpravy mel vzdy unikatni hash a nemohl odesilat na jeden a ten samy celych 10 minut. Jestli chces, muzu zkusit tu funkci vytvorit. Sice jsem hash takhle jeste nedelal, ale vsechno je jednou poprv

peter
PHP › procisteni HTML tagu
11. 9. 2017   #217803

Jo, jenze strtolower se neda pouzit na utf, tam je mb_strtolower.

peter
PHP › Nasepkavanie pri vyhladavani…
11. 9. 2017   #217802

Jo, hele, mozna se vyplati resit naseptavani spis pomoci js a json kodu. Json tusim dela to, ze stejna slova koduje jako odkaz na text zpet. Cili, klidne stahnout celou db slov, seradis, a pak jen odkazujes zpetne na stejne useky. Nebo vlastni kod. Pr 

vitejte
vitek
viteslav

vitejte
4k
4slav
peter
PHP › Minimalizacia poctu include…
11. 9. 2017   #217798

Ono zalezi na tom, jak je to delane. Cim vic radku, tim vic jich musi php prelozit do kodu procesoru. Kdyz to jde, snazim se rozdelit program na logicke celky, ktere vyuziji ve vice souborech.

Jeste jsem neincludaval vic nez 10 souboru, ani kaskadne. Takze nemuzu rici, jaky to ma vliv. Obecne je dobre, kdyz ma disk soubory pohromade, ze je nenacita z ruznych mist. Ale u ssd je to asi fuk :) Obri soubory jsou obvykle pomale, si myslim. Ale zas treba, kdyz kopiruji na flashku, tak, kdyz se to presouva jako velky balik, je to vyrazne rychlejsi nez kdyz tam vytvari soubor po souboru do souboroveho systemu.

peter
PHP › Class active na aktuálnej st…
11. 9. 2017   #217797

kes, ampersand, samozrejme, kdyz je to dalsi parametr :)
odkaz.php?data=456&odkaz=1

peter
PHP › Class active na aktuálnej st…
11. 9. 2017   #217796

Nebo by slo pouzit primo v hrefu, ale pak je trosku slozitejsi to z tama vydolovat. Nebo aspon driv byvalo, mozna ted je na to funkce.
odkaz.php?data=456?odkaz=1
 

peter
PHP › Class active na aktuálnej st…
11. 9. 2017   #217795

Muzes pouzit i javascript. Mas treba 

<script>
odkaz = 'webapp.php';
items = document.getElementById('menu');
items = items.getElementsByTagName('A');
for (i=0; i<items.length; i++) {item = items[i]; if (item.href==odkaz) {item.className='active';}}
</script>

Nebo muzes jit treba podle poradoveho cisla 

<a href="odkaz.php?data=123#0">...</a>
<a href="odkaz.php?data=456#1">...</a>
<script>
odkaz = location.hash; //1 mozna #1
items = document.getElementById('menu');
items = items.getElementsByTagName('A');
for (i=0; i<items.length; i++) {item = items[i]; if (i==odkaz) {item.className='active';}}
</script>
peter
PHP › Riešenie pre otvorenie txt s…
11. 9. 2017   #217794

Jeste mozna jine cteni souboru
$data = file_get_content('soubor.txti');
 

Jinak, samozrejme pri vice zapisech je dobre pouzit flock, pro uzamceni souboru, pokud do nej zapisuje prave jiny prikaz.

peter
PHP › Riešenie pre otvorenie txt s…
11. 9. 2017   #217793

Ja bych to resil pres databazi. Souborove to muzes resit stejne.

zapis.php?data='rozsvit'
precti.php - ktere soucasne smaze z db ten text
zp.php?akce=zapis&data='rozsvit'
zp.php?akce=precti

Na serveru se da php spoustet tusim pres 'php precti.php' (nebo 'http precti.php' nebo tak nejak se to tam dela).

Ale slo by to delat tak, ze ke kazdemu pozadavku pridas casove razitko. Funkce si pak precte jen radky v urcitem intervalu, ostatni ignoruje. A pak ti bezi na serveru jeste proces, ktery smaze radky se starsim razitkem. Ale prijde mi to na houbec, kdyz to muze delat zrovna ten php program.

No, a pak muzes v tom php predat data primo tomu dalsimu programu, neni treba to zapisovat. Nejdriv si overis, zda je to platny prikaz, ale.
 

<?php
$data = 'rozni';
shell_exec('jinyprogram.exe -data='.$data); // tady existuje asi 5 prikazu pro spousteni z command-line, google
//http://php.net/manual/en/function.exec.php
//exec();
//system() - Execute an external program and display the output
//passthru() - Execute an external program and display raw output
//escapeshellcmd() - Escape shell metacharacters
//pcntl_exec() 
?>
peter
PHP › Nasepkavanie pri vyhladavani…
11. 9. 2017   #217792

Php generuje soubor. Soubor (data) muze byt obrazek, video, html, js, css, text, mp3, ... nebo jiny kod. 

Pr. takovy jednoduchy ajax bez pouziti js httprequestu.

--- x.php ---
<?php
echo 'var a,b,c;';
echo 'a=3;';
echo 'alert(a);';
?>

--- y.htm ---
<script src="x.php"></script>

--- y2.htm ---
<script id='aaa'></script>
<script>document.getElementById('aaa').src='x.php';</script>

Js ajax dela to, ze stahne ze serveru soubor (anicka.jpg nebo soubor.php?name=anicka.jpg). Totez dela treba tag iframe src=..., img src=..., script src=..., link. Cili, ajax dela neco podobne jako v php file_get_contents. Jenom obvykle byva nastaveny asynchronne, jakoze stahuje napozadi a proto je treba k nemu pridat navratovou funkci. Priklad zapisu 

function stahuj(soubor, cb) {...}
function stahuj_cb(data) {alert(data);}
stahuj('soubor.php?name=anicka.jpg', stahuj_cb);
stahuj('soubor.php?name=anicka.jpg', window.stahuj_cb); // nebo
stahuj('soubor.php?name=anicka.jpg', window['stahuj_cb']); // nebo
stahuj('soubor.php?name=anicka.jpg', top.window['stahuj_cb']); // pro subframe
stahuj('soubor.php?name=anicka.jpg', top.stahuj_cb); // pro subframe

x = new mujAjax();
x.file = 'soubor.php?name=anicka.jpg';
x.callback = window.stahuj_cb;
x.zacniStahovat();

To je jen priklad, jak to asi funguje. Jak je udelany ten objekt mujAjakx ve tvem programu vubec netusim.

Kdyz chces stahovat treba 10 souboru naraz, tak bys mel nekde promennou, kde bys ukladal, zda je to completed a kdyz jse vsech 10, tak zavolas treba dalsi funkci. Nebo to muzes stahovat postupne, nastavis prenos na synchronni. A nebo muzes pouzit i asynchronni, ale pak to ale budes mit kaskadne.
stahuj('soubor1', stahuj2);
stahuj2('soubor2', stahuj3);...
Nevyhoda synchronniho je, ze program ceka, az se js vykona, dostahuji data. Takze se to moc nepouziva.

peter
PHP › Linux screen output pomocí PHP
11. 9. 2017   #217791

Ano, jsou programy a hostingy, ktere maji nainstalovany prohlizec a dovedou vykreslit vystup do obrazku.

 

 

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