Olá, @AVenciguerra,
Em uma aplicação em produção o servidor do banco de dados provavelmente vai estar separado do servidor da aplicação PHP. Um dos capítulos do livro é sobre come hospedar a aplicação online e esses assuntos são discutidos
Abraços
Olá, @AVenciguerra,
Em uma aplicação em produção o servidor do banco de dados provavelmente vai estar separado do servidor da aplicação PHP. Um dos capítulos do livro é sobre come hospedar a aplicação online e esses assuntos são discutidos
Abraços
Tinha colocado uma dúvida aqui, mas era um erro de digitação meu. Apaguei pois não valia a pena, não é a dúvida de outros usuários. Obrigado a todos!
Ok, legal que você encontrou o problema, @claudineyjr. Muitas vezes isso acontece. Um simples erro de digitação que nos tira do sério
boa tarde, gostaria de saber se a resposta para os desafios se encontra em algum lugar??
Olá, @mateuscaldas. Não as respostas não estão publicadas. Pode ser que alguém tenha publicado, mas não tenho essa informação. Aqui no fórum tem algumas discussões sobre as soluções.
Bom dia @evaldojuniorbento , O meu código de conexão com o banco está igual o do livro, porém ao executar ele só está mostrando na tabela os dados numéricos, ou seja a prioridade e a coluna concluida, os que contém texto ele da o seguinte erro:
Notice: Undefined index: txtNome in C:\xampp\htdocs\tarefas\template.php on line 66
Como resolver?
Verifique se os campos no banco são os mesmos que você está acessando no código.
Você consegue ver os dados direto no PHPMyAdmin?
Era isso mesmo… Eu havia mantido o igual ao name, dos inputs… Obrigado pela ajuda
Boa Tarde @evaldojuniorbento, Apereceu o seguinte erro no meu arquivo template_tarefa, estou no final do capítulo 10.
Warning: Illegal string offset ‘nome’
O que poderia ser isso?
Oi, @FernancoCendretti. Parece que você está tentando acessar uma string como se fosse um array. Confere a variável.
Problemas com FOREACH
Citar
Notice: Undefined variable: lista_tarefas in C:\xampp\htdocs\tarefas\template.php on line 25
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\tarefas\template.php on line 25
<?php
session_start();
if(isset($_GET['nome'])){
$_SESSION['lista_tarefas'][]=$_GET['nome'];
}
$lista_tarefas = array();
if(isset($_SESSION['lista_tarefas'])){
$lista_tarefas = $_SESSION['lista_tarefas'];
//<!-- echo "Nome informado: ". $_GET['nome']; -->
} else{
$lista_tarefas = array();
}
include "template.php";
?>
------------ TEMPLATE
Gerenciador de TarefasTarefas: |
---|
<?php echo $tarefa; ?> |
@evaldojuniorbento, o que na realidade faltava era a colchetes na função de buscar os anexos, Obrigado pela ajuda
Como faço para acrescentar a porta do servidor do banco de dados??
Assim:
$bdServidor = ‘localhost’;
$bdPorta = 8889;
$bdUsuario = ‘sistematerefas’;
$bdSenha = ‘sistema’;
$bdBanco = ‘tarefas’;
$conexao = mysqli_real_connect($link, $bdServidor, $bdPorta, $bdUsuario, $bdSenha, $bdBanco);
Olá, @maraiva.
Veja a sequencia dos parametros em http://php.net/manual/pt_BR/mysqli.real-connect.php
Olá, @evaldojuniorbento,
Esse problema eu consegui resolver. Agora estou com outro problema.
Não estou conseguindo trazer os dados do banco. Já estou com a função buscar_tarefas pronta e parece q a variável $lista_tarefas não está recebendo os dados do banco. Já tentei de tudo para tentar resolver e não consegui solucionar. Pode me ajudar??
Olá @evaldojuniorbento, estou com problemas no capítulo 6, o foreach dentro do arquivo tamplate.php
não está reconhecendo a variável $lista_tarefas que está no arquivo tarefas.php.
Na página HTML aparece a seguinte mensagem de erro:
Undefined variable: lista_tarefas in C:\wamp\www\DesenvolvimentoWebComPHPeMySQL\capitulo5\template.php on line 63
Warning: Invalid argument supplied for foreach() in C:\wamp\www\DesenvolvimentoWebComPHPeMySQL\capitulo5\template.php on line 63
Vi que algumas pessoas do fórum também passaram por isso e resolveram com a dica que você deu.
Que seria adicionar o código:
if (isset($_SESSION[‘lista_tarefas’])) {
$lista_tarefas = $_SESSION[‘lista_tarefas’];
} else {
$lista_tarefas = array();
}
No meu caso mesmo fazendo isso não resolve.
Segue o código de tarefas.php
<?php
session_start();
if (array_key_exists('nome', $_GET) && $_GET['nome'] != '') {
$tarefa = [];
$tarefa['nome'] = $_GET['nome'];
if (array_key_exists('descricao', $_GET)) {
$tarefa['descricao'] = $_GET['descricao'];
} else {
$tarefa['descricao'] = '';
}
if (array_key_exists('prazo', $_GET)) {
$tarefa['prazo'] = $_GET['prazo'];
} else {
$tarefa['prazo'] = '';
}
$tarefa['prioridade'] = $_GET['prioridade'];
if (array_key_exists('concluida', $_GET)) {
$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";
?>
Obs.: Já testei declarando $lista_tarefas antes do primeiro e o último if, mas não funcionou.
Segue o código de template.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="./CSS/tarefas.css">
<title>Gerenciador de Tarefas - Capítulo 5</title>
</head>
<body>
<h1>Gerenciador de Tarefas</h1>
<form>
<fieldset>
<legend>Nova Tarefa</legend>
<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>
<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>
<tr>
<th>Tarefas</th>
<th>Descrição</th>
<th>Prazo</th>
<th>Prioridade</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>
</body>
</html>
Desde já agraço a ajuda.
Abraço.
O que acontece se você simplesmente declarar $lista_tarefas
antes do include "template.php"
?
Olá @evaldojuniorbento pelo retorno, teste da seguinte maneira.
$lista_tarefas = $_SESSION['lista_tarefas];
include “template.php”;
e
$lista_tarefas = [];
$lista_tarefas = $_SESSION['lista_tarefas];
E o erro persistiu, detalhe os dois arquivos estão no mesmo diretório.
Não sei se o erro tem alguma relação com o ambiente de desenvolvimento também.
Estou usando XAMPP com PHP 7 e como editor o Sublime Text 3.
O que acontece se você colocar apenas a linha $lista_tarefas = []
antes do include template?
Testei da maneira como você exemplificou e continuou com a mesma mensagem.