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

Como escrever variáveis dentro da função fwrite?


Lucas Henrique

Pergunta

Gente, estou tentando fazer um criador de provas, onde o professor irá preencher as questões e gabaritos e será disponibilizado online, com correção e tudo mais. estava tentando fazer com que os arquivos para correção fossem gerados pelo fwrite, porem ele gera um conflitos em códigos que pus no texto, como fazer para ele não reconhecer como codigo e simplesmente escrever?

Segue abaixo um dos erros que me é apresentado (essa $_SESSION está dentro do fwrite)

Parse error: syntax error, unexpected ''$_SESSION'' (T_CONSTANT_ENCAPSED_STRING)

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
<?php
$nameb = "send-" . $titulo . ".php";
$textb = " 
<?php
session_start();
?>
<html>
<head>
<title>Formulário Enviado</title>
<style type='text/css'>
h1{
	font-size:20px;
	color:#fff;
	background-color:#4242d3;
	padding:10px;
	text-align:center;
	}
h2{
	font-size:18px;
	color:#000;
	padding:10px;
	text-align:center;
	}
</style>
</head>

<body>
<?php
$quest1=_POST['questao1'];
$quest2=_POST['questao2'];
$quest3=_POST['questao3'];
$quest4=_POST['questao4'];
$quest5=_POST['questao5'];
$quest6=_POST['questao6'];
$quest7=_POST['questao7'];
$quest8=_POST['questao8'];
$quest9=_POST['questao9'];
$quest10=_POST['questao10'];
$nota = 0;
?>
<h1>Prova Realizada com Sucesso!</h1>
<?php
$nota = ($quest1 == '" .$resp1. "')$nota+1:$nota+0;
$nota = ($quest2 == '" .$resp2. "')$nota+1:$nota+0;
$nota = ($quest3 == '" .$resp3. "')$nota+1:$nota+0;
$nota = ($quest4 == '" .$resp4. "')$nota+1:$nota+0;
$nota = ($quest5 == '" .$resp5. "')$nota+1:$nota+0;
$nota = ($quest6 == '" .$resp6. "')$nota+1:$nota+0;
$nota = ($quest7 == '" .$resp7. "')$nota+1:$nota+0;
$nota = ($quest8 == '" .$resp8. "')$nota+1:$nota+0;
$nota = ($quest9 == '" .$resp9. "')$nota+1:$nota+0;
$nota = ($quest10 == '" .$resp10. "')$nota+1:$nota+0;
echo 'Sua nota foi: ' . nota . '';
?>
<?php
name = 'online-' . $_SESSION['nome'] . '.php';
text = ' <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><br>' . $_SESSION['nome'] . ' Realizou a Atividade Online: Online-2 . Com nota: ' . nota . ' às ' . strftime( '%Y-%m-%e %T', strtotime('now')) . '';
file = fopen(name, 'a');
fwrite(file, text);
fclose(file);
?>
</body>
</html>
";
$fileb = fopen($nameb, 'a');
fwrite($fileb, $textb);
fclose($fileb);
?>

 

Editado por Lucas Henrique
Link para o comentário
Compartilhar em outros sites

  • 0
15 horas atrás, Lucas Henrique disse:

<?php
session_start();

Tira essa tag de abertura do PHP porque ele já estava aberto

15 horas atrás, Lucas Henrique disse:

$quest1=_POST['questao1'];
$quest2=_POST['questao2'];
$quest3=_POST['questao3'];
$quest4=_POST['questao4'];
...

Coloca um "$" cifrão antes de cada _POST

15 horas atrás, Lucas Henrique disse:

$_SESSION['nome']

Em que momento/arquivo você atribui um valor para $_SESSION['nome']?

Link para o comentário
Compartilhar em outros sites

  • 0

A minha questão nisso, seria como escrever no arquivo a variável em si, entende? Queria que o fwrite escrevesse literalmente a variável, pois ela funciona com o arquivo da prova gerado.

O "$" antes de cada _POST estavam postos, é que fiz um teste tirando todos os "$" do código e ele gerou normalmente o arquivo, só tinha esquecido de por novamente quando postei aqui.

$_SESSION['nome']

Ela foi atribuída em páginas anteriores. Esse código que mandei é o arquivo que processa os dados do gabarito da prova e gera um arquivo de correção e relatório de quem fez.

Editado por Lucas Henrique
Link para o comentário
Compartilhar em outros sites

  • 0
17 horas atrás, Lucas Henrique disse:

echo 'Sua nota foi: ' . nota . '';
?>
<?php
name
= 'online-' . $_SESSION['nome'] . '.php';

Pode apagar o fechamento e abertura da tag PHP, não tem necessidade.

17 horas atrás, Lucas Henrique disse:

text = ' <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><br>' . $_SESSION['nome'] . ' Realizou a Atividade Online: Online-2 . Com nota: ' . nota . ' às ' . strftime( '%Y-%m-%e %T', strtotime('now')) . '';

Tenta alterar essa linha para:

$text = ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br>' . $_SESSION['nome'] . ' Realizou a Atividade Online: Online-2 . Com nota: ' . $nota . ' às ' . strftime( '%Y-%m-%e %T', strtotime('now'));

Trocando algumas aspas simples para duplas

echo 'Sua nota foi: ' . $nota . '';
$name = 'online-' . $_SESSION['nome'] . '.php';
$text = ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br>' . $_SESSION['nome'] . ' Realizou a Atividade Online: Online-2 . Com nota: ' . $nota . ' às ' . strftime( '%Y-%m-%e %T', strtotime('now'));
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);

E sempre colocar $ cifrão antes de todas as variáveis

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...