Autor | Zpráva | ||
---|---|---|---|
Dixie Profil * |
#1 · Zasláno: 23. 11. 2011, 20:36:30
Zdravím.
Právě pracuji na svém jednoduchém redakčním systému pro stránky:1st-msob.pardalove.cz Mám tam funkci, která zkontroluje, je-li uživatel přihlášen a pokud ano, jestli má například práva pro zobrazení administrace: <?php session_start(); $server = "localhost"; $dbuser = "xxx"; $dbpass = "xxx"; $dbname = "xxx"; $connect = mysql_connect($server, $dbuser, $dbpass); if(!$connect){ echo('<font color="red">Nelze se spojit s databází: <strong>'.mysql_error().'</strong></font>'); } mysql_select_db($dbname, $connect); mysql_query("SET NAMES utf8"); // kntola přihlášení if($_SESSION['loggedin'] == false){ echo '<font color="red"><strong>Nejste Přihlášen!</strong></font>'; // kontola statusu (je-li to admin) }elseif($_SESSION['status'] < 1){ echo '<font color="red"><strong>Nemáte oprávnění k přístupu!</strong></font>'; }else{ // výpis kódu z databáze $dotaz = mysql_query("SELECT * FROM code WHERE name = 'admin_index'"); $mysqlarray = mysql_fetch_array($dotaz); echo $mysqlarray['code']; } ?> Funguje to bez problémů, ovšem chci se zeptat, jestli je to dobré řešení, vypisovat obsah z databáze. Nechce se mi ale vše vypisovat přes echo, když to můžu mít takhle jednoduše. Jak se to provádí standartně? |
||
Dixie Profil * |
#2 · Zasláno: 23. 11. 2011, 20:38:30
U kontroly statusu: (0 = uživatel, 1 = mod, 2 = admin, 3 = webmaster), aby bylo jasné, co ta funkce zanemná
elseif($_SESSION['status'] < 1) |
||
okolojdouci Profil * |
#3 · Zasláno: 23. 11. 2011, 20:48:47
Dixie:
> Funguje to bez problémů, ovšem chci se zeptat, jestli je to dobré řešení, vypisovat obsah z databáze. > Nechce se mi ale vše vypisovat přes echo, když to můžu mít takhle jednoduše. > Jak se to provádí standartně? V principu se to tak dá dělat. Jen není jasné, na co se ptáš ohledně toho echa. Jestli echem vypisuješ celou stránku, tak by to dost často bylo dost nepraktické. |
||
Dixie Profil |
#4 · Zasláno: 23. 11. 2011, 20:59:33 · Upravil/a: Dixie
Funguje to takto:
$dotaz = mysql_query("SELECT * FROM code WHERE name = 'admin_index'"); $mysqlarray = mysql_fetch_array($dotaz); echo $mysqlarray['code']; Tento kód vyhledá v databázi řádek s názvem kódu a ten vypíše. V databázi je tedy uložen celý obsah včetně tabulek, formulářů atd. |
||
Dixie Profil |
#5 · Zasláno: 23. 11. 2011, 21:03:21
Tím echem jsem myslel to, že místo výpisu z databáze tam bude:
echo '<table>asdfg</table><br />OBSAH OBSAH bla bla bla'; |
||
okolojdouci Profil * |
#6 · Zasláno: 23. 11. 2011, 21:08:43
Dixie:
„V databázi je tedy uložen celý obsah včetně tabulek, formulářů atd.“ A to je to, o čem jsem psal, že to není praktické. I když si dokážu představit tak jednoduchý web, že by to stačit mohlo. Výhoda php + mysql je v tom, že ti umožní dynamické fungování webu - pohodlně přidáváš články, nahráváš fotky, atd. Tím, že natvrdo celou stránku skladuješ v databázi, se té dynamiky vzdáváš a s když vezmeš v úvahu i režii, že změny a příp. další stránky musíš do databáze nějak dostat, jsi na tom co do pohodlnosti administrace možná hůř, než kdybys obhospodařoval hromádku html souborů. |
||
Dixie Profil |
#7 · Zasláno: 23. 11. 2011, 21:13:17
Možná zkusím normálně vše vypsat a na začátek dát skript, který když uživatel nemá práva na zobrazení, tak to všechen ten obsah smaže a vypíše chybovou hlášku...
|
||
okolojdouci Profil * |
#8 · Zasláno: 23. 11. 2011, 21:20:28
Dixie:
„Možná zkusím normálně vše vypsat a na začátek dát skript, který když uživatel nemá práva na zobrazení, tak to všechen ten obsah smaže a vypíše chybovou hlášku...“ Nechápu, o čem píšeš. Rozlišení toho, jestli je uživatel přihlášen a má vidět obsah, nebo přihlášen není, máš v #1. |
||
Dixie Profil |
#9 · Zasláno: 23. 11. 2011, 21:43:07
Ne to byl špatný nápad. No nějak se to pokusím poštelovat.
Zdá se mi i, že z databáze se web načítá o poznání déle. Asi zůstanu s nepřehledným kodem u echo. |
||
okolojdouci Profil * |
#10 · Zasláno: 23. 11. 2011, 21:48:00
Dixie:
„Asi zůstanu s nepřehledným kodem u echo.“ Čímž míra nesrozumitelnosti vlákna dosáhla 100 %. U mě dobrý. |
||
Dixie Profil |
#11 · Zasláno: 24. 11. 2011, 20:25:46
No teď jsem přišel na to, že echo se nemusí vypisovat na jeden řádek (ve zdrojáku)
Takže je to nejlepší řešení :D |
||
Časová prodleva: 12 let
|
0