Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Flock 2025, tj. konference pro přispěvatele a příznivce Fedory, proběhne od 5. do 8. června v Praze.
Zemřel Mark Klein, který dlouhá léta pracoval pro telekomunikační firmu AT&T a proslavil se jako whistleblower, když zveřejnil informace o spolupráci AT&T s agenturou NSA. Cílem spolupráce bylo sledovat veškerou komunikaci občanů za pomocí zařízeních v místnosti 641A. O spolupráci obou subjektů napsal knihu Wiring Up The Big Brother Machine...And Fighting It.
Byla vydána nová verze 16 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Texas Instruments představil nejmenší mikrokontrolér na světě MSPM0C1104. Je o 38 % menší než současné nejmenší mikrokontroléry. Má pouze 1,38 mm².
Dobrý deň, mám problém s ktorým si neviem rady.
Mám skript, kde je niekoľko premenných ($PREM1, $PREM2, $PREM3). A teraz potrebujem poslat názov tejto premennej cez $_GET["premenna"].
Asi je to dost nezrozumitelné, tak napíšem čo presne potrebujem.
Otvorím stranku: http://skript.php?premenna=$PREM1
v skripte vyberiem premennu cez $_GET["premenna"], a zistím ci sa jej obsah rovná "1"
Niečo ako: if ($_GET["premenna"] == "1") {...}
Dúfam že ma aspoň niekto pochopí, asi je to divné riešenie, ale ináč si to neviem predstaviť, niesom profík, som iba samouk...
Dík za rady...
Jednou jsem to také potřeboval, je to popsáno v jednom komentáři v dokumentaci. Bohužel je to dost prasácké, proto jsem se radši vydal jinou cestou.
if (isset($_GET['premenna']))
{
$premenna = $_GET['premenna'];
if ($premenna == $PREM1) { ... }
elseif ($premenna == $PREM2) { ...}
...
else { ... }
}
aha, opravdu nazev promenne. vazne to nejde jinak? par veci uz jsem napsal a zatim jsem se bez takoveho reseni obesel ... opravdu to nejde? co napriklad pouzit switch a na zaklade hodnoty
$promenna
resp. $_GET['promenna']
vyvolat prislusne akce?
a jak uz jsem psal nize; pokud pouzivas promenne, tak to predelej. je to vec, ktera by mela byt vsude vypnuta a napr. v PHP6 bude odebrana (3x hura), v PHP5 je snad vypnuta v zakladni konfiguraci.
jeste doporucim pouzivat if (isset($_GET['promenna']) ... ) { ... }
. vyhnes se tak chybe, kdyz nebude $promenna v $_GET nastavena. je samozrejme vhodne osetrit, jak se v takovem pripade zachovat.
taky dost dobre nechapu k cemu by to bylo dobre, posilat si nazev promenne a ne jeji hodnotu.. muzete to trochu popsat?
$GLOBALS
???
<?php $prem1 = 10; $prem2 = 20; $prem3 = 30; echo ${$_GET['premenna']}; // -> http://host/skript.php?premenna=prem1 ?>
Ale neni prilis dobry napad umoznit uzivateli takto "nakukovat" (ci hure, zapisovat) prakticky do libovolne promenne. Jestli si nepisete nejaky debugovaci (ci jaky) nastroj ciste pro sebe, tak bych doporucoval pouzit zmineny switch
(nebo lepe pole se jmeny validnich promennych) a striktne vymezit k jakym promenny lze takto pristupovat.
Akosi som nepochopil čo sa Marollo pýtal, ale tvoje riešenie by ma zaujímalo. Ako napísať napríklad automatické presmerovanie inak ako cez GET z adresy?
Napríklad toto:
header("location:http://".$_SERVER["SERVER_NAME"]."/subor.php?nazov_premennej=$hodnota_premennej")
Neviem ako. Prepíš moje location tak, aby v adrese nebola priamo uvedená premenná.
method="post"
, nebo pres HTTP header.
$_GET
nelibi. Posilat akce pres $_POST
? GL & HF!
$get_str = ''; $sep = '?'; foreach($_GET as $k => $v) { $get_str .= $sep.urlencode($k).'='.urlencode($v); $sep = '&'; } header("Location: http://".$_SERVER['SERVER_NAME'].'/soubor.php'.$get_str);Nebo třeba takto:
header('Location: http://".$_SERVER['SERVER_NAME'].'/soubor.php?' .join('&', array_map(sprintf, array_pad(array(), '%s=%s', count($_GET)) array_map('urlencode', array_keys($_GET)), array_map('urlencode', $_GET)) );(Asi to bude trosku pomalejší než ten první kousek kódu, ale je to hezčí
header('Location: http://".$_SERVER['SERVER_NAME'].'/soubor.php' .preg_replace('/^[^?]*/', '', $_SERVER['REQUEST_URI']));Tenhle kousek je asi vůbec nejhezčí.
Ja v php nie som ešte celkom doma a preto nad mojím dotazom možno budete krútiť hlavou, ale kde je v tejto hlavičke nazov_premennej a hodnota_premennej?
A nebo ještě takto:
header('Location: http://".$_SERVER['SERVER_NAME'].'/soubor.php?'.$_SERVER['QUERY_STRING']);
Tenhle kousek je asi vůbec nejhezčí.
ono by se docela hodilo, kdyby uz konecne reagoval marallo jakozto autor.. Takto nikdo nevime co vlastne chce ;] a jestli uz je s nejakym navrhnutym resenim spokojen..
Ospravedlňujem sa že reagujem až teraz, ale viete, boli vianoce, stres, panika...
Takže vidím že ste moc nepochopili čo potrebujem, a niektore z vašich príspevkov som ani ja nepochopil.
Mám blog, v databáze v jednej tabuľke všetky zápisky. Tieto majú rôzne kategórie (linux, ženy, komunicticke_kecy, fasisticke_kecy). Pri písaní zápiskov označím do ktorých kategórii zápisok patrí. (môže patriť napríklad do kategórii zeny, a fasisticke_kecy). Takže v tabuľke v databázi mám pre každú kategóriu stĺpec, a ak je v ňom "1", tak zápisok patrí do tejto kategórie.
Mám spravený PHP kód že pre každý riadok tabuľky spraví niečo ako:
if ( $tag_linux == 1 ) {
echo vypíš článok;}
A ja teraz potrebujem z menu poslať to $tag_linux, aby skript vedel akú kategóriu ma vypísať. Zatial mám pre každú kategóriu inú stránku, ale to je na houby. Iné riešenie ma nenapadá. Dúfam že už je to jasnejšie...
Dík za dalšie rady...
SELECT c.* FROM (clanky c, clanky_kategorie ck) WHERE c.id_clanky = ck.id_clanky AND ck.id_kategorie = $id_kategorie AND c.datum < NOW() ORDER BY c.datum DESCSeznam všech článků s názvem jejich kategorií třeba takto:
SELECT c.*, GROUP_CONCAT(k.nazev SEPARATOR ', ') AS nazev_kategorie FROM (clanky c, clanky_kategorie ck, kategorie k) WHERE c.id_clanky = ck.id_clanky AND ck.id_kategorie = k.id_kategorie AND c.datum < NOW() GROUP BY c.id_clanky ORDER BY c.datumNetestoval jsem to, ale mělo by to fungovat.
Mrkni se na první příspěvek (ten můj ), myslím, že je to opravdu to, co chceš. Ta funkce v odkazovaném komentáři vrátí jméno proměnné, která je mu předána. A to jméno pak můžeš vesele používat.
Příklad (definici té funkce sem psát nebudu);
$testovaci_promenna = "foo"; $jmeno = vname($testovaci_promenna); echo $jmeno;
Vypíše "testovaci_promenna" (samozřejmě bez uvozovek).
Ako vidíš, je viacero riešení. Ja by som navrhoval len jednu tabuľku (id, článok, kategoria1, kategoria2, kategoria3...) a potom menu by bola priamo zadaná premenná ktorá by bola ako kľúč pre výber článkov z databázi. Podobné návody nájdeš v základných manuáloch.
A z menu daj odkaz napríklad <a href=subor.php?nazov_premennej=hodnota_premennej>. Hodnotu premennej v subor.php dostaneš cez GET.
V tvojom pripade:
$tag = $_GET["$hodnota_premennej"];
pripojenie databázy;
výber tabuľky;
výpis z tabuľky pre $tag == 1
Když neumíš programovat/sql, neuč to o statní... Marallo - použij to co radí J.K., to je totiž funkční a použitelné řešení. Když budeš hledat informace o tom co to vlastně je, tak hledej SQL a vazba N:M.
Možno to neviem, som len začiatočník, ale tak isto ako som to popísal tu, nájdeš aj v návodoch a manuáloch a z praxe viem, že to funguje
A mimochodom Tarmaq v podstate napísal také isté riešenie. Takže nechcem dávať rozumy hlavám ako ty, ale najjednoduchšie riešenie býva najlepšie.
A este jedna pripomienka.
Marallo sa pýtal ako to tam dostať z menu, nie ako sa robí výpis z tabuľky.
Tri tabuľky ako píše JK sú OK, ale i tak by pre to čo požaduje Marollo postačovala jedna tabuľka. Veď chce len zopár stabilných kategórií. Netreba hneď robiť stránku ako internetový obchod. To je ako dávať do auta motor z tanku...
Tabulku mas udelanou spatne, jak tu psali ostatni (dobre to popsal josef Kufner).
Pokud presto chces zachovat stavajici schema, k reseni stejne nepotrebujes znat nazev promenne.. k cemu to je dobre nedokazu pochopit ani ted.
Ja bych to udelal nasledovne:
$nazev_kategorie = $_GET['cat'];
$q = db_query("SELECT * FROM clanky WHERE ".$nazev_sloupce." = 1");
Pokud nechces, aby uzivatel videl v url nazev sloupce, tak si muzes udelat nejake pole aliasu. Napr:
$categories = array(
'1' => 'linux',
'2' => 'zeny',
'3' => 'kscm',
'4' => 'ss'
);
$nazev_sloupce = $categories[$_GET['cat']];
$q = db_query("SELECT * FROM clanky WHERE ".$nazev_sloupce." = 1");
Jak vidis, zadne ifovani netreba..
jo jinak ted kdyz to po sobe ctu tak tam vidim chybku.. ten prvni radek ma byt samozrejme
$nazev_sloupce = $_GET['cat'];
Díky moc, presne to som potreboval.
Už je to vyriešené, nevedel som že sa to dá spraviť tak jednoducho.
A pre všetkých: takáto tabuľka mi plne vyhovuje...
Tiskni
Sdílej: