Ir para conteúdo

POWERED BY:

Arquivado

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

h_felix

Impedir de abrir pagina caso esteja aberta por outro usuario

Recommended Posts

Bom dia Galera , tudo bem ?

 

 

Estou com um problema que ja esta me tirando o sono tem um tempo.

 

Tenho que entregar um trabalho ( metade da media do semestre :( ) .Ele ja esta quase que 100% pronto , mas falta um dos requisitos exigidos.

 

 

Vamos la :

 

Ao acessar a pagina, o usuario faz login ( cada usuario tem um login ). Quando ele faz login , é criada as sessões : UsuarioId ; UsuarioNome e UsuarioNivel.

 

Tem uma pagina que faz o controle das demais , ao qual chamo de content.php.

 

Ela é responsável por pegar o nivel de acesso de cada usuario , e fazer o include das pagina que ele tem permissão.Então , eu chamo a pagina

 

case 5:
include 'controllers/venda/venda.php';
break;

Essa pagina , venda.php , tem uma tabela que é alimentada com dados do banco de dados , e em uma das colunas , tem um botão de editar

echo "<tr>
			
			 <td>". $id. "</td>"
			 .
			 "<td>" .$row['dataVenda'].' / ' .$row['horaVenda']. "</td>"		 
			.
			 "<td>". $row['vendedor'] . "</td>"
			.
			 "<td>". $row['nomeCliente'] . "</td>"
			 .
			 "<td>". $row['produto'] . "</td>"
			 .
			 "<td>". $row['CPF'] . "</td>"
			 .
			 "<td>" .$status1. "</td>" 
			 .
			 "<td>" .$status3. "</td>" 
			 .
			 "<td> <a href='index.php?pag=venda&idVenda=".$id." ' class='btn default btn-xs purple'><i class='fa fa-edit'></i> VER</a>"
			.
			 "</tr>";
		}
		


				</tbody>
		</table>
Até ai OK !
Então , o usuario entra na pagina VENDA , e resolve editar e venda com ID 05. Mas , digamos que tenha 2 pessoas logadas no sistema , e por coincidência , as 2 resolvam editar a venda com o ID 05 , daria problema , pois os dados que uma iria editar poderiam já estar editados pela outra pessoa.
Então eis que surge meu problema , como impedir de que 2 ,3 , 4 usuarios abram a mesma venda para edita-la ?
Desculpe se não fui claro , e desde , muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma ideia pode ser ter uma tabela para controle. quando o usuário clicar para editar um registro verifica um campo dessa tabela. se ele estiver vazio coloca um editando e permite a edição. se já tiver escrito editando emite um aviso e não permite ir em frente. a partir daí decide se depois de editado outra pessoa pode editar de novo ou não para saber se depois de terminar a edição tira o editando e deixa o campo vazio ou se coloca editado para também bloquear novas edições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma ideia pode ser ter uma tabela para controle. quando o usuário clicar para editar um registro verifica um campo dessa tabela. se ele estiver vazio coloca um editando e permite a edição. se já tiver escrito editando emite um aviso e não permite ir em frente. a partir daí decide se depois de editado outra pessoa pode editar de novo ou não para saber se depois de terminar a edição tira o editando e deixa o campo vazio ou se coloca editado para também bloquear novas edições.

 

Me perdi um pouco , mas entendi o que quis dizer .

 

 

Mas , como eu faria a inserção no banco , quando o usuario clicasse no botão para editar a venda

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode controlar a sessão aberta através de session_id. No momento do Login, grave o session_id do primeiro que tentar editar a venda.

 

Se outro tentar, vai ter o session_id diferente. É aí que você barra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode controlar a sessão aberta através de session_id. No momento do Login, grave o session_id do primeiro que tentar editar a venda.

 

Se outro tentar, vai ter o session_id diferente. É aí que você barra.

 

Bom dia ,

 

 

Você poderia demonstrar como que ficaria mais ou menos ?

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.