Jump to content

Recommended Posts

Posted

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

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

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

Posted

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

Posted

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

Posted

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

Posted (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 by AngeloLopes
Posted (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 by brunoais
geshi

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.