Jump to content
AngeloLopes

[Resolvido] Mudar pagina index

Recommended Posts

AngeloLopes

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

Share this post


Link to post
Share on other sites
bioshock
if(isset($_SESSION['variavel'])){
 // index page
}else{
 // login page
}

Share this post


Link to post
Share on other sites
AngeloLopes

if(isset($_SESSION['variavel'])){
 // index page
}else{
 // login page
}

Uma duvida meto isso no head ou no inicio do body?

Share this post


Link to post
Share on other sites
AngeloLopes

<?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 by brunoais
geshi

Share this post


Link to post
Share on other sites
jpfelgueiras

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 by brunoais
geshi

Share this post


Link to post
Share on other sites
AngeloLopes

Boa jp felgueiras acho que isso vai resultar muito bem no meu site ;)

Share this post


Link to post
Share on other sites
jpfelgueiras

exprimenta assim

<?php
if(isset($_SESSION['variavel'])){
 // index page
}else
{
?>
.....
<?php
}
?>

Edited by jpfelgueiras

Share this post


Link to post
Share on other sites
AngeloLopes

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'])){

Share this post


Link to post
Share on other sites
jpfelgueiras

como e que estas a gravar a sessão (qual e o codigo do login.php)?

Share this post


Link to post
Share on other sites
AngeloLopes

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 by brunoais
geshi

Share this post


Link to post
Share on other sites
jpfelgueiras

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!!!

Share this post


Link to post
Share on other sites
brunoais

Para esse caso:

Como é que se faz se o utilizador estiver no index1.php e n estiver com o login feito?

  • Vote 1

"[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%.

Share this post


Link to post
Share on other sites
jpfelgueiras

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

Share this post


Link to post
Share on other sites
AngeloLopes

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 :/

Share this post


Link to post
Share on other sites
jpfelgueiras

em vez de

if(isset($_SESSION['variavel'])){

tens de por

if(isset($_SESSION['utilizador'])){

(problemas de formatação)

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
AngeloLopes

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 by AngeloLopes

Share this post


Link to post
Share on other sites
jpfelgueiras

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!

Share this post


Link to post
Share on other sites
AngeloLopes

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 by brunoais
geshi

Share this post


Link to post
Share on other sites
jpfelgueiras
if(isset($_SESSION['utilizador'] || $_SESSION['administrador'] )){

Edited by brunoais
gehsi

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.