Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Com Session


acmsoft

Pergunta

Viva

Tenho uma página index.php onde os utilizadores fazem o login.

Quando o login é válido, então escreve no ecran o nome da variável de sessão MM_username. Isto funciona lindo.

O problema é que quando carrego sobre um link, na página destino a sessão já não é válida.

Nesta página de destino tenho o session_start() antes de qualquer saida do código. Tenho de colocar mais algum código para que ele carregue os dados da sessão na página de destino?

valeu pelos comentários.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Página index.php

<?php

// *** Validate request to login to this site.

session_start();

$colname_rsSession = "1";

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

  $colname_rsSession = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);

}

mysql_select_db($database_ConnRSF, $ConnRSF);

$query_rsSession = sprintf("SELECT userid, cliente, nome FROM `user` WHERE login = '%s'", $colname_rsSession);

$rsSession = mysql_query($query_rsSession, $ConnRSF) or die(mysql_error());

$row_rsSession = mysql_fetch_assoc($rsSession);

$totalRows_rsSession = mysql_num_rows($rsSession);

// *** Validate request to login to this site.

session_start();

$loginFormAction = $_SERVER['PHP_SELF'];

if (isset($accesscheck)) {

  $GLOBALS['PrevUrl'] = $accesscheck;

  session_register('PrevUrl');

}

if (isset($_POST['txtlogin'])) {

  $loginUsername=$_POST['txtlogin'];

  $password=$_POST['txtpwd'];

  $MM_fldUserAuthorization = "";

  $MM_redirectLoginSuccess = "index.php";

  $MM_redirectLoginFailed = "login.php?msg=loginfail";

  $MM_redirecttoReferrer = false;

  mysql_select_db($database_ConnRSF, $ConnRSF);

 

  $LoginRS__query=sprintf("SELECT Login, Pwd FROM user WHERE Login=%s' AND Pwd='%s' AND (cliente='E' or cliente='P') AND activo='Y' AND bloqueado='N'",

    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

 

  $LoginRS = mysql_query($LoginRS__query, $ConnRSF) or die(mysql_error());

  $loginFoundUser = mysql_num_rows($LoginRS);

  if ($loginFoundUser) {

    $loginStrGroup = "";

   

    //declare two session variables and assign them

    $GLOBALS['MM_Username] = $loginUsername;

    $GLOBALS['MM_UserGroup'] = $loginStrGroup;     

    //register the session variables

    session_register("MM_Username");

    session_register("MM_UserGroup");

    if (isset($_SESSION['PrevUrl']) && false) {

      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];

    }

    header("Location: " . $MM_redirectLoginSuccess );

  }

  else {

    header("Location: ". $MM_redirectLoginFailed );

  }

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

</head>

<body>

Bem vindo {rsSession.nome}

<table width=100%"  border="0" align="center" bordercolor="#DFE2EA" class="tabela1">

      <!--DWLayoutTable-->

      <tr>

        <td width="160" bgcolor="#9DACBF"><div align="center"><span class="style8 style6">Registo</span></div></td>

      </tr>

      <tr>

        <td valign="top" bgcolor="#DFE2EA">

          <form action="<?php echo $loginFormAction; ?>" method="POST" name="formLogin" id="formLogin">

            <div align="center">

              <div align="left" class="texto">Login:                </div>

              <input name="txtlogin" type="text" id="cp24" size="20" maxlength="12">

              <div align="left" class="texto">Password:                </div>

              <input name="txtpwd" type="password" id="cp222" size="20" maxlength="12">               

                <br>

                <input name="BtProcurar2" type="submit" id="BtProcurar23" onClick="MM_validateForm('Chave Pesquisa','','R');return document.MM_returnValue" value="Entrar">

            </div>

          </form>

      </tr>

  </table>

</body>

</html>

<?php mysql_free_result($rsSession); ?>

Página seguinte:

<?php require_once('Connections/ConnRSF.php'); ?><?php

// *** Validate request to login to this site.

session_start();

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

</head>

<body>

Bem vindo

<?php if (isset($_SESSION['MM_Username])) { echo $row_rsSession['nome']; } else { echo "(Utilizador n&atilde;o identificado)";} ?>

</body>

</html>

agradeço a vossa ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0

podem consultar as páginas on-line em www.rsf.com.pt.

página original = index.php

página destino = carreguem sobre a familia "centrais telefónicas".

acontece ainda outro erro:

quando se carrega na familia ele abre a página http://www.rsf.com.pt/artfam.php?fam=44.

Como nesta página existe o seguinte código:

Bem vindo <?php if (isset($_SESSION['MM_Username'])) { echo $row_rsSession['nome']; } else { echo "- Utilizador não identificado";} ?>

O browser devia devolver ou o nome do utilizador ou a string "- Utilizador não identificado".

Só que não aparece nada. Não entendo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...