V souvislosti s nárůstem falešných webových stránek, které se vydávají za oficiální webové stránky Portálu občana, Portálu identity občana nebo Portálu veřejné správy, se Digitální a informační agentura (DIA) rozhodla urychlit přechod Národní identitní autority na jednotnou státní doménu gov.cz a identitaobcana.cz tak přešla na identita.gov.cz [tisková zpráva].
Byla vydána verze 0.5.18 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2024. Pro programátory v Perlu je určen Perl Advent Calendar 2024. Pro programátory v TypeScriptu Advent of TypeScript. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2024…
Organizace Software Freedom Conservancy (SFC) společně se svým členským projektem OpenWrt oznámila oficiální spuštění prodeje Wi-Fi routeru OpenWrt One vyrobeného ve spolupráci s Banana Pi. Cena je 89 dolarů nebo 68,42 dolarů jenom deska. Z každého prodeje jde 10 dolarů do fondu OpenWrt v Software Freedom Conservancy. Projekt OpenWrt představil plán na výrobu vlastního routeru letos v lednu při příležitosti 20. výročí projektu.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.15. Díky 294 přispěvatelům.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 24.11 Stirk. Přehled novinek v Changelogu.
Byla vydána verze 0.82 telnet a ssh klienta PuTTY. Podrobnosti v přehledu nových vlastností a oprav chyb a Change Logu. Vypíchnuta je vylepšená podpora Unicode.
Vánoční RoboDoupě bude v sobotu 7. prosince. Na programu je Úvod do ESP-NOW nebo Netradiční použití H-můstků.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch OTA-7 Focal, tj. sedmé stabilní vydání založené na Ubuntu 20.04 Focal Fossa.
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).
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).
//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: