Autor Zpráva
Dixie
Profil *
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 *
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 *
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
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
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 *
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
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 *
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
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 *
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0