Od března budou mít uživatelé Discordu bez ověření věku pouze minimální práva vhodná pro teenagery.
Evropská komise (EK) předběžně shledala čínskou sociální síť pro sdílení krátkých videí TikTok návykovým designem v rozporu s unijním nařízením o digitálních službách (DSA). Komise, která je exekutivním orgánem Evropské unie a má rozsáhlé pravomoci, o tom informovala v tiskovém sdělení. TikTok v reakci uvedl, že EK o platformě vykreslila podle něj zcela nepravdivý obraz, a proto se bude bránit.… více »
Offpunk byl vydán ve verzi 3.0. Jedná se o webový prohlížeč běžící v terminálu a podporující také protokoly Gemini, Gopher a RSS. Přibyl nástroj xkcdpunk pro zobrazení XKCD v terminálu.
Promethee je projekt, který implementuje UEFI (Unified Extensible Firmware Interface) bindingy pro JavaScript. Z bootovacího média načítá a spouští soubor 'script.js', který může používat UEFI služby. Cílem je vytvořit zavaděč, který lze přizpůsobit pomocí HTML/CSS/JS. Repozitář se zdrojovými kódy je na Codebergu.
Zpráva Justičního výboru Sněmovny reprezentantů upozorňuje na cenzurní kampaň Evropské komise, mířenou proti svobodě projevu na sociálních sítích. V dokumentu se uvádí, že se Evropská komise během posledních šesti let účastnila více než 100 uzavřených jednání, během nichž po platformách požadovala úpravy pravidel moderování obsahu, přičemž toto úsilí Komise zahrnovalo i cenzuru politických názorů a pravdivých informací. Výbor zdůrazňuje, že tento přístup Bruselu ohrožuje ústavou zaručená práva Američanů na svobodu projevu.
Linus Torvalds vydal jádro Linux 6.19. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).
Do prodeje jde tichá bezdrátová herní myš Logitech PRO X2 SUPERSTRIKE s analogovými spínači s haptickou odezvou (HITS, Haptic Inductive Trigger System). Cena je 4 459 Kč.
Microsoft na GitHubu zveřejnil zdrojový kód projektu LiteBox, jedná se o 'knihovní operační systém' (library OS) zaměřený na bezpečnost, využívající systémovou architekturu LVBS k ochraně jádra před útoky z uživatelského prostoru. LiteBox je napsán v Rustu a uvolněný pod licencí MIT. Projekt je teprve v rané fázi vývoje.
BreezyBox je open-source shell a virtuální terminál pro populární jednočip ESP32. Nabízí základní unixové příkazy, sledování aktuálního pracovního adresáře (CWD), jednoduchý instalátor a spouštěč aplikací v podobě ELF binárních souborů, zabudovaný HTTP server nebo třeba ovládání WiFi - ukázka použití coby 'malého osobního počítače'. Ačkoliv je BreezyBox inspirovaný BusyBoxem, oproti němu má tento projekt několik externích závislostí, zejména na ESP-IDF SDK. BreezyBox je dostupný pod licencí MIT.
Byl představen cross-assembler xa.sh, napsaný čistě v Bourne shell skriptu. Tento nástroj umožňuje zpracovávat assemblerový kód pro Intel 8080, přičemž je možné snadno přidat podporu i pro další architektury, například 6502 a 6809. Skript využívá pouze různé běžné unixové příkazy jako jsou awk, sed nebo printf. Skript si lze stáhnout z GitHubového repozitáře projektu.
ahoj, da se to celkem dobre ohnout pro tve potreby. Uzivatel zada sve jmeno a heslo. Po overeni idetity uzivatele (ma spravne jmeno a heslo), vytahnes id tohoto uzivatele z db. To ulozis do session promenne: $_SESSION['id'] = $uzivatelovo_id; pak v tabulce clanky budes mit sloupec ve kterem budes mit ulozena id uzivatelu kteri se na ni budou moct podivat. kdyz si ji pak uzivate bude chtit zobrazit, posle tvuj skript dotaz do db: select * where (nadpis LIKE 'bla' and allowed_user = '{$_SESSION['id']}'); . Pokud bude mit kazdy uzivatel pristup k pouze sve strance a mimo prihlasovaci nebude moci k zadne sdilene, muzes udelat sloupec allowed_user jako int(tinyint - podle toho co se ti bude hodit). V pripade, ze chces mit nejake stranky, ke kterym bude mit vice (pouze) prihlasenych uzivatelu pristup, udelej sloupec allowed_user treba varchar a v nem, idcka povolenych uzivatelu oddelenych mezerama. Pak dotaz uprav takto: select * where (nadpis LIKE 'bla' and allowed_user = '% {$id} %);
predpokaladam takoveto tabulky:
uzivatele: +----+-------+-------+ | id | jmeno | heslo | | 1 | franta| neco | | 2 | jarda | neco1 | +----+-------+-------+ clanky: +----------------------------+-------------------+ | id | nadpis | allowed_user | obsah_clanku | | 1 | clanek1| 1 | ja sem clanek | | 2 | bla | 2 | blablablablablabla| +----+--------+--------------+-------------------+ps: nejsem php programator a rozhodne ne zkuseny, takze netvrdim, ze je to nejlepsi zpusob jak to udelat, ale myslim ze to muze fungovat
A co normalizace databáze?
(o hashování hesel ani nemluvím)
Sice jsem tak taky začínal, ale udivuje mě, když se každý, kdo umí nainstalovat MySQL a PHPmyadmina, tváří jako databázový analytik
Tak to OK, došel jsem k
varchar a v nem, idcka povolenych uzivatelu oddelenych mezerama.
a pak už jsem neměl chuť číst to dál.
Nejde o nějaké akademické lpjení na normalizovaných datech, ale i z čistě praktických důvodů je lepší udělat samostatnou tabulku, která nahradí ten varchar sloupeček, pomocí níž vyjádříme vazbu 1:N (jeden objekt a N subjektů, které k němu smějí přistupovat).
BTW. Pokud se to udělá takhle, tak se rovnou může použít InnoDB a foreign keys, které ještě lépe zajistí integritu dat. (Slovy PHPkáře - při mazání uživatele není nutné ještě procházet všechny možný tabulky okolo a dívat se, jestli se tam taky náhodnou něco nemá smazat.)
Nebude ta vazba M:N?Jo, bude, nějak jsem se soustředil na to, že k jednomu objektu bude mít práva
n subjektů, ale samozřejmě, že jeden subjekt může mít i práva k m objektům.
Cizí klíče se rozumí snad samo sebou, jinak by to nebyla relační DB, ale jen primitivní wrapper nad souborovým systémem
PHPčkař pak narazí, protože mu záznamy s vazbou nepůjdou smazat a hodí mu to chybu, což bude muset řešit nastavením kaskády na delete v DB (případně zase tím ručním procházením a mazáním).
To, co ti výše radí frEon, je celkem ok (až na tu zrůdnost, kdy by se víc IDček mělo nacpat do varcharu a oddělovat mezerama).
Na svém webu mám ukázkovou aplikaci (velmi jednoduchá bugzilla) Ověřování uživatelů na webu. Je to trochu složitější, protože se tam používá metoda výzva-odpověď a hesla se dvakrát hashují. Ale můžeš si pročíst ty zdrojáky a vzít si z nich, co potřebuješ.
//Connect to database
mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());
session_start();
$username = $_POST['username'];
$password = md5($_POST['password']);
$query = "select * from users where username='$username' and password='$password'";
$result = mysql_query($query);
if (mysql_num_rows($result)!=1) {
$error="bad login";
include "login.html";
}
elseif ($username==test and "password= $password") {
include "uzivatel/u.php";
}
elseif ($username==test1 and "password= $password") {
include "uzivatel1/u1.php";
}
elseif ($username==test2 and "password= $password") {
include "uzivatel2/u2.php";
}
else { }
>
Obsah souboru register.php je nsledujici:
//Database Information
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "root";
//Connect to database
mysql_connect( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = md5($_POST['password']);
// lets check to see if the username already exists
$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);
if($username_exist > 0){
echo "I'm sorry but the username you specified has already been taken. Please pick another one.";
unset($username);
include 'register.html';
exit();
}
// lf no errors present with the username
// use a query to insert the data into the database.
$query = "INSERT INTO users (name, email, username, password)
VALUES('$name', '$email', '$username', '$password')";
mysql_query($query) or die(mysql_error());
mysql_close();
echo "You have successfully Registered";
Vim ze toto reseni neni mocdobre ale jine jsem nedokazal vymyslet. Nyni resim to, aby uzivatele nemohli obejit logovaci formular a dostat se primo na svoji stranku. Co se tyce vyse uvedeneho kodu prosim o pripadnou kritiku nebo vylepseni, budu za ne vdecny. Diky Zdenek
Tiskni
Sdílej: