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

Variavel $_session[]


Guest cool7

Pergunta

Olá, estou a tentar fazer a passagem de variaveis entre páginas através de $_SESSION[], mas ou estou a cometer algum erro ou não percebo poruqe é que não funciona. tenho o seguinte código:

Página1:

<?php

session_start();

$_SESSION['var']=teste";

?>

<html>

<a href=pag2.php>pag2</a>

</html>

Página2:

<?php

session_start();

echo $_SESSION['var];

?>

<html>

<a href=pag3.php>pag3</a>

</html>

Quando entra na segunda página, não apresenta a variavél. somente o link para a 3a página....já tentei de mil e uma maneiras, mas não descubro. Estou a fazer alguma coisa de mal?

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tem que registrar as variáveis de sessão com o comando session_register(var)

Sem o $ mesmo

Link para o comentário
Compartilhar em outros sites

  • 0

Já resolvi o problema, era da configuração do servidor.... Já encontrei mais pessoas com o mesmo problema.... Eu peguei no php.ini dum amigo e substitui pelo meu e ficou a funcionar, por isso não sei o k mudou para dar..... Agora tenho outro problema. As variaveis têm sempre de ser identificadas por $_POST[...], e dantes bastava $var...alguém sabe porque?? é da versaõ do php ser mais recente? Já agora, voltei a fikar com um problema:

<?php

include("database_information.php");

$db = mysql_connect ("$servidor","$user","$pass");

mysql_select_db("ali",$db);

$result = mysql_query("SELECT id,nick FROM users WHERE nick=.$_POST["nick],$db);

$id = mysql_fetch_array($result);

ele dá este erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\apache group\apache\htdocs\ali\verifica_pass.php on line 7

eu axo k o erro é na linha $result.... por causa da $_POST["nick"], mas já tentei alterar ", ' e td o mais e nada... alguém me pode ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0

bom, afinal consegui resolver.....para quem tiver o mesmo problema, aqui fica a solução:

$result = mysql_query("SELECT id,nick FROM users WHERE nick= ' ".$_POST["nick"]." ' ",$db);

O problema era das " e das ' .....enfim.... só uma nota, aí em cima eu pus um espaçamento entre as ' e as ", mas para funcionar correcto n pode ter o espaçamento.

Já agora, como costumo ter muitos problemas com as " e com as ' alguém pode dar uma ajuda? Knd devo utilizar um ou outro??? Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Meu problema com sessions é o seguinte...

quando não uso session_start(); e dou um comando echo $_SESSION['username']; aparece vaiável indefinida.

Mas quando coloco session_star(); com o mesmo echo aparece o valor de username, mas aparece tb um erro:

session_start(): Cannot send session cache limiter - headers already sent

Que faço???

Link para o comentário
Compartilhar em outros sites

  • 0

Vilela, eu tinha o mesmo problema. é o seguinte, tens de fazer session_start(); antes de poderes usares variaveis do tipo $_SESSION[]. A cada página que quiseres fazer echo $_SESSION[], tens de ter antes session_start(); pois este comando inicia uma sessão se ela ainda não tiver sido iniciada ou retoma a que já tinha iniciado, se detectar que já tinha iniciado sessão. O erro que te apareçe, é porque provavelmente tens código html antes de fazer session_start(); pelo menos comigo dava o mesmo erro, por eu ter <html> antes. LOL

Espero ter ajudado. Já agora pessoal, depois de mudificar as coisas no servidor para este ler as variaveis do tipo $_SESSION[], n consigo ler as variaveis normais. Por exemplo a variavel $nome que vem de um formulario, dantes bastava fazer echo $nome; e ele imprimia o seu conteudo, agora tenho de fazer echo $_POST["nome"]. Por mim não tem problema, mas o problema é que se tiver um link assim <a href=pagina.php?nome=teste"> teste</a>, e depois na pagina "pagina.php", nunca consigo ver a var $nome...já tentei com echo $nome; echo $_POST["nome]; e $_GET["nome"], mas ele nunca me imprimiu nada. Alguém pode dar uma sugestão?

Link para o comentário
Compartilhar em outros sites

  • 0
Já resolvi o problema, era da configuração do servidor.... Já encontrei mais pessoas com o mesmo problema.... Eu peguei no php.ini dum amigo e substitui pelo meu e ficou a funcionar, por isso não sei o k mudou para dar..... Agora tenho outro problema. As variaveis têm sempre de ser identificadas por $_POST[...], e dantes bastava $var...alguém sabe porque?? é da versaõ do php ser mais recente? Já agora, voltei a fikar com um problema:

<?php

include("database_information.php");

$db = mysql_connect ("$servidor","$user","$pass");

mysql_select_db("ali",$db);

$result = mysql_query("SELECT id,nick FROM users WHERE nick=.$_POST["nick],$db);

$id = mysql_fetch_array($result);

ele dá este erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\apache group\apache\htdocs\ali\verifica_pass.php on line 7

eu axo k o erro é na linha $result.... por causa da $_POST["nick"], mas já tentei alterar ", ' e td o mais e nada... alguém me pode ajudar?

Para o teu problema edita o php.ini

Coloca REGISTER_GLOBALS para ON

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda estou tendo problemas com sessions...

Num script ele lê o valor de username e senha de um formulário e uso o código:

session_register('username','senha');
$_SESSION['senha']=1;
Tranqüilo... aí, no outro fiz uma página para testar e coloqui o seguinte:
<?
 session_start();


 if ($_SESSION['senha']=1) {
 echo "Teste...<br>";
 echo "Bem vindo ";
 echo "<b>",$_SESSION['username'],"</b>";

 }

 else {
 echo "Erro!!!";
 }

?>

Mas dá erro dizendo:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Arquivos de programas\Apache Group\Apache2\htdocs\login3\teste.php:2) in C:\Arquivos de programas\Apache Group\Apache2\htdocs\login3\teste.php on line 3

Que faço??? Meu register_globals está off!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

if ($_SESSION['senha']=1)
tem que ser comparação, não atribuição... portanto ficaria assim:
if ($_SESSION['senha']==1)

Link para o comentário
Compartilhar em outros sites

  • 0

Vilela, também já tive várias vezes esse erro, e foi sempre porque antes de iniciar o <?php tinha alguma coisa escrita. Não é o que se passa contigo? Não sei se poderá ser disto, mas tenta em vez de <? pôr a tag completa <?php....mais uma coisa, axo que o código não vai funcionar aki

echo "<b>",$_SESSION['username'],"</b>";

porque tem de ser

echo"<b>".$_SESSION['username']."</b>";

tem de substituir as vírgulas (,) pelos pontos (.)

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, não é possível... estou quase desistindo... acho melhor usar cookies... pô, troquei como você me falou.. usei tags <? <?php, td.... nada deu certo...

Será que é porquê a variável vêm de um form HTML? Será que a configuração do meu php tá errada???

Alguém, por favor, me ajuda que já to fikandu MaLuKo!!!!!! :o

Link para o comentário
Compartilhar em outros sites

  • 0
mais uma coisa, axo que o código não vai funcionar aki

echo "<b>",$_SESSION['username'],"</b>";

Pode ser :P echo aceita n strings como parametros.

Do manual

void echo ( string arg1 [, string argn...])

Cara, não é possível... estou quase desistindo... acho melhor usar cookies... pô, troquei como você me falou.. usei tags <? <?php, td.... nada deu certo...

Será que é porquê a variável vêm de um form HTML? Será que a configuração do meu php tá errada???

Alguém, por favor, me ajuda que já to fikandu MaLuKo!!!!!!

Não pode haver ->nenhum<- output antes de session_start.

Para o teu problema edita o php.ini

Coloca REGISTER_GLOBALS para ON

Eddie, nem ao pior dos inimigos se aconselha isto :lol:
Link para o comentário
Compartilhar em outros sites

  • 0

<?
// start the session
session_start();
header("Cache-control: private"); //IE 6 Fix

$l_usuario = trim($_POST['usuario']);
$l_senha = trim($_POST['senha']);

if(empty($l_usuario) && empty($l_senha))
{
 print"opa!";
}
else
{
$SESSION['usuario'] = $l_usuario;
$SESSION['senha'] = $l_senha;

//
print "<a href='ok.php'>proximo</a><br>";
print $l_usuario."<br>";
print $l_senha."<br>";
}
?>

olhe se isso pode ajuda em alguma coisa

Will Gueto

Link para o comentário
Compartilhar em outros sites

  • 0
mais uma coisa, axo que o código não vai funcionar aki

echo "<b>",$_SESSION['username'],"</b>";

Pode ser :P echo aceita n strings como parametros.

Do manual

void echo ( string arg1 [, string argn...])

Cara, não é possível... estou quase desistindo... acho melhor usar cookies... pô, troquei como você me falou.. usei tags <? <?php, td.... nada deu certo...

Será que é porquê a variável vêm de um form HTML? Será que a configuração do meu php tá errada???

Alguém, por favor, me ajuda que já to fikandu MaLuKo!!!!!!

Não pode haver ->nenhum<- output antes de session_start.

Para o teu problema edita o php.ini

Coloca REGISTER_GLOBALS para ON

Eddie, nem ao pior dos inimigos se aconselha isto :lol:

Não tem problema nenhum colocar register globals para on desde que tu saiba o que está fazendo...

Link para o comentário
Compartilhar em outros sites

  • 0

As variáveis de get, post e session ficam visíveis como globais, ou seja, tu não precisa utilizar $_GET, $_POST e $_SESSION. Isso pode gerar problemas ao alterar ou recuperar o valor dessas variáveis

Link para o comentário
Compartilhar em outros sites

  • 0

Assim que eu tiver tempo de configurar o meu pc vou ver se escrevo tipo um artigo sobre isso... Mas acho q antes do final de semana vai ser dificil

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...