Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.
Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.
Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.
Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.
VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.
Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách
… více »David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.
Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Jon Seager z Canonicalu včera na Ubuntu Community Hubu popsal budoucnost AI v Ubuntu. Dnes upřesnil: AI nástroje budou k dispozici jako Snap balíčky, vždy je může uživatel odinstalovat. Ve výchozím nastavení budou všechny AI nástroje používat lokální AI modely.
Nový ovladač Steam Controller jde do prodeje 4. května. Cena je 99 eur.
Mám skript v PHP který začíná takto
session_start();
if(!isset($_SESSION["login"]["ID"]) && !isset($_SESSION["login"]["authority"]))
{
header('Location: index.php');
}
při zpracování formuláře přesměruju stránku na skript neco.script.php kde se provede zpracovani dat a zpet se presmeruje na puvodni skript. Problém je v tom že nevím z jakého důvodu se jakýmsi způsobem vymaže hodnota nastavená v $_SESSION["login"]["authority"] a skript mě automaticky odhlasi ze systemu z bezpecnostnich duvodu.
Zacatek neco.script.php je klasika session_start();
Nemá s tím někdo zkušenosti? Nemůžu nějak najít důvod proč se mi vymaže hodnota z session.
Řešení dotazu:
session_start();
if(!isset($_SESSION["login"]["ID"]) && !isset($_SESSION["login"]["authority"]))
{
header('Location: ../index.php');
}
include "../include/config.inc.php";
include "../class/mysql.class.php";
include "../include/function.inc.php";
//Inicializace db spojení
$db = MySQL::instance();
$db->connect(HOST,DB,USER,PASS);
if(isset($_POST["empl"]))
{
if($_POST["mesic"]!="" || $_POST["rok"]!="")
{
header('Location: ../view.php?page=mes-vyp-hod&mesic='.$_POST["mesic"].'&rok='.$_POST["rok"].'&empl='.$_POST["empl"].'');
exit;
}
else
{
header('Location: ../view.php?page=mes-vyp-hod&empl='.$_POST["empl"].'');
exit;
}
}
header('Location: ../view.php?page=mes-vyp-hod');
session_start();
if(!isset($_SESSION["login"]["ID"]) && !isset($_SESSION["login"]["authority"])) {
echo("Chyba");
} else {
echo("OK");
}
$_SESSION=Array("login");
$_SESSION["login"]["ID"]="jmeno";
$_SESSION["login"]["authority"]="auth";
Změnil bych operátor && na ||, pokud musí být splněno obojí. Nebo stačí, když je splněna jen jedna z podmínek?
BTW: Lidi, dávejte ty výpisy programů do značek <pre>. Kdo to má luštit?
||. Tak jak to máš, stačí pro pokračování programu splnění alespoň jedné z nich. To znamená, že nemáš ani ID.
Zkus se podívat, jestli _SESSION nastavuješ správně v hlavním skriptu. Ve funkci to fungovat nebude.
if(!isset($_SESSION["login"]["ID"]) && !isset($_SESSION["login"]["authority"])) { header('Location: index.php'); }
tak skript proběhne i když není $_SESSION["login"]["authority"] definována (stačí, že je definována $_SESSION["login"]["ID"] a tudíž podmínka není splněna). A pokud ve skriptu pokus.php máte tuto podmínku jinak nastavenou, je to problém..
var_dump($_SESSION["login"]["authority"])nebo rovnou
var_dump($_SESSION)?
||.
Jestliže neexistuje jedna_proměnná NEBO neexistuje druhá_proměnná, proveď přihlášení.
Tady snad nefungují De Morganovy zákony?
CheckAuthorityToSection($_SESSION["login"]["authority"],$page);
if($page == "sestaveni" && $authen == true)
{
//Nejprve je třeba vybrat zaměstnance
$form = new FormularBuilder();
$form->FormStart($root."scripts/empl_prirazeni_set.script.php", "post","","vyber_zamestnance");
$form->FormSelectOptionIdInValue("Zaměstnanec", "add_empl", $zam, $zamID,1,$zE);
$form->FormHiddenItem($_GET["mesic"],"mesic");
$form->FormHiddenItem($_GET["rok"],"rok");
$form->FormSubmitButton("Vybrat");
$form->FormEnd();
}
else if($page == "sestaveni" && $authen == false)
{
echo "";
echo "Nemáte přístup do této sekce";
echo "";
}
include "include/footer.php";
?>
session_start();
if(!isset($_SESSION["login"]["ID"]) || !isset($_SESSION["login"]["authority"]))
{
header('Location: index.php');
}
include "include/header.php";
include "include/sidebar.php";
//Inicializace oprávnění
$access = new AuthorityManager();
$authen = $access->CheckAuthorityToSection($_SESSION["login"]["authority"],$page);
if($page == "sestaveni" && $authen == true)
{
//Nejprve je třeba vybrat zaměstnance
$form = new FormularBuilder();
$form->FormStart($root."scripts/empl_prirazeni_set.script.php", "post","","vyber_zamestnance");
$form->FormSelectOptionIdInValue("Zaměstnanec", "add_empl", $zam, $zamID,1,$zE);
$form->FormHiddenItem($_GET["mesic"],"mesic");
$form->FormHiddenItem($_GET["rok"],"rok");
$form->FormSubmitButton("Vybrat");
$form->FormEnd();
}
else if($page == "sestaveni" && $authen == false)
{
echo "";
echo "Nemáte přístup do této sekce";
echo "";
}
include "include/footer.php";
$_SESSION definuješ uvnitř funkce.
$_SESSION lokální, tak se nemůže odeslat.
Tady však začínám mít tušení, že po odeslání dat metodou POST neděláš v navavazujícím skriptu po jejich zpracování header('Location...
session_start();
if(!isset($_SESSION["login"]["ID"]) || !isset($_SESSION["login"]["authority"]))
{
header('Location: ../index.php');
exit;
}
include "../include/config.inc.php";
include "../class/mysql.class.php";
include "../include/function.inc.php";
//Inicializace db spojení
$db = MySQL::instance();
$db->connect(HOST,DB,USER,PASS);
if(isset($_POST["empl"]))
{
print_r($_SESSION);
if($_POST["mesic"]!="" || $_POST["rok"]!="")
{
header('Location: ../view.php?page=mes-vyp-hod&mesic='.$_POST["mesic"].'&rok='.$_POST["rok"].'&empl='.$_POST["empl"].'');
exit;
}
else
{
header('Location: ../view.php?page=mes-vyp-hod&empl='.$_POST["empl"].'');
exit;
}
}
header('Location: ../view.php?page=mes-vyp-hod');
header('Location... i po zpracování přihlášení (ověření autenticity a vyrobení $_SESSION)?
if(!isset($_SESSION["login"]["ID"]) || !isset($_SESSION["login"]["authority"]))
{
header('Location: index.php');
}
exit?
Celé to na mě působí, že session_start() v přihlašovacím skriptu voláte až poté, co jste vložil data do $_SESSION["login"].
Pokud to totiž chápu správně, tak dejme tomu na stránce enter.php uživatel vloží své přihlašovací údaje, kde je formulář odešle na auth.script.php. Po ověření správnosti se vytvoří $_SESSION["login"] a uživatel je přesměrován na info.php. Zde nějaký způsobem může vybrat pokus.php, který odesílá data na neco.script.php, kde by se pak měl vrátit zpět na pokus.php.
A teď je podstatné, co se vlastně po prvním přihlášení děje. Tvrdíte, že Když vypnu a zapnu prohlížeč pokusím se zapsat něco a přesměruju se na neco.script.php tak session nastavené není. Tzn vrátím se zpět. Odhlásím se přihlásím se znovu a znovu se pokusím zapsat něco a přesměruje mě to na neco.script.php tak už session nastavené je správně a všechno je ok, čili je podle mého podstatné, i jakým způsobem probíhá odhlašování ze systému. Vložte sem tedy, prosím, ještě část skriptu auth.script.php, kde bude vidět, jakým způsobem $_SESSION["login"] vytváříte a i skript pro odhlášení, ať je vidět, jak se odhlašujete. A znovu opakuji, proč Vám chybí za header() exit?
public function CheckAuthorizationWithAuthority($login,$pass)
{
/**
* SQL dotaz, který ověření nejprve uživatele a poté oprávnění
*/
$sql = "select * from users where login='".$login."' and pass='".$pass."'";
$vysledek = $this->db->query($sql);
$zaznam = $this->db->fetch_object($vysledek);
if($zaznam->active == "1")
{
if($this->db->num_rows($vysledek) == 1)
{
/**
* V případě kladného výsledku vrátí true
*/
$this->SetSession("ID", $zaznam->id);
$this->SetSession("authority", $zaznam->authority);
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
/**
* Odhlásí uživatele a zničí session
*/
public function LogoutUser()
{
$_SESSION = array();
session_destroy();
return true;
}
/**
* Nastaví session na potřebné parametry
* @param $name
* @param $value
*/
private function SetSession($name,$value)
{
$_SESSION['login'][$name] = $value;
}
Tiskni
Sdílej: