Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Isso foi fruto da minha imaginacao então eu nao sei qual é a forma correta de se fazer isso. Eu criei uma pergunta e somente 1 alternativa esta correta. Quando uma pessoa clicar no botao submit eu quero que apareca uma mesagem um pouco abaixo da questao: vc errou(caso seja errado), vc acertou(caso seja a certa)
/applications/core/interface/imageproxy/imageproxy.php?img=https://lh6.googleusercontent.com/-XJRzPTMbg24/Ut7F3jc9mtI/AAAAAAAAAls/7hHIKO7SlH4/w185-h90-no/ScreenHunter_01%2BJan.%2B21%2B17.07.png&key=38d09de1a0403cf68d923604df948bd3b97ad176740879f78a59d84dc6a53d49" alt="ScreenHunter_01+Jan.+21+17.07.png" />
Eu tentei usar esse codigo abaixo que fiz mas nao to sabendo usar direito o comado if
<html>
<head>
</head>
<body>
<?php
$opcao;
if(opcao==certo)
{$opcao="voce acertou!";}
if(opcao==errado)
{$opcao="vc errou";}
?>
<?php echo "1. Qual a alternativa correta?"; ?><br />
<form method="post" action=" " >
<input type="radio" name="opcao" value="errado" /> Errado <br />
<input type="radio" name="opcao" value="certo" /> Certo <br />
<input type="submit" />
</form>
</body>
</html>
o erro que aparece é esse:
/applications/core/interface/imageproxy/imageproxy.php?img=https://lh6.googleusercontent.com/-6-H0UdxuMgk/Ut7G2D3v3BI/AAAAAAAAAmQ/QQiPX7o_-Z0/w702-h420-no/ScreenHunter_02%2BJan.%2B21%2B17.12.png&key=f94e9f5d1eabdcd0c785a79b1ec0a4df3f0b6375aadb55604be24943a5dbeeca" alt="ScreenHunter_02+Jan.+21+17.12.png" />
Felipe só uma dica, evite usar no value="certo ou errado" tente usar valores numéricos, assim caso o usuário exiba o código fonte da pagina não veja a resposta correta.
Felipe só uma dica, evite usar no value="certo ou errado" tente usar valores numéricos, assim caso o usuário exiba o código fonte da pagina não veja a resposta correta.
Bem lembrado vmolina, acabei me esquecendo de dar esta dica, mas, Felipe, vale lembrar que quanto maior for a abstração, ou seja, quanto mais você conseguir manter a lógica "escondida" do usuário final, do seu código, mais seguro ele será, não que ele será 100% seguro somente com isso, mas já ajuda.
Quando entro na pagina ou atualizo aparece dois erros mas deu certo o codigo, Quando clicko na opcao e aperto submit mostra a mensagem certa ou errada e os erros desaparecem.
o que faco pra nao aparecer mais as mensagens de erro?
O codigo:
/applications/core/interface/imageproxy/imageproxy.php?img=https://lh5.googleusercontent.com/-FmgG5gZNtLA/Ut7bgPnKrAI/AAAAAAAAAnQ/liwMZ9Wh8n8/w517-h345-no/ScreenHunter_03%2BJan.%2B21%2B18.40.png&key=bcd7a054cdd7babe62295b2621191a5c522b09df46f9862d9c72b0f210815a0a" alt="ScreenHunter_03+Jan.+21+18.40.png" />
Quando abro o navegador ou atualizo a pagina:
/applications/core/interface/imageproxy/imageproxy.php?img=https://lh6.googleusercontent.com/-xMck14BhfoI/Ut7bgB2y83I/AAAAAAAAAnU/dYqG3WdJE90/w663-h371-no/ScreenHunter_04%2BJan.%2B21%2B18.40.png&key=dcec96f74881a29dee348528e7b1acc3987eea7822b2bb8a8c2121b60b63838d" alt="ScreenHunter_04+Jan.+21+18.40.png" />
Quando escolho uma opcao:
/applications/core/interface/imageproxy/imageproxy.php?img=https://lh6.googleusercontent.com/-kgNa7RnrT2A/Ut7bgHAl9gI/AAAAAAAAAnM/MrxG12f83C0/w203-h158-no/ScreenHunter_05%2BJan.%2B21%2B18.40.png&key=69d7f16b974b23f5327a2ce222b6ef9f77550ac9978b54a246f31e80995f5ec5" alt="ScreenHunter_05+Jan.+21+18.40.png" />
isso acontece pq o $_POST só existe quando o formulário é submetido, caso contrário ele não existe e você deve tratar para que esse erro não apareça para o usuário... bom, pelo menos não dessa forma.
Basicamente o que o Vinicius Rangel disse foi isso
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
$opcao = isset( $_POST['opcao'] ) ? !empty( $_POST['opcao'] ) : null;
$msg = null;
if( $opcao == 'certo' ) {
$msg = 'você acertou!';
} else if( $opcao == 'errado' ) {
$msg = "você errou!";
}
// Exibe a mensagem
echo $msg;
}
...
isset
Blz vou tentar
Bom, deu certo Williams. Não apareceu mesagens de erro. Mas eu vi um probleminha. Quando eu clicko na opcao errada é mostrada a mensagem de que eu acertei.
Como o comando if identifica qual o input certo ou errado? é pelo value?
Teste agora
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
if( isset( $_POST['opcao'] ) ){
$opcao = $_POST['opcao'];
$msg = null;
if( $opcao == 'certo' ) {
$msg = 'você acertou!';
} else if( $opcao == 'errado' ) {
$msg = "você errou!";
}
// Exibe a mensagem
echo $msg;
}
}
...Agora ficou certinho! Vlw pessoal pela ajuda! Aprendi muito com tudo isso!
Bom cara,
Vamos por partes,
1- No formulário faltou você indicar qual o arquivo seria chamado no post, então é comecemos com a action="<?=$_SERVER['PHP_SELF'];?>"
2- O c´ódigo você vai ter de ajustar um pouco, algumas variáveis estão sem o "$" antes, então o PHP vai gerar um erro. Ele corrigido ficaria assim:
if($opcao=="certo") // Aqui foi adicionado o "$", e adicionado aspas no "certo" pois como é uma string deve sempre estar envolto por aspas
{$msg="voce acertou!";} // A variável da mensagem estava sobrescrevendo a de opção
// no caso do if que existia aqui ele pode ser substituido por um else if, pois assim só passará por essa verificação se a anterior for falsa
else if($opcao=="errado") // Aqui foi adicionado o "$", e adicionado aspas no "errado" pois como é uma string deve sempre estar envolto por aspas
{$msg="você errou";}
// Exibe a mensagem
Veja se ajuda...
Abraços,