Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 17. 2. 2009, 17:37:19
Zdravim,
Chci se zeptat jak udelam aby mi mohly do administrativy jit jen uzivatele,k tere jsou vybrani.Tedy redaktori, moderatori a admin.A aby kazdy mel jiny obsah.Myslim tim,ze redaktor bude mit treba jen pridavani clanku, moderator bude mit jak pridani clanku tak i mazani a admin bude mit vsechno.Ale hlavne mi jde o to aby se tam prihlasili jen redaktori atd.Mohlo by to jit tak,ze v db budu mit u uzivatelu tabulku funkce.Ten kdo bude mit u funkci treba 3 tak je redaktor, kdo 2 bude moderator a 1 je admin.Ostatni uzivatele co nejsou nic budou mit 0.No a podle toho jak se prihlasi tak mu najede i obsah. Predem vsem dik. |
||
ninja Profil |
#2 · Zasláno: 17. 2. 2009, 17:51:00
Ano, napriklad tak.
|
||
pito Profil |
#3 · Zasláno: 17. 2. 2009, 18:44:11
ale ja nevim jak to udelat.Prave to delam ,ale nejde mi to.
|
||
Taps Profil |
#4 · Zasláno: 17. 2. 2009, 18:56:43
pito
co kdyby jsi ukázal kod |
||
Joker Profil |
#5 · Zasláno: 17. 2. 2009, 18:57:56
pito
"Nejde mi to" je trochu obecné, na to je rada leda víc studovat. Nějaký konkrétní problém? |
||
pito Profil |
#6 · Zasláno: 18. 2. 2009, 15:39:35
no mam tedy tabulku prava v db.
user ktery ma 0 je nic user ktery ma 1 je redaktor a user ketry ma 2 je admin No lepsi by to bylo pre session.Tak tedy mam jen tohle: <?php session_start(); //odhlášení uživatele if(isset($_GET['odhlasit']) && $_GET['odhlasit'] == 'yes') { unset($_SESSION['prihlasen']); unset($_SESSION['uziv-jmeno']); unset($_SESSION['uziv-heslo']); } //kontrola přihlášení uživatele if(!isset($_SESSION['uziv_jmeno'])){ $_SESSION['prihlasen']=0; }else{ $_SESSION['prihlasen']=1; } //Přihlášení uživatele if(isset($_POST['jmeno'])){ //Zkontrolujeme jmeno include "spojeni.php"; //Pripojime se do dtb. $dbjmeno = $_POST['jmeno']; //Do proměnné dbjmeno dáme jméno z formulaře $dbheslo = md5($_POST['heslo']); //Do proměnné dbheslo dáme heslo z formulaře //Připojíme se do databáze a vytáhneme zní ověření zda jmeno a heslo souhlasí. $pripoj = MySQL_Query("SELECT * FROM users WHERE nick = '$dbjmeno' and password = '$dbheslo'") or die (mysql_error()); $zaznam = mysql_fetch_array($pripoj); if($zaznam['nick']== $dbjmeno){ $_SESSION['prihlasen'] = 1; //Zde zadavame prava uzivatele. Neměňte $_SESSION['uziv-jmeno'] = $zaznam['nick']; //Uložíme si do session jmeno $_SESSION['uziv-id'] = $zaznam['id']; //Uložíme si do session pořadí uživatele $_SESSION['uziv-heslo'] = $zaznam['password']; //Uložíme si do session heslo }else{ $_SESSION['prihlasen'] = 0; } mysql_free_result($pripoj); } include "spojeni.php"; echo"<p>$zaznam[username]</p>"; ?> a u formulare pak mam tohle: <?php /* * Vypiseme zda je uzivatel prihlasen, pokud ano tak jeho jmeno... * V přihlašovacím skriptu jsme nastavili $_SESSION['prihlasen']=1, pokud se $_SESSION['prihlasen'] opravdu rovná jedničce, uživatel je přihlášen. */ if (($_SESSION['prihlasen'] == 1)or isset($_SESSION['uziv-jmeno'])) { echo "<font color='white'>Uživatel:</font><strong><font color='#FFCC00'> ".$_SESSION['uziv-jmeno'] . " </font></strong><br><br> <img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=tipes'> Moje tipy</a> <br> <img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=profil'> Profil</a> <br> <img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=account'> Nastavení</a> <br><br> <img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?odhlasit=yes'> Odhlásit se</a>"; }else{ echo "<form method=\"post\"> <img src=\"tip-liga_soubory/images/log-account2.bmp\" border=\"0\" alt=\"Uživatelské jméno\"> <input type=\"text\" name=\"jmeno\" size=\"15\" maxlength=\"32\"/><br/> <img src=\"tip-liga_soubory/images/log-pass.bmp\" border=\"0\" alt=\"Heslo\"> <input type=\"password\" name=\"heslo\" size=\"15\" maxlength=\"32\"/><br/><br/> <center><input type=\"submit\" name=\"login\" value=\"Přihlásit se\"/></center> </form>"; } ?> Kde to tam mam pridat.Aby bylo vice moznosti prihlaseni.To je zatim jen uzivatelske prihlaseni. |
||
gogy27 Profil |
#7 · Zasláno: 18. 2. 2009, 16:04:44
a co tak toto session
$_SESSION['prihlasen'] = 1; //Zde zadavame prava uzivatele. Neměňte $_SESSION['prihlasen'] = $pripoj['prava']; if ($_SESSION['prihlasen'] = 2) echo "Je admin"; if ($_SESSION['prihlasen']) = 1 echo "Je redaktor"; if ($_SESSION['prihlasen']) = 0 echo "je iba uzivatel"; |
||
Časová prodleva: 14 dní
|
|||
gogy27 Profil |
#8 · Zasláno: 4. 3. 2009, 16:47:57
nikto ma neupozornil ze tu je chyba mensia
a co tak toto session $_SESSION['prihlasen'] = 1; //Zde zadavame prava uzivatele. Neměňte nadefinovat aby tahal z db $_SESSION['prihlasen'] = $pripoj['prava']; a teraz by si robil if ($_SESSION['prihlasen'] = 2) echo "Je admin"; if ($_SESSION['prihlasen'] = 1) echo "Je redaktor"; if ($_SESSION['prihlasen'] = 0) echo "je iba uzivatel"; |
||
Joker Profil |
#9 · Zasláno: 4. 3. 2009, 16:50:57 · Upravil/a: Joker
Vzhledem k tomu, že skript z příspěvku [#7] pak [url="http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=91104&page=0&anchor=2"]přebírají jiní[/url], dovolím si opravit ty syntaktické hrubky:
if ($_SESSION['prihlasen'] == 2) echo "Je admin"; if ($_SESSION['prihlasen'] == 1) echo "Je redaktor"; if ($_SESSION['prihlasen']) == 0) echo "je iba uzivatel"; Ale lépe nějak takto: switch($_SESSION["prihlasen"]){ case 0: $role = "Uživatel" break; case 1: $role = "Redaktor" break; case 2: $role = "Administrátor" break; default: $role = "nezjištěno"; } echo("Jste přihlášen v roli: ".$role); |
||
dvora21 Profil * |
#10 · Zasláno: 4. 3. 2009, 16:59:31
Prosím vás neak mi nejde připojit k db mám to udělané takto :
<?php $host="localhost"; $user="root"; $pw="vertrigo"; $db="dvora21"; ?> Půjde mi to k tomu ? |
||
gogy27 Profil |
#11 · Zasláno: 4. 3. 2009, 17:02:47 · Upravil/a: gogy27
jasne malo byale co ti to vypise? popripade daj tu kod a aj ked ti vypise chybu tak jej vypisň
len nezabudni na mysql_connect('$host', '$user', '$pw') or die('Chyba spojenia!'); mysql_select_db('$db') or die ('Chyba databazy'); |
||
dvora21 Profil * |
#12 · Zasláno: 4. 3. 2009, 17:06:49
Tyto chyby po přihlášení zkusím to tam dát a uvidím
|
||
dvora21 Profil * |
#13 · Zasláno: 4. 3. 2009, 17:07:29
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\VertrigoServ\www\new\d21.php:10) in C:\Program Files\VertrigoServ\www\new\login.php on line 6
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\VertrigoServ\www\new\login.php on line 27 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\VertrigoServ\www\new\login.php on line 27 Access denied for user 'ODBC'@'localhost' (using password: NO) |
||
gogy27 Profil |
#14 · Zasláno: 4. 3. 2009, 17:09:53
session_start musis mat v scripte uplne na vrchu
|
||
dvora21 Profil * |
#15 · Zasláno: 4. 3. 2009, 17:13:45
Dal jsem to tam a hodilo mi to :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\VertrigoServ\www\new\d21.php:10) in C:\Program Files\VertrigoServ\www\new\login.php on line 6 Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host '$host' (11001) in C:\Program Files\VertrigoServ\www\new\mysql\mysql.php on line 7 Chyba spojenia! |
||
gogy27 Profil |
#16 · Zasláno: 4. 3. 2009, 17:15:25
daj mi tu tvoj script aspon po riadok 10
|
||
dvora21 Profil * |
#17 · Zasláno: 4. 3. 2009, 17:17:34
//odhlášení uživatele if(isset($_GET['odhlasit']) && $_GET['odhlasit'] == 'yes') { unset($_SESSION['prihlasen']); unset($_SESSION['uziv-jmeno']); unset($_SESSION['uziv-heslo']); } //kontrola přihlášení uživatele if(!isset($_SESSION['uziv_jmeno'])){ $_SESSION['prihlasen']=0; }else{ $_SESSION['prihlasen']=1; } //Přihlášení uživatele if(isset($_POST['jmeno'])){ //Zkontrolujeme jmeno include "mysql/mysql.php"; //Pripojime se do dtb. $nick = $_POST['jmeno']; //Do proměnné dbjmeno dáme jméno z formulaře $heslo = md5($_POST['heslo']); //Do proměnné dbheslo dáme heslo z formulaře //Připojíme se do databáze a vytáhneme zní ověření zda jmeno a heslo souhlasí. $pripoj = MySQL_Query("SELECT * FROM dvora21 WHERE nick = '$nick' and password = '$heslo'") or die (mysql_error()); $zaznam = mysql_fetch_array($pripoj); if($zaznam['nick']== $nick){ if ($_SESSION['prihlasen'] = 2) echo "Je admin"; if ($_SESSION['prihlasen'] == 1) echo "Je redaktor"; if ($_SESSION['prihlasen'] == 2) echo "je iba uzivatel"; $_SESSION['uziv-jmeno'] = $zaznam['nick']; //Uložíme si do session jmeno $_SESSION['uziv-id'] = $zaznam['id']; //Uložíme si do session pořadí uživatele $_SESSION['uziv-heslo'] = $zaznam['password']; //Uložíme si do session heslo }else{ $_SESSION['prihlasen'] = 0; } mysql_free_result($pripoj); } include "mysql/mysql.php"; echo"<p>$zaznam[username]</p>"; ?> |
||
Mastodont Profil |
#18 · Zasláno: 4. 3. 2009, 17:26:00
mysql_connect('$host', '$user', '$pw') To ti gogy radí blbě, tam nesmí být apostrofy. |
||
gogy27 Profil |
#19 · Zasláno: 4. 3. 2009, 17:26:38
to si daval od 10 riadku? ja som myslel od zaciatku :D ze prvych 10 riadkov
|
||
dvora21 Profil * |
#20 · Zasláno: 4. 3. 2009, 17:29:15
je to od zacatku kdys neberu toto:
<? session_start(); include("d21.php") ?> <title>D21 | Přihlášení </title> <h1>Přihlášení</h1> <?php |
||
gogy27 Profil |
#21 · Zasláno: 4. 3. 2009, 17:33:15
v d21.php mas uz raz zadefinovany session cize bud ho vyhod stamade alebo stade a potom chyba v scripte mysql.php
|
||
gogy27 Profil |
#22 · Zasláno: 4. 3. 2009, 17:34:55
Mastodont ma pravdu nesmies tam mat apostrofy ja som to kopiroval z priamo vypisanych udajov a len som menil hodnoty cize za tvoje premenne
|
||
dvora21 Profil * |
#23 · Zasláno: 4. 3. 2009, 17:35:40
Odstranil jsem apostrofy a hodilo mi to chybu:
Table 'dvora21.dvora21' doesn't exist |
||
gogy27 Profil |
#24 · Zasláno: 4. 3. 2009, 17:49:41
tak asi nemas tabulku s nazvom dvora21 alebo tvoja databaza sa tak nevola
|
||
dvora21 Profil * |
#25 · Zasláno: 4. 3. 2009, 17:58:21
Jo já jsem to spletl už to mám ale zase mi to hodilo chybu ze je neznámí sloupec password celé: Unknown column 'password' in 'where clause' chodím od chyby k chybě :(
|
||
gogy27 Profil |
#26 · Zasláno: 4. 3. 2009, 18:05:26
dvora21
napis mi na icq ;) mam ho v profile |
||
dvora21 Profil * |
#27 · Zasláno: 4. 3. 2009, 18:23:20
Já ICQ nemám mám jen jabber
|
||
dvora21 Profil * |
#28 · Zasláno: 4. 3. 2009, 18:25:45
Já ICQ nemám mám jen jabber
|
||
dvora21 Profil * |
#29 · Zasláno: 4. 3. 2009, 18:42:57
Jak se jmenuješ na ICQ ? kdyby něco už mě tam máš jak dlouho ;) ICQ: 4 .81 9 .38 5 .53
|
||
gogy27 Profil |
#30 · Zasláno: 4. 3. 2009, 18:44:39
vyzera to tak ze stlpec password nemas v db
|
||
Téma pokračuje na další straně.
|
0