Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fully

Sistema de Login Multiusuário e com níveis de acesso

Recommended Posts

Olá galera!!tenho um sistema de login em php que já ta pronto..mas eu preciso de um login multiusuário..tipo...é um site onde as pessoas postam anuncioss...e o login que tenho só tem como um usuario postar anuncios..precisaria que todos pessoas pudessem ver sómente os seus anuncios com um login diferente do outro...e um moderador teria acesso a pagina com todos os anuncios de todos os anunciantes!conseguiram intender??TENHO TUDO PRONTO SÓ FALTA SEPARAR POR NÍVEL!!!ABRAÇOS!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fully, uma idéia ai...

 

Primeira coisa é a hora que o cara for postar o anuncio o login dele já fica gravado em um campo, no mesmo registro do anuncio pra fica facil a recuperação depois.

 

Depois na hora do Login vais ter que fazer o seguinte

\\aqui são os campos que vem do formulário de login.$login = $_POST['login];$senha = $_POST['senha'];\\ aqui é feita a verificação para ver se o usuário é o Administrador.if ($login == 'administrador' AND $senha == '123') {\\esse Select retorna todos os resultados que tem no BD.		 $sql_listar_adm = SELECT * FROM tabela;\\aqui ele valida o select e lista o resultado a variável $conexao vem do script de conexao com o BD		 $result_adm = mysql_query($sql_listar_adm,$conexao);		 $q_regi_adm = mysql_num_rows($result_adm); \\ este FOR é para listagem de todos os posts		for ($conta=0;$conta < $q_regi_adm;$conta++)		 {		$id[]=mysql_result($result_adm,$conta,"id");\\$anuncio é a variavel que recebe o valor do anuncio que está no banco no campo ds_anuncio.		$anuncio=mysql_result($result_adm,$conta,"ds_anuncio");\\aqui recupera o ID do registro caso precisse mais pra frente.		$sel_id=mysql_result($result_adm,$conta,"id"); \\aqui está escrevendo os anuncios do usuário, você deve fazer uma estrutura HTML aqui.		   echo $ds_anuncio;	}}else {\\ aqui nesse Select vai ser listado tudo que o usuário que está se logando postou.		  $sql_listar = SELECT * FROM tabela WHERE $login = 'login' AND $senha = 'senha';\\aqui ele valida o select e lista o resultado a variável $conexao vem do script de conexao com o BD		  $result = mysql_query($sql_listar,$conexao);		  $q_regi = mysql_num_rows($result); \\ este FOR é igual ou anterior		  for ($cont=0;$cont < $q_regi;$cont++)			  {				  $id[]=mysql_result($result,$cont,"id");\\$anuncio é a variavel que recebe o valor do anuncio que está no banco no campo ds_anuncio.				  $anuncio=mysql_result($result,$cont,"ds_anuncio");\\aqui recupera o ID do registro caso precisse mais pra frente.				  $sel_id=mysql_result($result,$cont,"id"); \\aqui está escrevendo os anuncios do usuário, você deve fazer uma estrutura HTML aqui.					 echo $ds_anuncio;		  }}

Dessa maneira você vai fazer a diferenciação mediante ao login. Se você quiser fazer por categorias tbn dá, é um pouquinho mais complicado mais nada que agente não consiga fazer junto aqui.

 

Ps.: Só uma coisa... não sei se a a maneira mais segura deixar o nome de usuario e senha do admin ali neh... mas acho que naum tem tanto problema assim!

 

Valeussss...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew Doug pela DIca!mas é que eu tenho um sistema de login e pagina de controle dos anuncios, e sou iniciante nisso agora to perdido nao sei como fazer..Se quizer que mostre os codigos para voce ver como é eu mostro..abraços e sucesso a você..=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

fully...posta a parte de login aqueh pra gente poder modificar como você precisa...Flows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talves isso ajuda um pouco...

		  <?php		   include("../conexao.php");		  		  if (!$usuario || !$senha) { echo "É preciso digitar o usuário e a senha!"; }		  $usuario = trim($usuario);		  $query2 = "select nomepes,idpes,loginpes,senhapes,tipopes from pessoas where loginpes = '$usuario' and excluido='N'";          $resultado2 = @mysql_query($query2) or die("A query falhou: " . mysql_error());          $total = @mysql_num_rows($resultado2);		  if ($total) {           $row2 = mysql_fetch_array($resultado2);		    if (!strcmp(trim ($senha), $row2['senhapes'])) {			    $_SESSION['id'] = $row2['idpes'];                 # Ao alterar esse treicho do código, 				$_SESSION['login'] = $row2['loginpes'];           # alterar também o arquivo cons_user_b.php,				$_SESSION['senha'] = $row2['senhapes'];           # menu.php, alt_not_d, ins_not_a.php e ins_not_b.php     				$_SESSION['nome']  = $row2['nomepes'];                    				$_SESSION['tipo']  = $row2['tipopes'];                    								switch($row2['tipopes']) {                case "A":                 header("Location: admin/index.php");                break;                    case "F":                 header("Location: func/index.php");                break;                    case "M":                 header("Location: medico/index.php");                break;                    default:                 exit("Houve um problema interno, por favor contate o administrador!");                } 			 } else {               echo "Senha inválida! Digite novamente...";              }		            } else {      	     echo "Usuário inválido! Digite novamente...";		   }		  ?>	

Lembre-se de "startar" a sessão antes de começar o envio da página... outro detalhe é que só se pode usar a superglobal $_SESSION se a sessão já tiver sido "startada"Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa eh uma das paginas..

entrar.php

mas acho que tenho que postar as outras neh?

<??><html><head><title>Acesso ao Painel de Controle</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="css/estilos.css" rel="stylesheet" type="text/css"><script language='JavaScript' src='funcoes.js'></script><style type="text/css"><!--body {	background-image: url(design/pattern.jpg);	background-color: #FFFFFF;}--></style></head><body><table width=700 height=400 border=0 align="center" cellpadding=3 cellspacing=0 bgcolor="#DDDEE2" class='trim'>  <tr><td align='center' valign='middle'><?=$error?><img src="design/administracao.gif" width="308" height="89"><form action='<?=$PHP_SELF?>' method=post onSubmit='return checkrequired(this)'><table class='trim' width=350 border=0 cellpadding=5 cellspacing=0>	<tr><td class='highlight' align='center' colspan=2><b class="texto2">Acesso ao Painel de Controle</b></td>	</tr>	<tr class='fill'><td height=1 colspan=2><!-- LINE --></td></tr>		<tr><td width=135 align='right' class='text'><strong>Usuário</strong></td>	<td><input class='texto2' type=text name='username' alt='required'></td></tr>	<tr><td align='right' class='text'><strong>Senha</strong></td><td><input class='texto2' type=password name='password' alt='required'></td></tr>		<tr class='fill'><td height=1 colspan=2><!-- LINE --></td></tr>		<tr><td colspan=2 align='center'>	<input class='texto2' type=button value='Cancelar' onClick="window.location='index.php';">	<input class='texto2' type=submit value='Entrar'></td></tr>	</table></form></td></tr></table><table width=700 border=0 align="center" cellpadding=5 cellspacing=0><tr><td align='center'><? require 'rodape.php'; ?></td></tr></table></body></html>

painel de controle

 

<?require 'seguranca.php';require 'configuracoes.php';require 'config/config.php';// get info from database$link = mysql_connect($dbhost, $dbuser, $dbpass);$query = "SELECT updated FROM $dbvin ORDER BY updated DESC";$result = mysql_db_query($dbname, $query, $link);$result = mysql_fetch_array($result);$date = date(' d \d\e M \d\e Y \à\s g:i a', $result[updated]);$query = "SELECT COUNT(*) FROM $dbvin";$result = mysql_db_query($dbname, $query, $link);$result = mysql_fetch_array($result);$count = $result[0];mysql_close($link);?><html><head><title>Painel de Controle</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="css/estilos.css" rel="stylesheet" type="text/css"><script language='JavaScript' src='funcoes.js'></script><style type="text/css"><!--body {	background-image: url(design/pattern.jpg);	background-color: #FFFFFF;}--></style></head><body><table width=700 border=0 align="center" cellpadding=3 cellspacing=0 bgcolor="#DDDEE2" class='trim'>	<tr>	  <td class='highlight' align='center' colspan=9><b class="texto2">Painel de controle </b></td></td></tr>	<tr class='fill'><td height=1 colspan=9><!-- LINE --></td></tr>		<tr>		<td colspan=9>			<table width='100%' border=0 cellpadding=0 cellspacing=0>				<tr>					<td class='text'>						Sua frota foi atualizada em <font class='texto2'><b><?=$date?></b></font><br>						Existem até agora <font class='texto2'><b><?=$count?></b></font> veículos cadastrados.<br>					</td>					<td align='right'>						<input class='texto2' type=button value='Adicionar veículo' onClick="window.location='adicionar.php';">						 						<input class='texto2' type=button value='Opções' onClick="window.location='opcoes.php';">						 						<input class='texto2' type=button value='Sair' onClick="window.location='seguranca.php?logout=true';">					</td>				</tr>			</table>		</td>	</tr>	<tr>		<td colspan=9>			<table width='100%' border=0 cellpadding=0 cellspacing=0>				<tr><td height=10></td></tr>				<tr>					<td class='hint'>						Clique no botão Opções acima para alterar as informações sobre sua revendedora e o site.<br>						<br>						Para alterar os anúncios ou enviar e apagar anúncios e fotos, escolha um anúncio na tabela abaixo ou digite o número de cadastro para procurar. <br>				  <br>				  </td>				</tr>			</table>		</td>	</tr> 		<tr class='fill'><td height=1 colspan=9><!-- LINE --></td></tr>	<form action='pre_visualizar.php' method=post>	<tr>		<td class='text' colspan=9 align='center' valign='middle'>			 N. Cadastro: <input class='texto2' type=text name='cadastro' style='width:100px'>			 <input class='texto2' type=submit value='Procurar'>		</td>	</tr>	</form>	<tr class='fill'><td height=1 colspan=9><!-- LINE --></td></tr>		<tr class='fill'>	<?	// determine what to display for the column heading links	if(!$sort || !$order) { $sort = 'updated'; $order = 'DESC'; }	if($order == 'DESC') {		$arrow = "<img src='design/arrow_down.gif' border=0>";		$reverse = 'ASC';	} else {		$arrow = "<img src='design/arrow_up.gif' border=0>";		$reverse = 'DESC';	}		if($sort == 'cadastro') { echo "<td width=70 align='center'><a class='text' href='$PHP_SELF?sort=cadastro&order=$reverse'><b>N. Cadastro:</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='text'<b>N. Cadastro</b></a></td>"; }		if($sort == 'anofabricacao') { echo "<td width=70 align='center'><a class='text' href='$PHP_SELF?sort=anofabricacao&order=$reverse'><b>Ano:</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='text' <b>Ano</b></a></td>"; }		if($sort == 'marca') { echo "<td width=70 align='center'><a class='text' href='$PHP_SELF?sort=marca&order=$reverse'><b>Marca:</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='text' <b>Marca</b></a></td>"; }		if($sort == 'model') { echo "<td width=70 align='center'><a class='text' href='$PHP_SELF?sort=model&order=$reverse'><b>Modelo:</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='text' <b>Modelo</b></a></td>"; }		if($sort == 'condicao') { echo "<td width=70 align='center'><a class='text' href='$PHP_SELF?sort=condicao&order=$reverse'><b>Condição</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='text' <b>Condição</b></a></td>"; }	/*	if($sort == 'quilometragem') { echo "<td width=70 align='center'><a class='link_text' href='$PHP_SELF?sort=quilometragem&order=$reverse'><b>Quilometragem</b> $arrow</a></td>"; }	else { echo "<td width=70 align='center'><a class='link_text' href='$PHP_SELF?sort=quilometragem&order=$reverse'><b>Quilometragem</b></a></td>"; }	*/	?>	<td class='text' width=70 align='center'><b>Preço</b></td>	<?	if($sort == 'viewed') { echo "<td align='center'><a class='text' href='$PHP_SELF?sort=viewed&order=$reverse'><b>Visitas</b> $arrow</a></td>"; }	else { echo "<td align='center'><a class='text' <b>Visitas</b></a></td>"; }	?>	<td class='text' width=95 align='center'><b>Opções</b></td>	</tr>	<tr class='fill'><td height=1 colspan=9><!-- LINE --></td></tr>		<?	$link = mysql_connect($dbhost, $dbuser, $dbpass);	$query = "SELECT codigo, viewed, cadastro, vin, anofabricacao, anomodelo, marca, model, condicao, quilometragem, preco FROM $dbvin ORDER BY $sort $order";	$result = mysql_db_query($dbname, $query, $link);	$n = 1;	while($data = mysql_fetch_array($result)) {		if(!($n % 2)) { $bg = "class='fill_light'"; } else { $bg = ''; }		echo "		<tr $bg>			<td class='text'>$data[cadastro]</td>			<td class='text' align='center'>$data[anofabricacao]</td>			<td class='text'>$data[marca]</td>			<td class='text'>$data[model]</td>			<td class='text' align='center'>$data[condicao]</td>			<!--<td class='text' align='center'>$data[quilometragem] KM</td>-->			<td class='text' align='center'>R$ $data[preco]</td>			<td class='text' align='center'>$data[viewed]</td>			<td class='text' align='center'><a class='link' href='pre_visualizar.php?codigo=$data[codigo]'>Alterar</a></td>		</tr>		";		$n++;	}	mysql_close($link);	?>		<tr class='fill'><td height=5 colspan=9><!-- LINE --></td></tr></table><table width=700 border=0 align="center" cellpadding=5 cellspacing=0><tr><td align='center'><? require 'rodape.php'; ?></td></tr></table></body></html>

Segurança

<?require 'config/config.php'; // FOR DATABASE ACCESS// JUMP-TO PAGES$jump_login = 'entrar.php';$jump_logout = 'index.php';session_start();// IF LOGGING OUTif($logout) {	session_destroy();	echo "<script language='JavaScript'>window.location='$jump_logout'</script>";	exit();}// ALREADY LOGGED INelseif(isset($HTTP_SESSION_VARS['access'])) {	//$userid = $HTTP_SESSION_VARS['cmonkey_userid']; // marca USERNAME ACCESSIBLE}// LOGGING INelseif(isset($HTTP_POST_VARS['username']) && isset($HTTP_POST_VARS['password'])) {			// CHECK FOR USER IN DATABASE	$link = mysql_connect($dbhost, $dbuser, $dbpass);	$query = "SELECT username, password FROM $dbcfg WHERE username='$username' AND password='$password'";	$result = mysql_db_query($dbname, $query, $link);	$found = @mysql_num_rows($result); //echo "$found"; // TEST		if($found) { // IF A MATCH HAS BEEN FOUND		$HTTP_SESSION_VARS['access'] = true;				mysql_close($link);			} else {		$error = "<font class='text'><b>Erro: Nome de usuário ou senha inválidos</b></font><br><br>";		mysql_close($link);		include($jump_login);		exit();	}} // NOT LOGGED IN YETelse {	include($jump_login);	exit();}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, passo a passo:1st: cria uma tabelinha de permissoes no teu banco de dados...2nd: cria outra tabelinha pra relacionar as permissoes x usuarios, assim você vai ter flexibilidade de ter n permissoes para n usuarios...3rd: assim que o carinha entrar com o usuario e senha, na tua procedure ou select (enfim), você já valida se o carinha existe mesmo na db, e depois retorna as permissoes, dai aconselho gravar em uma session as permissoes do cara (pra não ficar fazendo select toda hora) e verificar no php depois qdo precisar... ;):)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao fazer a autenticação grave as permissões relacionadas numa variável de sessão.aplique as regras em cada pagina que você quer restringirpor exemplopágina de cadastro:if ( $_SESSION['user']['add'] ) {//codigo da pagina de cadastro de anuncio}else{//acesso negado}página de edição:if ( $_SESSION['user']['edit'] ) {//codigo da pagina de edição de anúncio}else{//acesso negado}entendeu ?basta você ter uma boa estrutura de tabela de usuarios e tabela de permissões.o restante é "IF" "ELSE"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dae hinom!!vlew mesmo pela ajuda!!mas é que tipo eu tentei varias vezes e nao consigui..é que eu programava em asp e agora começei com PHP e nao ta dando certo os codes...quanto voce me cobra pra fazer isso se eu te passar as páginas..abraço amigo e sucesso!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fully,Minha prestação serviços é restrita para clientes da Ásia, exceto aos países do oriente médio.Neste forum, minha colaboração limita-se a ajudar e orientar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera...sei que o tópico é um pouco antigo, mas cmo utilizei a busca do forum, creio que seja valido ressucita-lo!

 

hehe

 

é o seguinte,

como que posso fazer para passar as variaveis para a session não estou conseguindo,

 

segue o código

<?phpsession_start();if (!isset($_SESSION['id_func'])){   header('Location: login.php');}//codigo do usuário logado$id_user = $_SESSION['id_func'];$consulta_menu="SELECT f.id_funcionario, g.id_grupo, f.sexo						   FROM funcionario AS f, grupo_funcionario AS gf, grupo as g			   WHERE f.id_funcionario=gf.id_funcionario and gf.id_grupo=g.id_grupo and  f.id_funcionario=$id_user";//execução da consulta$resposta=pg_exec($consulta_menu);//tamanho de espaço de um menu para o outro$t_left=55+215;while($linha = pg_fetch_array($resposta)){  $id_funcionario=$linha["id_funcionario"];  $id_grupo=$linha["id_grupo"];  $sexo=$linha["sexo"];    $i=1  $grupo = array($id_grupo);		if(in_array($id_grupo, $grupo)){  $perm$i=$_SESSION["$id_grupo"];    echo $perm$i."<br>";  }  }    ?>

se puderem me ajudar ficaria muito agradecido

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.