Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou
… více »Patchouli je open source implementace EMR grafického tabletu (polohovací zařízení). Projekt je hostován na GitLabu.
Český Nejvyšší soud potvrdil, že česká právní úprava plošného uchování dat o elektronické komunikaci porušuje právo Evropské unie. Pravomocným rozsudkem zamítl dovolání ministerstva průmyslu a obchodu. To se teď musí omluvit novináři Českého rozhlasu Janu Cibulkovi za zásah do práv na ochranu soukromí a osobních údajů. Ve sporu jde o povinnost provozovatelů sítí uchovávat údaje, ze kterých lze odvodit, kdo, s kým a odkud komunikoval.
Google bude vydávat zdrojové kódy Androidu pouze dvakrát ročně. Ve 2. a 4. čtvrtletí.
Bezpečnostní specialista Graham Helton z Low Orbit Security si všímá podezřelých anomálií v BGP, zaznamenaných krátce před vstupem ozbrojených sil USA na území Venezuely, které tam během bleskové speciální vojenské operace úspěšně zatkly venezuelského diktátora Madura za narkoterorismus. BGP (Border Gateway Protocol) je 'dynamický směrovací protokol, který umožňuje routerům automaticky reagovat na změny topologie počítačové sítě' a je v bezpečnostních kruzích znám jako 'notoricky nezabezpečený'.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,58 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,32 %. Procesor AMD používá 67,43 % hráčů na Linuxu.
V Las Vegas probíhá veletrh CES (Consumer Electronics Show, Wikipedie). Firmy představují své novinky. Například LEGO představilo systém LEGO SMART Play: chytré kostky SMART Brick, dlaždičky SMART Tagy a SMART minifigurky. Kostka SMART Brick dokáže rozpoznat přítomnost SMART Tagů a SMART minifigurek, které se nacházejí v její blízkosti. Ty kostku SMART Brick aktivují a určí, co má dělat.
$foto = addslashes(fread(fopen($_FILES["foto"]["tmp_name"], "rb"), $_FILES["foto"]["size"]));Problém je, že se musí soubor dostávat na server přes move_uploaded_file. V nápovědě mají jednoduchý příklad použití funkce move_uploaded_file:
move_uploaded_file($_FILES["muj_soubor"]["tmp_name"],"./nahrane_soubory/novy_soubor");To ale není to, co bych chtěl. Navíc s jejich podporou není moc dohoda. Skript na nahrávání tvořím poprvé. Jak v tomhle případě dostat nějak elegantně fotku do databáze? Za případné odpovědi předem děkuji.
Celá databáze by měla fungovat tak, že v jedné řádce bude vše, co by se pak mělo zobrazit v jednom odstavci.
Cože? To se bude počet sloupců postupně narůstat podle max počtu obrázků v nějakém odstavci? Toto není dobré řešení.
Co obrázek to záznam, obrázek jako BLOB (MEDIUMBLOB by mohl stačit) a unikátní index obrázku, případně jestě info o rozměrech obrázku (pro attr width a height) atd. A odkazovat se na něj přes id.
Jakýsi upload funguje, ale ani nevím, jestli sem vůbec psát, jak jsem to vyřešil. Fotku prostě uploaduji na server jako temp.jpg a pak jí nahraji do databáze. Zatím je to pracovní verze, takže to ledacos chybí. Ani netuším, jestli je tam fotka ve správném formátu. Dá se to nějak prohlédnout aniž bych jí musel zobrazovat na stránce? V phpMyAdmin je správně velikost, ale náhled se mi nikde nepodařilo najít.
echo "Je to jednoduché, primitivní a aspoň na první pohled funkční, ale nepřipadá mi to zrovna nejelegantnější. Přivítal bych nějaký typ, jak to napravit a vaše zkušenosti, jestli tohle řešení ukládá funkční .jpeg. Našel jsem ho ve článku z roku 2004 na linuxsoftu. Možná se od té doby něco změnilo Další co budu řešit, je zobrazení. Můžete mi sem, prosím, dát něco spolehlivého, co zaručeně funguje, pokud je obrázek v databázi správně? Řešení jsem našel víc, ale o spoustě z nich jsem se pak někde v diskusi dočetl, že nefungují nebo jsou články poměrně staré. Předem děkuji.
Zadali jste fotku".$_POST['foto']; move_uploaded_file($_FILES["foto"]["tmp_name"],"temp.jpg"); // upload fotky na server $fp = fopen("temp.jpg", "rb"); $binarydata = addslashes(fread($fp, filesize("temp.jpg"))); ............................................. $prikaz = "INSERT INTO $tb (Poradi, Text, Foto, Dalsi) VALUES('$index', '$text', '" . $binarydata . "', '$dalsi')"; // zápis do databáze.
Za prvé, obrázky je lepší ukládat do nějakého adresáře a do databáze jen odkazy na ně.Nic není jen tak lepší. Je to lepší jen v něčem a v něčem jiném zase ne. Pokud těch obrázků bude celkem pět a půl, pak to snad pro MySQL problém nebude a navíc se nebude muset šachovat se soubory na disku, s jejich oprávněním apod. (při safe_mode víc problémů než užitku). Jen je potřeba si uvědomit, co znamenají několikakilobajtové bloby v tabulce - že např. sekvenční prohledávání může být pomalejší, nebo že dump databáze může trvat déle.
Tedy pokud i ve skutečnosti vypadá takhle a nezjednodušil jsi ho kvůli vložení sem. Typicky PHPkové promíchávání výstupu s funkčním kódem. Neověřování návratových kódů. Sloupeček s úchvatným jménem Dalsi (to je skoro tak výmluvné jako sloupec pojmenovaný Sloupec)
Možná budeš chtít provádět i nějakou změnu velikosti obrázku. Až ti tam někdo nahraje fotku přímo z foťáku s 8 megapixely, moc dobře to na webu vypadat nebude. Nebo aspoň by bylo dobré ověřit, že uploadovaný soubor je skutečně obrázek (a to nejlépe obrázek v nějakém rozumném grafickém formátu). Pak mám ještě ve zvyku si k obrázku ukládat jeho rozměry, abych je mohl uvést v html tagu img, protože se pak stránka nesesype, když se obrázek nenačte (nebo dokud se nenačte).
< echo " <"img" src="Mertlm.jpg" width="110" height="154" hspace="10" align="left" border="0"> " >Musel jsem přidat uvozovky u značky pro obrázek, protože není povolena a smazat 2 otazníky, takže php v ukázce uvozují jen < a končí >, ale jinak se mi po přidání obrázku do php kódu stránka vůbec nevygeneruje. U jiného souboru, který jsem měl možnost tvořit na jiném editoru se mi to podařilo v tomhle tvaru zprovoznit. S proměnou jsem to nezkoušel. Nevíte někdo, jestli je to kódováním nebo něčím podobným? Je to docela nepříjemné, protože bez toho nemůžu teď natvrdo zadanou fotku nahradit proměnou.
< echo '<"img" src="Mertlm.jpg" width="110" height="154" hspace="10" align="left" border="0">'; >
< php header("Content-type: image/jpeg");
.....
pak kontaktovat databázi
......
a vypsat všechny řádky
while (list($poradi,$text, $foto, $dalsi) = mysql_fetch_row($navrat)){
echo(" |
<"img" src= '$foto' width='110' height='154' hspace='10' align='left' border='0'>
$text $dalsi |
<img src="getfoto.php?id=1" … > odkaz na skript (třeba použitý getfoto), který obrázek z databáze vytáhne a pošle ho klientovi. Aby bylo možné odeslat správný obrázek, je třeba skriptu předat pomocí parametru nějaký jednoznačný identifikátor obrázku (id v databázi například).
getfoto.php:
<?php
if (isset($_GET['id']) {
$id = $_GET['id'];
} else {
die('Fotka nenalezena…');
}
… // vyhledání obrázku v databázi podle jeho id
if ($row = mysql_fetch_row($result)) {
header('Content-type: image/'. $row[x]); //odeslání typu obrázku (png/jpg...)
echo $row[data]; //binární data obrázku
}
?>
echo $row[data] doporučuji dát ještě exit(), aby cokoliv, co by mohlo jít ještě neúmyslně na výstup (typicky znaky konce řádku, pokud jich je za ?> více) nebylo považováno za data obrázku.
$p = "nejaky"; echo "V promenne je $p text";vypise
V promenne je nejaky textKdezto
$p = "nejaky"; echo 'V promenne je $p text';vypise
V promenne je $p textPotrebujes-li vypsat uvozovky, lze to dvema zpusoby:
echo "Nejaky \"text\""; echo 'Nejaky "text"';Vypise se ti
Nejaky "text" Nejaky "text"Ja osobne pouzivam prvni zpusob (zpetne lomitko) - nemuze se mi stat, ze by se mi vypsalo jmeno promenne misto jejiho obsahu (pokud uz tu promennou vyjimecne uvedu primo do vypisovaneho retezce).

Tak mě napadá. Nebylo by snazší obrázek zakódovat a pracovat s ním v téhle podobě? Z databáze by se jich mělo načítat tak 5 najednou a většinou jsou kolem 10 nebo 20 KB. Myslím si, že v tomhle případě zpomalení nebude moc znát.
CREATE TABLE `pictures` ( `id` int(10) unsigned NOT NULL auto_increment PRIMARY KEY, `data` blob, `title` varchar(255) default NULL )upload.php:
<?php
if (! empty($_POST["title"])) {
$filename = $_FILES["soubor"]["tmp_name"];
$db = new mysqli("localhost", "fotky", "xxx", "test");
$title = $db->real_escape_string(stripslashes($_POST["title"]));
$data = $db->real_escape_string(file_get_contents($filename));
$db->query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
echo "Soubor vlozen pod id " . $db->insert_id;
$db->close();
}
?>
<form method="post" enctype="multipart/form-data">
Title: <input name="title"><br>
<input type="file" name="soubor"><br>
<input type="submit">
</form>
galerie.php:
<?php
$db = new mysqli("localhost", "fotky", "xxx", "test");
$result = $db->query("SELECT id, title FROM pictures");
while ($row = $result->fetch_row()) {
echo "<img src='getimg.php?id=${row[0]}' alt='${row[1]}'>";
}
$db->close();
?>
getimg.php:
<?php
$db = new mysqli("localhost", "fotky", "xxx", "test");
$result = $db->query("SELECT data FROM pictures WHERE id=" . ((int) $_GET['id']));
header("Content-Type: image/jpeg");
$row = $result->fetch_row();
echo $row[0];
$db->close();
exit();
?>
Máš tam jak upload, tak zobrazování fotek z databáze (a nic jiného; to title je tam spíš jen na ukázku). Jen upozorňuji, že ten kód jsem sesmolil teď narychlo, v PHP už jsem dlouho nic nedělal a pod tento kód bych se jinak raději ani nepodepsal, protože mu stále hodně chybí (je poněkud minimalistický
). Nicméně je funkční, zkoušeno na PHP 5.2.6.
ukazuje mi to tuto chybu:
Fatal error: Cannot instantiate non-existent class: mysqli in /3w/czechian.net/b/bike/test-fotky/upload.php on line 4
4 radek je pripojeni k db.
pritom to mam vyplnene 100% dobre.
nechapu...
tzn. zkuste misto
new mysqli pouzit mysql_connect
a misto $db->query napsat mysql_query
atd.
if (! empty($_POST["title"])) {
$filename = $_FILES["soubor"]["tmp_name"];
$db = mysql_connect("mysql.webzdarma.cz", "bike45", "ex66fd", "bike45");
$title = $db->mysql_real_escape_string(stripslashes($_POST["title"]));
$data = $db->mysql_real_escape_string(file_get_contents($filename));
$db->mysql_query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
echo "Soubor vlozen pod id " . $db->insert_id;
$db->close();
takto ?
<?php
if (! empty($_POST["title"])) {
$filename = $_FILES["soubor"]["tmp_name"];
$db = mysql_connect("localhost", "fotky", "xxx", "test");
$title = mysql_escape_string(stripslashes($_POST["title"]));
$data = mysql_escape_string(file_get_contents($filename));
mysql_query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
echo "Soubor vlozen pod id " . mysql_insert_id();
mysql_close($db);
}
?>
<form method="post" enctype="multipart/form-data">
Title: <input name="title"><br>
<input type="file" name="soubor"><br>
<input type="submit">
</form>
galerie.php:
<?php
$db = mysql_connect("localhost", "fotky", "xxx", "test");
$result = mysql_query("SELECT id, title FROM pictures");
while ($row = mysql_fetch_row($result)) {
echo "<img src='getimg.php?id=${row[0]}' alt='${row[1]}'>";
}
mysql_close($db);
?>
getimg.php:
<?php
$db = mysql_connect("localhost", "fotky", "xxx", "test");
$result = mysql_query("SELECT data FROM pictures WHERE id=" . ((int) $_GET['id']));
header("Content-Type: image/jpeg");
$row = mysql_fetch_row($result);
echo $row[0];
mysql_close($db);
exit();
?>
$db = mysql_connect("localhost", "fotky", "xxx", "test");
napiste
$db = mysql_connect("localhost", "fotky", "xxx");
mysql_select_db("test");
OK. diky moc. Uz je to OK... ale presto me trapi, ze nevim do jake slozky se ma ukladat obrazek.
diky za zdrojak. zkousim to, ale nezapisuje se to do db... krome toho, do jake slozky se ma nahrat ten uploadovany obrazek ?
Tiskni
Sdílej: