V Bolzanu probíhá konference SFSCON (South Tyrol Free Software Conference). Jean-Baptiste Kempf, zakladatel a prezident VideoLAN a klíčový vývojář VLC media playeru, byl na ní oceněn cenou European SFS Award 2025 udělovanou Free Software Foundation Europe (FSFE) a Linux User Group Bolzano‑Bozen (LUGBZ).
Open-source minimalistický trackball Ploopy Nano byl po modelech modelech Classic a Thumb Trackball také aktualizován. Nová verze Nano 2 používá optický senzor PAW3222 a k původně beztlačítkovému designu přidává jedno tlačítko, které ve výchozí konfiguraci firmwaru QMK přepíná režim posouvání koulí. Sestavený trackball nyní vyjde na 60 kanadských dolarů (bez dopravy a DPH).
Github publikoval Octoverse 2025 (YouTube), tj. každoroční přehled o stavu open source a veřejných softwarových projektů na GitHubu. Každou sekundu se připojil více než jeden nový vývojář. Nejpoužívanějším programovacím jazykem se stal TypeScript.
Kit je nový maskot webového prohlížeče Firefox.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.5. Přehled novinek s náhledy v oznámení na blogu.
Německo zvažuje, že zaplatí místním telekomunikačním operátorům včetně Deutsche Telekom, aby nahradili zařízení od čínské firmy Huawei. Náklady na výměnu by mohly přesáhnout dvě miliardy eur (bezmála 49 miliard Kč). Jeden scénář počítá s tím, že vláda na tento záměr použije prostředky určené na obranu či infrastrukturu.
Po dvaceti letech skončil leader japonské SUMO (SUpport.MOzilla.org) komunity Marsf. Důvodem bylo nasazení sumobota, který nedodržuje nastavené postupy a hrubě zasahuje do překladů i archivů. Marsf zároveň zakázal použití svých příspěvků a dat k učení sumobota a AI a požádal o vyřazení svých dat ze všech učebních dat.
Úřad pro ochranu hospodářské soutěže zahajuje sektorové šetření v oblasti mobilních telekomunikačních služeb poskytovaných domácnostem v České republice. Z poznatků získaných na základě prvotní analýzy provedené ve spolupráci s Českým telekomunikačním úřadem (ČTÚ) ÚOHS zjistil, že vzájemné vztahy mezi operátory je zapotřebí detailněji prověřit kvůli možné nefunkčnosti některých aspektů konkurence na trzích, na nichž roste tržní podíl klíčových hráčů a naopak klesá význam nezávislých virtuálních operátorů.
Různé audity bezpečnostních systémů pařížského muzea Louvre odhalily závažné problémy v oblasti kybernetické bezpečnosti a tyto problémy přetrvávaly déle než deset let. Jeden z těchto auditů, který v roce 2014 provedla francouzská národní agentura pro kybernetickou bezpečnost, například ukázal, že heslo do kamerového systému muzea bylo „Louvre“. 😀
Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
$set["nazev"] = "aaa";
$set["url"] = "bbb";
$set["cat"] = "ccc";
$set["stat"] = "ddd";
mysql_query("UPDATE cat SET ".implode("=".implode($set).", ", array_keys($set))." WHERE id = '".$_POST['id']."'");
tohle potřebuji vyplodit :(
mysql_query("UPDATE cat SET nazev="aaa", url="bbb", cat="ccc", stat="ddd" WHERE id = '".$_POST['id']."'");
ale už vážně nevím jak dál :( Děkuji předem za ochotu a pomoc
Řešení dotazu:
... WHERE id = '".$_POST['id']."' ...Takhle ošetření vstupu rozhodně nevypadá.
id jenom číslo, a když ne, tak skončí :).</troll>
if($_POST['id'] == 12) {
... WHERE id = '".$_POST['id']."' ...
}
else {
die("franto mas to blbe");
}
btw: nerikam, ze je to stastne reseni a videl jsem i horsi reseni, ale jde to
Jen rikam ze nez se zacne odsuzovat nekdo za neco tak treba by to chtelo odpoved:
hele mas chybu v tom a tom tak ti to nejede a chtelo by to resit radeji tak nebo onak
A ne mu nadavat do volu a sql inj a ja nevim ceho jeste.
Odpovidat na konkretni dotaz nebudu protoze uz tu na to nekdo odpovedel s tema apostrofama.
$set["nazev"] = "'aaa'"; $set["url"] = "'bbb'"; ...Ale to by se Orlando nedozvěděl, jaké že tam má chyby a následně by je ještě dlouho opakoval. Navíc je tam ještě pár dalších chyb, které jsou hezky vidět, když se místo funkce mysql_query() použije obyčejné echo.
Tady ti stejně každej bude jen naznačovat že jsi nula a až si to vyřešíš sám tak každej řekne že stejně máš špatnou koncepci. Nečekej že by ti zde někdo řekl "má se to dělat tak a tak a tady je ukázka". Poradna zde klesla na "bouchněte si..." .
V produkční praxi nikdo po nikom "hello world" nechce. A u každého projektu, který začíná jako "hello world" s apostrofy hrozí, že se potom začne používat a růst a potom tam ten bezpečnostní průser zůstane. Proto si myslím, že je nutné, dělat věci správně již od začátku.
Odpověď, kterou bys tady rád viděl, je hned úplně první. Tazatel odpoveď dostal a mohl se zeptat, co to je PDO a Prepared statement. Celá diskuse vnikla na základně jeho odmítavé reakce a já sám reaguji nikoliv na původní dotaz (ten už tu byl několikrát odpovězen), ale na reakci ohledně smyslu poradny. A trván na tom, poradna má sloužit k tomu, aby se věci dělali správně. Ne jen poradit, jak rozchodit nějaký bastl.
Miluju lidi co napisou "hello word" za pouziti 30 objektu, protoze je to "spravne" misto aby napsali echo("hello word"); protoze to je prece spatne (ikdyz se po nich nic vic nechce).Miluju lidi, kteří přijdou do diskuze psát totální sračky a cítí se při tom strašně inteligentně.
Chci tim rict ze odpoved by mela byt: Nemas tam apostrofy a imho lepsi reseni by bylo pouzit napr. PDO protoze ti osetri sql inj. ktery ti zde hrozi jestli nemas poradne osetrene vstupy.Takové odpovědi jsem tu viděl a dotyčný nad nimi ohrnuje nos.
A aby nekdo nenapadal moji anonymitu: http://www.basak.cz, o PHP neco vim a jak rikam, neobhajuju jeho reseni, ja bych to resil jinak, ale reaguji na to jak je zde napadan.Přijde mi, že si pleteš napadeného s člověkem, který kouše do podané ruky. To se lidem stává a nevyčítám ti to, jen tě na to upozorňuju.
Nečekej že by ti zde někdo řekl "má se to dělat tak a tak a tady je ukázka".Jestli sis nevšiml, an on nechce poradit, jak se to dělat má. Ale chce poradit, jak se to dělat nemá. Nad tím tady dost možná nikdo nebude chtít ztrácet čas, ať si zaplatí doučko, jestli chce někoho, kdo bude pracovat podle jeho představ.
Poradna zde klesla na "bouchněte si..." .Tak sis bouchnul do poradny, a co dál?
implode, nechápu, na co se ptáte. Několik lidí tady si myslí, že je to potřeba opravit jinak, a napsali vám jak.
Když se v poradně zeptáte, jak zatlouct hřebík, že to určitě nějak půjde šroubovákem, buďte rád, že jste se dozvěděl, že na zatloukání hřebíků se používá kladivo a šroubovákem vám to moc dobře nepůjde. Pokud na použití šroubováku k zatloukání trváte, je to váš problém, ale nedivte se, že nikdo nechce trávit čas vymýšlením toho, jak by takovou hloupost šlo udělat.
To jste mi poradili, všichni plnou hubu SQL injection ale, že by někdo poradil to ne, jediné co tady tazatel poslední dobou dostane je vysmech!!!Trhni si nohou a jdi se zeptat maminky. Co jiného ti na to mám říct, aby to bylo ještě slušné?
$id=intval($_POST['id']);
$set[]=sprintf("%s='%s'","nazev",mysql_real_escape_string($nazev);
$set[]=sprintf("%s='%s'","url",mysql_real_escape_string($url);
$query="UPDATE cat SET ".implode(", ",$set)." WHERE id=$id;";
Dá se to zjednodušit pomocí funkce array_map(), ale to by na tebe bylo asi moc náročné. Ale jak už jsem psal (nejen já), použití parametrizovaného dotazu je mnohem jednodušší.
A ještě něco: Připadá mi velmi podivné, když někdo stringy nedává do apostrofů a čísla jimi obaluje. Má to být přesně naopak.
mysql_query("UPDATE `cat` SET
`nazev` = '".mysql_real_escape_string($_POST["nazev"])."',
`url` = '".mysql_real_escape_string($_POST["url"])."'
WHERE `id` = ".intval($_POST["id"])."");
je k ničemu a nejde bezpečně použít. Fakt to nechápu
$update=$db->prepare("UPDATE cat SET nazev=:nazev, url=:url WHERE id=:id;");
$update->execute(array(':nazev'=>$_POST['nazev'],':url'=>$_POST['url'],':id'=>$_POST['id']));
Řekl bych, že tohle je velmi blízko tvému původnímu požadavku. Jen je potřeba opustit zastaralý ovladač mysql a naučit se PDO. Existuje i kratší zápis, ale ten v manuálu snadno najdeš. Místo názvů parametrů jsou pak jen otazníky a parametry jsou poziční.
mysql_real_escape(), který – pokud použijete správnou verzi PHP se správnou verzí MySQL – pravděpodobně bude fungovat. Lepší je ale dělat to rovnou správně a použít parametrické dotazy.
"WHERE id = '".$_POST['id']."'"zatímco v citovaném
"WHERE `id` = ".intval($_POST["id"]).""
function dvojice($key,$val) {
$value=mysql_real_escape_string($val);
return "$key='$value'";
}
$id=intval($_POST['id']);
$query="UPDATE cat SET ".implode(", ",array_map('dvojice',array_keys($set),$set))." WHERE id=$id;";
Je to jen momentální nápad, jak by se to také dalo udělat. Dalo by se to upravit i do podoby vhodné pro parametrizované dotazy.
Tiskni
Sdílej: