Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal, to fazendo um sistema de perguntas e respostas e o cliente quer que seja exibida apenas uma pergunta por página.
Então eu pensei em gravar as respostas de cada pergunta em uma session, conforme a pessoa for selecionando a resposta e clicando e Próxima.
Mas não está dando certo. Por exemplo, pra pergunta da página 1 tento fazer assim:
$pagina = $_GET[pagina];
$_SESSION[$pagina] = $_POST[resposta];
Mas não funciona, pois se eu mando exibir $_SESSION[1] que supostamente seria para ser igual a $_SESSION[$pagina], não exibe nada.
Existe alguma outra forma de fazer isso?
Grato!
$_SESSION[1] estaria recuperando a segunda posição do array $_SESSION, já que o valor dentro dos colchetes representa a chave, visto que um array inicia sua posição do 0 (zero).
Para o seu caso, você precisa informar este número como string:
$_SESSION['1']
**Dica:** boa prática de programação é ter estas chaves de *array* como *strings*, em *$_POST* você comete o mesmo erro, mas como não é um valor número ele interpreta como *string* mesmo.
[]'s
Obrigado pelas respostas de voces, mas ainda nao funfou olhem só:
Este é o código que pega as respostas:
if ($_POST["radio_".$_POST[id_pergunta]])
{
$_SESSION['pagina']['$pagina'] = "Correta";
$_SESSION['corretas']++;
} $_SESSION['pagina']['$pagina'] = "Errada";
$_SESSION['erradas']++;
}
Este é o código que recupera as respostas e só exibe $_SESSION['corretas'] e $_SESSION['erradas']. $_SESSION['pagina']['$pagina'] não é exibida:
for ($c=1; $c <= $pag; $c++)
{
echo " Pergunta ".$c." - ".$_SESSION['pagina']['$c']."<br>"; //$c=1 --> PERGUNTA 1 - CORRETA / ERRADA
}remova as aspas ('$pagina') assim [$pagina] é o correto´e pra você exibir noc aso no for. basta pedir para imprimir a sessão pagina.
echo $_SESSION["pagina"]