Fórum Problemas com o Wampserver 3.2 #623705

21/04/2025

0

Bom dia!
Estou desenvolvendo um pequeno sistema em PHP e fiz a conexão com o banco de dados. Tudo certo, fiz os testes necessários e induzindo ao erro.
Fiz o INSERT e quando tento inserir os dados, simplesmente não registra na tabela no Mysql e mesmo fazendo o comando ISSET($_POST['submit'] e o print_r, para verificar se a sintaxe estivesse correta, os dados não apareciam.
Já reiniciei o serviço inúmeras vezes, mexi na configuração e quando rodo o arquivo, aparece a seguinte mensagem:

"Undefined array key "localEvento" in C:\wamp\www\sisregeventos\formulario.php on line 8"

Sendo que verifiquei os campos no formulário e no banco de dados está tudo certo e mesmo assim não grava os dados na tabela.

Vou colocar o código aqui:

// conexão.php
<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "eventos";

$conexao = mysqli_connect($host, $user, $pass, $dbname);
?>

//formulario.php
<?php
include 'conexao.php';

$nr_oficio = $_POST['nr_oficio'];
$nomeResponsavel = $_POST['nomeResponsavel'];
$enderecoEvento = $_POST['enderecoEvento'];
$cpf = $_POST['cpf'];
$localEvento = $_POST['localEvento'];
$dataEvento = $_POST['dataEvento'];
$telefone = $_POST['telefone'];
$pub_estimado = $_POST['pub_estimado'];

$sql = mysqli_query($conexao, "INSERT INTO tb_eventos(nr_oficio,nomeResponsavel,enderecoEvento,cpf,localEvento,dataEvento,telefone,pub_estimado)
VALUES ('$nr_oficio','$nomeResponsavel','$enderecoEvento','$cpf','$localEvento','$dataEvento','$telefone','$pub_estimado')");

?>

Acredito ser problema de versão do WampServer. Uso o Windows 10 32 bits, PHP 7.4.33.
O que pode estar acontecendo?
Peço ajuda!
Desde já agradeço
Douglas Goulart

Douglas Goulart

Responder

Posts

22/04/2025

Fernando C

Olá. A mensagem diz que algum erro específico no preenchimento/gravação do campo "localEvento".
Se ainda não resolveu, poste o formulário e a estrutura da tabela,fica mais facil localizar o erro.
Responder

Gostei + 0

22/04/2025

Douglas Goulart

Boa tarde!
Isso já resolvi, mas me explica por que o print_r não traz os dados, só para ver se estava tudo certinho?
Antes eu havia feito dessa maneira:

if(isset($_POST['submit']))
{
print_r($_POST['num_oficio']);
}
// restante do código

E tenho um outro problema no campo data. Declarei o campo dataEvento como DATE e codifiquei da seguinte maneira:

$dataEvento = $_POST['dataEvento'];
$data = date_create_from_format('Y-m-d', $dataEvento);

E no formulário, está assim:

<input type="date" name="dataEvento" size="10">
Quando vou fazer o cadastro, os outros campos estão certinhos, só a data que está zerada. Qual seria o motivo?

Se puder me ajudar, eu fico agradecido.
[]'s
Responder

Gostei + 0

22/04/2025

Fernando C

1. olha, curioso mas esse comando print_r tb não está funcionando aqui comigo;
tente var_dump();

2. atualmente em formulários html não é mais preciso formatar a data por PHP;
nem o "size =10"; basta deixar assim:
<input type="date" name="dataEvento">
e o campo no BD como "date", normal.

mantenha essa linha normal:
$dataEvento = $_POST['dataEvento'];

eu uso o firefox e está exbindo c/ var_dump e gravando certinho.

inclusive o "print_r" impede a gravação; (não sei qual o problema,
nunca usei esse print_r e agora nem pretendo rs)
[ ], sucesso
Responder

Gostei + 0

22/04/2025

Douglas Goulart

Boa noite!
Já tentei o var_dump e mesmo assm não acontece nada. Estou usando o Chrome (será que pode ser por isso?)
Vou fazer as alterações aqui e já te retorno.
[]'s
Responder

Gostei + 0

22/04/2025

Douglas Goulart

Boa noite!

Abri o Firefox e mesmo usando o var_dump(), não funcionou. Talvez esteja declarando errado:

var_dump($_POST['num_oficio'];

É o correto ou falta alguma coisa?

A data ainda está registrando zerada, mesmo no BD como DATE. E como posso estar formatando para o padrão brasileiro? Será que é problema no BD do phpmyadmin?

Estou usando o XAMPP para 32 bits, versão 7.4.33 do PHP e versão 5.7 do MYSQL. Você indicaria outro servidor?

Ajuda o amigo aí!

No aguardo!
Responder

Gostei + 0

23/04/2025

Fernando C

olá. vamos lá:
1. var_dump() é uma função; então faltou vc fechar o parêntese:

var_dump($POST['campo_do_form']);

2. uso XAMPP agora tb (faz uns 2 anos; antes preferia instalar separado; ainda prefiro, mas estava c/preguiça mesmo.. rs..); então, já de antemão t aviso: se vc desligar o pc, depois tem que ativar Apache e Mysql (mas isso acho q vc já sabe, enfim..);
minha versão é 32 bits tb, PHP 7.3.2

3. qto a data, desculpe eu insistir, mas poste o código do formulário e a estrutura da tabela,
não é por nada, é que senão a gente fica no "achismo"..

4. p/ passar a data do Mysql p/ o formato brasileiro tem 2 funções: 1 dentro do BD (date_format()) e outra no PHP qdo for listar os registros, mas calma que a gente chega lá rs..

5. qto ao phpmyadmin, não é por nada não, mas nunca consegui usar, acho terrivel,
sugiro que qqer hora tente o HeidiSQL; é gratuito tb, em português e não é pesado.
Responder

Gostei + 0

23/04/2025

Douglas Goulart

//SQL
create table tb_eventos (
idCodigo int(11) auto_increment not null,
num_oficio varchar(50) not null,
nomeEvento varchar(50) not null,
nomeResponsavel varchar(50) not null,
cpf varchar(15) not null,
enderecoResponsavel varchar(50) not null,
dataEvento date not null,
pub_estimado varchar(50) not null
primary key(idCodigo));

Sobre o date_format(), como é feito no código PHP e dentro do BD?

Obg por me ajudar!
No aguardo!
[]'s
Responder

Gostei + 0

24/04/2025

Fernando C

date_format:
(na verdade, tem 3 opções)

bom, suponha que vc quer exibir o nome de um evento e a data em que vai ocorrer.
A data, no mysql, vai estar assim (por exemplo): 2025-04-24, ok?

"dentro" do mysql: a sql fica assim:

select nomeevento, date_format(campo_com_a_data, '%d/%m/%Y') as dataformatada
from tabela;

(vc da um apelido p/ a data formatada)

teste 1o. direto no mysql.

na hora de exibir, (não sei se vc já sabe fazer o loop c/ o fetch),
mas fica assim:

while ($exibir = mysqli_fetch_assoc($sql)){

echo $exibir['nomedoevento'];
echo $exibir['dataformatada'];

}

funções PHP:

1. declare uma variavel dentro do loop:
$date=date_create($exibir['dia']);

a seguir formata parecido c/ dentro do mysql:
echo date_format($date, 'd/m/Y');

2. tb tem a função strtotime:

echo date('d/m/Y', strtotime($exibir['dia']));

mas parece que vai cair em desuso; pesquise a respeito.

Ah, sobre var_dump, vc pode simplemente tb usar "echo".

Que curioso, a estrutura parece estar ok, aguardo o formulário
(tá c/ problema p/ gravar a data ainda?)

Boa sorte, disponha
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar