Nimaro 0 Denunciar post Postado Dezembro 4, 2009 Boas tardes, Estou a construir 1 site... e estou a construi-lo atraves de ficheiros php ligados entre si. No index.php existe uma area onde um utilizador do sistema pode fazer login e dai ter acesso a outras areas. Estou a construir o site localmente, só depois é que o colocarei alocado na web. A minha questao diz respeito a proteccao de area apenas destina aos utilizadores. Por exemplo, se eu quiser aceder as outras areas sem ir pela area de login, ou seja... chegar a barra de endereços e colocar secretel/pagina_depois_login.php ele acede-me a esta area, sem que tenha tido de fazer login. A unica coisa é que onde mando imprimir o nome do utilizador ele da erro; mas consigo aceder livremente ao resto do programa. A unica solução que consigo imaginar para este caso, que é a de colocar uma condição no inicio da pagina que caso o $_SESSION['username'] for vazio ele volta para trás ou entao dará uma mensagem de erro. Não sei se esta é uma grande solução... por isso queria-vos perguntar a forma como devo fazer! Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Dezembro 4, 2009 Bom no seu login (quando a pessoa está logada) voce grava em uma sessao? Eu costumo fazer assim.. Crio um arquivo libera.php session_start(); function check(){ if(session_is_registered("NOMEDASUASECAO")){ if($_SESSION["acesso"] != "libera"){ header("Location: login.php"); } }else{ header("Location: login.php"); } } Verifico se a sessao esta registrada e outra sessao de controle de acesso contem a string libera.. Caso ele nao obdeca essas regras, ele volta pra pagina de login. Na sua index.php faça assim: session_start(); include("libera.php"); check(); Caso nao entenda volte ao topico que explico melhor, mas a base é isso http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Dezembro 4, 2009 Bem... eu nao percebi muito bem algumas coisas no teu codigo :/ Eu fiz deste genero, ele funciona... pelo menos volta para o index quando tento entrar directamente nas paginas e funciona normal quando entro pelo login Mas fiz isto de maneira muito simples, se calhar simples demais.... a ver se concordam??? liberta.php <?php if ($_SESSION['username'] == '') { header("Location: index.php"); } ?> pagina_depois_do_login.php <?php require_once("liberta.php");?> Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Dezembro 4, 2009 O modo que te passei também é bem simples, ele faz a mesma coisa que voce fez so que ainda verifica se a sessão esta registrada com o nome que voce definiu no login. Acho que por ser simples não há problemas em utilizar.. Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Dezembro 4, 2009 OK, valeu obrigadao pela ajdua ;) Compartilhar este post Link para o post Compartilhar em outros sites