AngeloLopes Posted July 11, 2013 at 01:02 PM Report #518303 Posted July 11, 2013 at 01:02 PM Gostava de saber como se altera a pagina de index dependendo de uma sessao, ou seja se nenhuma sessao estiver aberta, o index vai ser a pagina de login, se uma sessao estiver iniciada, entao vamos mostrar outra pagina diferente
bioshock Posted July 11, 2013 at 01:13 PM Report #518304 Posted July 11, 2013 at 01:13 PM if(isset($_SESSION['variavel'])){ // index page }else{ // login page }
AngeloLopes Posted July 11, 2013 at 01:18 PM Author Report #518306 Posted July 11, 2013 at 01:18 PM if(isset($_SESSION['variavel'])){ // index page }else{ // login page } Uma duvida meto isso no head ou no inicio do body?
AngeloLopes Posted July 11, 2013 at 01:52 PM Author Report #518314 Posted July 11, 2013 at 01:52 PM (edited) <?php include "init.php"; ?> <?php if(isset($_SESSION['variavel'])){ // index page }else { //Login Page <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Pagina Principal</title> <link rel="stylesheet" type="text/css" href="GesInfCss.css"> </head> <body> <div id="top"> <div id="img"> <img src="img/ics.jpg" width="150px" heigth="150px" alt="Logotipo" width=""> </div> <div id="log"> <?php if(isset($_GET['erro'])) //SE EXISTIR ERRO echo 'Erro no login. Tente novamente.'; ?> <form name="login" action='login.php' method='post' accept-charset='UTF-8'> <fieldset> <legend>Login</legend> <input type='hidden' name='submitted' id='submitted' value='1'/> <label for='utilizador' >Utilizador:</label> <input type='text' name='utilizador' maxlength="50" /> <label for='password' >Password:</label> <input type='password' name='password' maxlength="50" /> <input type='submit' name='Submit' value='Iniciar Sessão' /> </fieldset> </form> </div> </div> <br> <div id="bot"> <p id="copy"> © Copyright GesInf 2013. Todos os direitos reservados. Design By: Ângelo Lopes & Hugo Silva </p> </div> } </body> </html> } ?> Meto isto assim e dame erro porque? Edited July 11, 2013 at 02:30 PM by brunoais geshi
jpfelgueiras Posted July 11, 2013 at 01:54 PM Report #518316 Posted July 11, 2013 at 01:54 PM (edited) para o efeito que queres mete no body mas o que aconselho a fazer e if(isset($_SESSION['variavel'])){ header("location: index1.php"); }else{ header("location: login.php"); } assim ele redirecciona para o index1 quando esta "logado" e para o login quando não esta e assim e escusado pores html no index. fica só a servir para redireccionar conforme a sessão! Edited July 11, 2013 at 02:30 PM by brunoais geshi
AngeloLopes Posted July 11, 2013 at 01:56 PM Author Report #518317 Posted July 11, 2013 at 01:56 PM Boa jp felgueiras acho que isso vai resultar muito bem no meu site 😉
jpfelgueiras Posted July 11, 2013 at 01:57 PM Report #518318 Posted July 11, 2013 at 01:57 PM (edited) exprimenta assim <?php if(isset($_SESSION['variavel'])){ // index page }else { ?> ..... <?php } ?> Edited July 11, 2013 at 02:00 PM by jpfelgueiras
AngeloLopes Posted July 11, 2013 at 02:04 PM Author Report #518319 Posted July 11, 2013 at 02:04 PM exprimenta assim <?php if(isset($_SESSION['variavel'])){ // index page }else { ?> ..... <?php } ?> O que e que eu meto dentro de variavel neste sitio? if(isset($_SESSION['variavel'])){
jpfelgueiras Posted July 11, 2013 at 02:09 PM Report #518321 Posted July 11, 2013 at 02:09 PM como e que estas a gravar a sessão (qual e o codigo do login.php)?
AngeloLopes Posted July 11, 2013 at 02:14 PM Author Report #518322 Posted July 11, 2013 at 02:14 PM (edited) E este: <?php include 'init.php'; //CONSULTA DO UTILIZADOR $query = "Select * from login where utilizador='" . $_POST['utilizador'] . "' and pass='" . $_POST['password'] . "'"; $resultado=mysql_query($query); if(mysql_num_rows($resultado)>0){ // login com sucesso.. //COLOCA NA VARIAVEL LINHA OS DADOS DA CONSULTA $linha=mysql_fetch_array($resultado); if($linha['tipo']== 0){ // Utilizador faz algo... header("location: user.php"); //COLOCA O UTILIZADOR EM SESSAO $_SESSION['utilizador']=$linha['utilizador']; }else{ // Administrador faz algo... header("location: admin.php"); //COLOCA O UTILIZADOR EM SESSAO $_SESSION['administrador']=$linha['utilizador']; } } // erro ao efectuar login.. else //CASO NAO COINCIDAM { //REDIRECCIONA PARA A PAGINA INICIAL REPORTANDO O ERRO header("location: index.php?erro=1"); } ?> Edited July 11, 2013 at 02:31 PM by brunoais geshi
jpfelgueiras Posted July 11, 2013 at 02:20 PM Report #518325 Posted July 11, 2013 at 02:20 PM Se fizeres isto: header("location: user.php"); Antes disto: $_SESSION['utilizador']=$linha['utilizador']; ele nunca vai gravar o nome do utilizador na variável de sessão !!! pois ele redirecciona antes de passar o nome do utilizador para a variável de sessão!!!
AngeloLopes Posted July 11, 2013 at 02:24 PM Author Report #518327 Posted July 11, 2013 at 02:24 PM entao como fazo? cortu isto? header("location: user.php");
brunoais Posted July 11, 2013 at 02:28 PM Report #518329 Posted July 11, 2013 at 02:28 PM Para esse caso: Como é que se faz se o utilizador estiver no index1.php e n estiver com o login feito? 1 Report "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
jpfelgueiras Posted July 11, 2013 at 02:40 PM Report #518331 Posted July 11, 2013 at 02:40 PM eu proponho que troque as ordem, primeiro guardas a variável de sessão e depois e que redireccionas. brunoais: Qual caso? Pelo que percebi, acho que o melhor e verificares no index1.php se o utilizador esta "logado" caso não esteja voltas a enviar para o index.php ou ate mesmo diretamente para o login.php
AngeloLopes Posted July 11, 2013 at 02:46 PM Author Report #518333 Posted July 11, 2013 at 02:46 PM Meti isto assim mas ainda nao funciona qual e o problema? <?php include "init.php"; ?> <?php if(isset($_SESSION['variavel'])){ ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Pagina Principal</title> <link rel="stylesheet" type="text/css" href="GesInfCss.css"> </head> <body> <div id="top"> <div id="img"> <img src="img/ics.jpg" width="150px" heigth="150px" alt="Logotipo" width=""> </div> </div> <br> <div id="bot"> <p id="copy"> © Copyright GesInf 2013. Todos os direitos reservados. Design By: Ângelo Lopes & Hugo Silva </p> </div> </body> </html> <?php }else { ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Pagina Principal</title> <link rel="stylesheet" type="text/css" href="GesInfCss.css"> </head> <body> <div id="top"> <div id="img"> <img src="img/ics.jpg" width="150px" heigth="150px" alt="Logotipo" width=""> </div> <div id="log"> <?php if(isset($_GET['erro'])) //SE EXISTIR ERRO echo 'Erro no login. Tente novamente.'; ?> <form name="login" action='login.php' method='post' accept-charset='UTF-8'> <fieldset> <legend>Login</legend> <input type='hidden' name='submitted' id='submitted' value='1'/> <label for='utilizador' >Utilizador:</label> <input type='text' name='utilizador' maxlength="50" /> <label for='password' >Password:</label> <input type='password' name='password' maxlength="50" /> <input type='submit' name='Submit' value='Iniciar Sessão' /> </fieldset> </form> </div> </div> <br> <div id="bot"> <p id="copy"> © Copyright GesInf 2013. Todos os direitos reservados. Design By: Ângelo Lopes & Hugo Silva </p> </div> </body> </html> <?php } ?> Ja alterei as posiçoes mas mesmo assim, quando ele entra no if para ver se tem sessao iniciada passa sempre para o else, nao sei porque por isso a pagina fica sempre a de login :/
jpfelgueiras Posted July 11, 2013 at 02:48 PM Report #518334 Posted July 11, 2013 at 02:48 PM (edited) em vez de if(isset($_SESSION['variavel'])){ tens de por if(isset($_SESSION['utilizador'])){ (problemas de formatação) Edited July 12, 2013 at 10:58 AM by brunoais geshi
AngeloLopes Posted July 11, 2013 at 03:00 PM Author Report #518335 Posted July 11, 2013 at 03:00 PM (edited) Mesmo assim nao deu :/ Afinal da mas so deu com o utilizador nao deu com o administrador Pois eu tenho duas sessoes diferentes uma de admins, outra com utilizadores e assim so altera a dos utilizadores Edited July 11, 2013 at 02:58 PM by AngeloLopes
jpfelgueiras Posted July 11, 2013 at 03:00 PM Report #518336 Posted July 11, 2013 at 03:00 PM esta a faltar o session_start(); a não ser que tenhas isso no init.php então não estou a ver o problema!
AngeloLopes Posted July 11, 2013 at 03:05 PM Author Report #518337 Posted July 11, 2013 at 03:05 PM (edited) ou seja eu se iniciar sessao com um utilizador isto funciona, se usar um admin nao funciona <?php session_start(); mysql_connect('127.0.0.1','root','')or die("Erro na ligação ao servidor: " . mysql_error());; mysql_select_db('gesinf'); ?> esta aqui :/ Eu acho que o problema e que ao metermos aqui if(isset($_SESSION['variavel'])){ assim: if(isset($_SESSION['utilizador'])){ Estamos a fazer com que ele altere quando iniciarmos sessao com um utilizador com o admin continua igual. entende?? Edited July 12, 2013 at 10:58 AM by brunoais geshi
jpfelgueiras Posted July 11, 2013 at 03:06 PM Report #518338 Posted July 11, 2013 at 03:06 PM (edited) if(isset($_SESSION['utilizador'] || $_SESSION['administrador'] )){ Edited July 12, 2013 at 10:58 AM by brunoais gehsi
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now