« 1 2 »
Autor Zpráva
pito
Profil
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
Ano, napriklad tak.
pito
Profil
ale ja nevim jak to udelat.Prave to delam ,ale nejde mi to.
Taps
Profil
pito
co kdyby jsi ukázal kod
Joker
Profil
pito
"Nejde mi to" je trochu obecné, na to je rada leda víc studovat.
Nějaký konkrétní problém?
pito
Profil
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>

&nbsp;&nbsp;<img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=tipes'> Moje tipy</a> <br>
&nbsp;&nbsp;<img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=profil'> Profil</a>   <br>
&nbsp;&nbsp;<img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?id=account'> Nastavení</a> <br><br>

&nbsp;&nbsp;<img src='tip-liga_soubory/images/sipka.bmp'> <a href='index.php?odhlasit=yes'> Odhlásit se</a>";
        }else{  
     
echo "<form method=\"post\">
&nbsp;&nbsp;<img src=\"tip-liga_soubory/images/log-account2.bmp\" border=\"0\" alt=\"Uživatelské jméno\">&nbsp;<input type=\"text\"  name=\"jmeno\" size=\"15\" maxlength=\"32\"/><br/>
&nbsp;&nbsp;<img src=\"tip-liga_soubory/images/log-pass.bmp\" border=\"0\" alt=\"Heslo\">&nbsp;<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
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";
gogy27
Profil
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
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 *
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
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 *
Tyto chyby po přihlášení zkusím to tam dát a uvidím
dvora21
Profil *
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
session_start musis mat v scripte uplne na vrchu
dvora21
Profil *
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
daj mi tu tvoj script aspon po riadok 10
dvora21
Profil *
//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
mysql_connect('$host', '$user', '$pw')

To ti gogy radí blbě, tam nesmí být apostrofy.
gogy27
Profil
to si daval od 10 riadku? ja som myslel od zaciatku :D ze prvych 10 riadkov
dvora21
Profil *
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
v d21.php mas uz raz zadefinovany session cize bud ho vyhod stamade alebo stade a potom chyba v scripte mysql.php
gogy27
Profil
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 *
Odstranil jsem apostrofy a hodilo mi to chybu:
Table 'dvora21.dvora21' doesn't exist
gogy27
Profil
tak asi nemas tabulku s nazvom dvora21 alebo tvoja databaza sa tak nevola
dvora21
Profil *
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
dvora21
napis mi na icq ;) mam ho v profile
dvora21
Profil *
Já ICQ nemám mám jen jabber
dvora21
Profil *
Já ICQ nemám mám jen jabber
dvora21
Profil *
Jak se jmenuješ na ICQ ? kdyby něco už mě tam máš jak dlouho ;) ICQ: 4 .81 9 .38 5 .53
gogy27
Profil
vyzera to tak ze stlpec password nemas v db
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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