| 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