Evaldo, não estou conseguindo cadastrar uma nova linha na tabela do banco de dados, segue código baseado em seu livro, apenas alterei o nome das variáveis e funções:
Arquivo que conecta ao Banco de Dados (phpmysqlconnect.php):
<?php
require_once 'user.php';
if ($conn = mysqli_connect($host, $bdUsuario, $bdSenha, $bdBanco)) {
echo "Connectado ao $bdBanco em $host com sucesso.";
}
if (mysqli_connect_errno($conn)) {
echo "Problemas para conectar no banco. Verifique os dados!";
die();
}
function buscar_contas($conn)
{
$sqlBusca = 'SELECT * FROM conta_bancaria';
$resultado = mysqli_query($conn, $sqlBusca);
$contas_bancarias = array();
while ($conta_bancaria = mysqli_fetch_assoc($resultado)) {
$contas_bancarias[] = $conta_bancaria;
}
return $contas_bancarias;
}
function gravar_contas($conn, $conta_bancaria)
{
$sqlGravar = "INSERT INTO conta_bancaria(descricao_conta, saldo_inicial) VALUES (´{$conta_bancaria['descricao_conta']}´, ´{$conta_bancaria['saldo_inicial']}´)";
mysqli_query($conn, $sqlGravar);
}
Arquivo semelhante ao Tarefas:
<?php
session_start();
include "phpmysqlconnect.php";
if (isset($_GET['descricao_conta']) && $_GET['descricao_conta'] != '') {
$conta_bancaria = array();
$conta_bancaria['descricao_conta'] = $_GET['descricao_conta'];
$conta_bancaria['saldo_inicial'] = $_GET['saldo_inicial'];
gravar_contas($conn, $conta_bancaria);
}
$lista_contas = buscar_contas($conn);
include "template.php";
?>
Tô com o problema abaixo para a transformação da Data vinda no formulário para o BD. Estou usando tipo Date no formulário:
Notice : Undefined offset: 2 in C:\xampp\htdocs\bisaweb\ajudantes.php on line 10
Notice : Undefined offset: 1 in C:\xampp\htdocs\bisaweb\ajudantes.php on line 10
Arquivo ajudantes.php:
/* Função que traduz Data inserida no formulário para o BD. */
function traduz_data_para_banco($data) {
if ($data == "") {
return "";
}
$dados = explode("/", $data);
$data_mysql = "{$dados[2]}-{$dados[1]}-{$dados[0]}";
return $data_mysql;
}
Evaldo, onde devo inserir a função traduz_data_para_exibir($data)?
Segue ela no meu arquivo ajudantes.php:
/* Função que traduz Data do BD para exibição na lista de movimentações financeiras. */
function traduz_data_para_exibir($data) {
if ($data == "" OR $data == "0000-00-00") {
return ""; }
$dados = explode("-", $data);
$data_exibir = "{$dados[2]}/{$dados[1]}/{$dados[0]}";
return $data_exibir;
}
<?php
session_start();
include "bd/phpmysqlconnect.php";
include "ajudantes.php";
/* Se a variável for falsa não se exibe a tabela com as movimentações financeiras. */
$exibir_tabela = false;
/* Dentro desse If temos verificações isset e os valores são capturados da URL para a variável array $movimentacao_financeira. No fim, os valores são usados por meio de uma função
para atualizar o BD. */
if (isset($_GET['descricao_movimentacao']) && $_GET['descricao_movimentacao'] != '') {
$movimentacao_financeira = array();
$movimentacao_financeira['id_movimentacao'] = $_GET['id_movimentacao'];
$movimentacao_financeira['descricao_movimentacao'] = $_GET['descricao_movimentacao'];
$movimentacao_financeira['tipo_movimentacao'] = $_GET['tipo_movimentacao'];
if (isset($_GET['data_movimentacao'])) {
$movimentacao_financeira['data_movimentacao'] = traduz_data_para_banco($_GET['data_movimentacao']);
} else {
$movimentacao_financeira['data_movimentacao'] = '';
}
$movimentacao_financeira['valor'] = $_GET['valor'];
$movimentacao_financeira['conta_bancaria'] = $_GET['conta_bancaria'];
editar_tarefa($conn, $movimentacao_financeira);
}
$movimentacao_financeira = buscar_movimentacao($conn, $_GET['id_movimentacao']);
$movimentacao_financeira = array(
'descricao_movimentacao' => '',
'tipo_movimentacao' => '',
'data_movimentacao' => '',
'valor' => '',
'conta_bancaria' => ''
);
include "template_movimentacao.php";
Olá estou com um probleminha no capítulo 12 do livro, eles atualizaram a biblioteca e eu não sei mais incluir ela no código, não existe mais o arquivo PHPMailerAutoload.php.
Na documentação oficial (https://github.com/PHPMailer/PHPMailer) eles indicam usar o composer para fazer o autoload das classes, ou adicionar manualmente como em:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
Olá, estou com uma dúvida quanto ao uso de _COOKIES. No segundo exercício do capítulo 5 é pedido que se altere a aplicação para utilizar _COOKIES ao invés de $_SESSION. Tentei, mas não consegui. Alguém pode ajudar?
Demorei um pouco, mas trabalhei na sua solução para usar Cookies. Como os cookies são apenas texto eu usei a função serialize() do PHP para transformar o array$contatos em uma string. Depois faço o inverso, transformando a string de volta em um array: