Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Apenas Eu

Sessões e formulário

Recommended Posts

Olá!

 

Por aprendizado eu fiz um formulário bem simples onde envio os dados para uma outra página. A ideia é que estes dados fiquem armazenados na outra página com o Session.

 

Mas não sei exatamente onde estou errando. Os dados vão para a página mas não fica armazenado.

 

O cód. abaixo:

 

Pagina 1

<?php
// page1.php
session_start();
$_SESSION['favcolor'] = 'green'; // exemplo do php.net. Este funciona
$_SESSION["nome"] = $nome;
// Funciona se o cookie de seção foi aceito
echo '<br /><a href="teste2.php">page 2</a>';
?>
<form name="inserir" method="post" action="teste2.php">
<input type="text" name="nome" /><br />
<input type="submit" name="Inserir" value="Inserir" />
</form>

Pagina 2

<?php
// page2.php
session_start();
$nome = $_POST["nome"]; 
$_SESSION[$nome];
echo $_SESSION['favcolor']; // exemplo do php.net
echo "<br>";
echo $_SESSION[$nome]; // meu teste
// link para voltar
echo '<br /><a href="teste.php">page 1</a><br>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

na pagina 2

tente assim

$nome = $_POST["nome"]; 
$_SESSION["nome"] = $nome;
echo $_SESSION["nome"];

na pagina 1

acho que isso é desnecessario

$_SESSION["nome"] = $nome;

ja que $nome nao está definada

 

 

 

ou daria pra fazer assim:

$_SESSION["dados"] = $_POST 
var_dump($_SESSION);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Obrigado pelo retorno.

 

Eu acho que ja tinha tentando usar esta sua sugestão e não funcionou. De qualquer forma eu tentei de novo mas se sai e volta da página aparece a mensagem: Notice: Undefined index:

 

No var_dump ficaria nome = Null

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei o que postei e funciona sim;

 

se você acessar diretamente a pagina2, vai sim aparecer uma mensagem de undefined index porque $_POST["nome"]; vem da página1

 

leia e interprete o erro

Undefined index:

você não colocou resto da mensagem, mas veja ai, vai estar o nome do index e o numero da linha no arquivo, ai você vai procurar a resposta para a pergunta

onde você definiu um valor a ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Desculpa a demora pra responder,

 

Então, a mensagem de erro da linha 4 que seria o

$nome = $_POST["nome"];

No caso a mensagem aparece quando clica naquele link que serve para avançar à página 2.

 

Eu pedi para que o retorno aparecesse na linha 7 que seria essa:

echo $_SESSION["nome"];

No caso ela retorna vazia e aparece a mensagem inteira que seria:

 

Notice: Undefined index: nome in C:\xampp\htdocs\dcs3\teste2.php on line 4

 

 

--

 

Eu achei uma solução embora eu não consiga entender o porque aí funcionar e aqui não. Após a última mensagem que você postou e a pergunta que você pediu para mim analisar, tive a ideia de fazer isso:

if ( isset ( $_POST['nome'] ) ) {$nome = $_POST['nome']; }
if ( isset ( $_SESSION['nome'] ) ) {$nome = $_SESSION["nome"]; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro aparece porque a informação de $_POST['nome'] só vai pra outra página se você clicar no botão inserir, quando você submete o formulário.

Clicar no link page 2 não vai enviar o que esta no formulario, logo, na pagina2 $_POST['nome'] vai estar undefined

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim! Mas então...

 

Eu inseria o valor no formulario e clicava inserir.

 

Daí se clicava no link p/ pag. 1 e depois de novo para a pag.2 não ficava salvo os dados.

 

Em suma, eu clicava no link para a pag.2 depois de ter enviado o $_POST['nome']

 

De qualquer forma, deve ser mesmo alguma coisa que eu estava fazendo errado e não percebi :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.