Array
(
)

PHP - Guardando valor de uma variável quando mudar de pagina.

PHP
Gregori
   - 23 jul 2016

Opa blz pessoal? Então, estou com um problema simples mas ao mesmo tempo complicado para mim, que sou novo no assunto, vamos lá:
Estou fazendo um programa de 4 paginas, sendo a primeira para cadastrar o nome, a segunda e terceira como uma pergunta com e na quarta mostrando o nome e quantas perguntas acertou. Estou usando form/submit para passar para a outra pagina, mas acontece que no final só esta mostrando o resultado da penúltima pagina, no caso do ultimo submit que dei..Eu tentei fazer com sessões mas mesmo assim não consegui, sei que da pra fazer com java script, mas queria fazer em php mesmo. Se puderem me dar uma dica de como fazer isso.
#pagina 1#
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="pergunta1.php">
<p>Informe seus dados:</p>
Nome:<input type="text" name="nome"/></p>
<input type="submit" value="Começar"/></p>
</form>
</body>
</html>
#pagina 2#
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="pergunta2.php">
<p>10+10?:</p>
20:<input type="radio" name="resposta_1" value="20"/></p>
30:<input type="radio" name="resposta_1"value="30"/></p>
40:<input type="radio" name="resposta_1"value="40"/></p>
<input type="submit" value="Ver Resultado."/></p>
</form>
</body>
</html>
#pagina3#
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="resultado.php">
<p>3+3?:</p>
4:<input type="radio" name="resposta_2" value="4"/></p>
5:<input type="radio" name="resposta_2"value="5"/></p>
6:<input type="radio" name="resposta_2"value="6"/></p>
<input type="submit" value="Ver Resultado."/></p>
</form>
</body>
</html>
#pagina4#
<?php
$pontos = 0;
if($_POST['resposta_1'] == '20'){
$pontos++;
}
if($_POST['resposta_2'] == '6'){
$pontos++;
}
echo $pontos;
echo $_POST['nome'];
?>

Raylan
|
MVP
Pontos: 690
    23 jul 2016

Guardando os valores em $_SESSION['nomedavariavel'] deveria ser suficiente.

Gregori
   - 23 jul 2016

Opa Rayan, obrigado pela resposta, então eu to tentando assim mas mesmo assim na hora de mostrar fala que a variavel não foi definida.

Matheus
   - 10 set 2016


Citação:
Opa Rayan, obrigado pela resposta, então eu to tentando assim mas mesmo assim na hora de mostrar fala que a variavel não foi definida.


Não esqueça do session_start();

Marcelo Santana
|
MVP
Pontos: 450
    12 set 2016

Boa noite, Gregori.. Segue código, simples, mas constando a funcionalidade que deseja. Tem um comentário para cada página indicando o nome dela, caso for mudar o nome que irá salvar cada arquivo, mude também action de cada formulário ok..

Abraço, Marcelo Queiroz.

#Código

<!-- pagina1.php-->
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="pagina2.php">
<p>Informe seus dados:</p>
Nome:<input type="text" name="nome"/></p>
<input type="submit" value="Começar"/></p>
</form>
</body>
</html>





<!-- pagina2.php -->

<?php 
	session_start();
	$_SESSION['pontos'] = 0;
	$_SESSION['nome'] = $_POST['nome'];	
	echo $_SESSION['nome'];
?>

<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="pagina3.php">
<p>10+10?:</p>
20:<input type="radio" name="resposta_1" value="20"/></p>
30:<input type="radio" name="resposta_1"value="30"/></p>
40:<input type="radio" name="resposta_1"value="40"/></p>
<input type="submit" value="Ver Resultado."/></p>
</form>
</body>
</html>




<!-- pagina3.php -->

<?php 
	session_start();
	echo $_SESSION['nome'];
	if($_POST['resposta_1'] == '20'){
		$_SESSION['pontos']++;		
	}
?>

<html>
<head>
<title></title>
</head>
<body>

<form method="POST" action="pagina4.php">
<p>3+3?:</p>
4:<input type="radio" name="resposta_2" value="4"/></p>
5:<input type="radio" name="resposta_2"value="5"/></p>
6:<input type="radio" name="resposta_2"value="6"/></p>
<input type="submit" value="Ver Resultado."/></p>
</form>

</body>
</html>




<!-- pagina4.php -->

<?php 
				
if(count($_POST) > 0 ){
	session_start();	
	
	if($_POST['resposta_2'] == '6'){		
		$_SESSION['pontos']++;
	}
	
	echo ('Ola, '.$_SESSION['nome']. ', você somou: '.$_SESSION['pontos'].' pontos');		
						
	unset($_SESSION['nome']);	
	unset($_SESSION['pontos']);
	
	echo ("<br /><br /><a href='pagina1.php'>Pagina Inicial</a>");
	
}else{
	header('location:pagina1.php');	
}
	
?>