Erro ao exibir as informações cadastradas


#1

Boa tarde,

Estou tendo problemas na exibição dos dados na tela. Está aparecendo esta mensagem de erro. Dividi o código entre os dois arquivos. tarefas.php e template.php

Notice : Undefined variable: lista_tarefas in C:\xampp\htdocs\tarefas\template.php on line 51

Warning : Invalid argument supplied for foreach() in C:\xampp\htdocs\tarefas\template.php on line 51
Tarefas

Código: tarefas.php

<?php session_start(); if(isset($_GET['nome']) && $_GET['nome'] != ''){ $tarefa = array(); $tarefa['nome'] = $_GET['nome']; if(isset($_GET['descricao'])){ $tarefa['descricao'] = $_GET['descricao']; } else{ $tarefa['descricao'] = ''; } if(isset($_GET['prazo'])){ $tarefa['prazo'] = $_GET['prazo']; } else{ $tarefa['prazo'] = ''; } $tarefa['prioridade'] = $_GET['prioridade']; if(isset($_GET['concluida'])){ $tarefa['concluida'] = $_GET['concluida']; } else{ $tarefa['concluida'] = ''; } $SESSION['lista_tarefas'][] = $tarefa; } if (isset($SESSION['lista_tarefas'])) { $lista_tarefas = $SESSION['lista_tarefas']; } else { $lista_tarefas = array(); } include "template.php"; ?>

Código: template.php

Gerenciador de Tarefas
<h1>Gerenciador de Tarefas</h1>

<form><!-- Aqui eu abro a tag do formulário. -->
	
	<fieldset><!-- Crio um fieldset. Como se fosse uma moldura. -->
		<legend>Nova Tarefa</legend><!-- legenda do meu fieldset. Aparecerá na parte superior do field. -->
		
		<label>
			Tarefa:
			<input type="text" name="nome" />
		</label>
		
		<label>
			Descrição(Opcional):
			<textarea name="descricao"></textarea>
		</label>
		
		<label>
			Prazo(Opcional):
			<input type="text" name="prazo" />
		</label>
		
		<fieldset>
			<legend>Prioridade</legend><!-- legenda do meu fieldset. Aparecerá na parte superior do field. -->
			
			<label>
				<input type="radio" name="prioridade" value="baixa" checked /> Baixa
				<input type="radio" name="prioridade" value="media" /> Média
				<input type="radio" name="prioridade" value="alta" /> Alta
			</label>
			
		</fieldset>
		
		<label>
			Tarefa Concluída:
			<input type="checkbox" name="concluida" value="sim" />		
		</label>
		
		<input type="submit" value="Cadastrar" />
	</fieldset>
</form>
<table><!-- Início da tabela. -->
	<tr>
		<th>Tarefas</th>
		<th>Descrição</th>
		<th>Prazo</th>
		<th>Prioridade</th>
		<th>Concluída</th>
	</tr>
	<?php foreach ($lista_tarefas as $tarefa) : ?>		
		<tr>
			<td><?php echo $tarefa['nome']; ?></td>
			<td><?php echo $tarefa['descricao']; ?></td>
			<td><?php echo $tarefa['prazo']; ?></td>
			<td><?php echo $tarefa['prioridade']; ?></td>
			<td><?php echo $tarefa['concluida']; ?></td>
		</tr>
	 <?php endforeach; ?>
</table>

#2

Poderia organizar a exibição do código do arquivo tarefas.php para melhor compressão?é só utilizar função de texto pré-formatado


#3

Boa noite,
Segue o código do arquivo tarefas.php

<?php session_start(); if(isset($_GET['nome']) && $_GET['nome'] != ''){ $tarefa = array(); $tarefa['nome'] = $_GET['nome']; if(isset($_GET['descricao'])){ $tarefa['descricao'] = $_GET['descricao']; } else{ $tarefa['descricao'] = ''; } if(isset($_GET['prazo'])){ $tarefa['prazo'] = $_GET['prazo']; } else{ $tarefa['prazo'] = ''; } $tarefa['prioridade'] = $_GET['prioridade']; if(isset($_GET['concluida'])){ $tarefa['concluida'] = $_GET['concluida']; } else{ $tarefa['concluida'] = ''; } $SESSION['lista_tarefas'][] = $tarefa; } if (isset($SESSION['lista_tarefas'])) { $lista_tarefas = $SESSION['lista_tarefas']; } else { $lista_tarefas = array(); } include "template.php"; ?>``Texto pré-formatado`

#4
<?php

session_start();
if(isset(_GET['nome']) && _GET[‘nome’] != ‘’){
$tarefa = array();
tarefa['nome'] = _GET[‘nome’];
if(isset($_GET[‘descricao’])){
tarefa['descricao'] = _GET[‘descricao’];
}
else{
tarefa['descricao'] = ''; } if(isset(_GET[‘prazo’])){
tarefa['prazo'] = _GET[‘prazo’];
}
else{
$tarefa[‘prazo’] = ‘’;
}
tarefa['prioridade'] = _GET[‘prioridade’];
if(isset($_GET[‘concluida’])){
tarefa['concluida'] = _GET[‘concluida’];
}
else{
$tarefa[‘concluida’] = ‘’;
}
$SESSION[‘lista_tarefas’][] = $tarefa;
}
if (isset($SESSION[‘lista_tarefas’])) {
$lista_tarefas = $SESSION[‘lista_tarefas’];
} else {
$lista_tarefas = array();
}
include “template.php”;
?>


#5

Acho que voce nao declarou direito o array session, deveria estar assim:

$_SESSION['lista_tarefas'][] = $tarefa;

    if(isset($_SESSION['lista_tarefas'])){
         $lista_tarefas = $_SESSION['lista_tarefas'];
    }