Estou tendo um problema com palavras acentuadas enviadas pelo php, porém se eu inserir direto na mão pelo phpmyadmin o banco aceita palavra acentuada, agradeço desde já
Estou tendo um problema com palavras acentuadas enviadas pelo php, porém se eu inserir direto na mão pelo phpmyadmin o banco aceita palavra acentuada, agradeço desde já
Olá, Vinicius.
O seu banco de estar com o encoding latin1 e o php com UTF-8. Talvez esse post da Locaweb de ajude: http://wiki.locaweb.com.br/pt-br/Resolvendo_problemas_de_caracteres_acentuados_no_MySQL
Se não consegui resolver, só falar aqui no Forum que a gente tenta outras coisas :-)
Boa tarde Marco, eu já havia feito as alterações em si do banco e no php como você disse, porém continua dando o erro, e no php ele passa com acento ou ç (quando executado teste)
Olá, Vinicius. Tudo bom?
Verifica pra mim se no seu formulário você está especificando:
<head>
//conteudo do head
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
Então André utilizei o que você informou e não adiantou, já testei tudo o que eu sei.
no caso estou utilizando desta maneira:
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Minha Loja</title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/loja.css" rel="stylesheet">
</head>`
Qual doctype você está utilizando? Me manda tudo desse arquivo do formulário, por favor?
Me manda também a estrutura da sua tabela produtos e sua $query
para inserir os dados no banco.
Cabeçalho das páginas
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Minha Loja</title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/loja.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="principal">
Formulário:
<?php include("cabecalho.php");?>
<form action="adiciona-produto.php">
Nome:<input type="text" name="nome"></br>
Preço:<input type="number" name="preco"></br>
<input type="submit" value="Cadastrar">
</form>
<?php include("rodape.php");?>
Adiciona:
<?php include("cabecalho.php");?>
<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysqli_connect('localhost','root','','loja');
$query="insert into produtos (nome, preco) values ('{$nome}',{$preco})";
if(mysqli_query($conexao, $query)){?>
<p class="alert-success">Produto <?= $nome; ?>, preço <?= $preco?> adicionado com sucesso!</p>
<?php }else{ ?>
<p class="alert-danger">O produto <?= $nome?> não foi adicionado.</p>
<?php
}
?>
<?php include("rodape.php");?>
todos estão ai, agradeço desde já.
No seu arquivo cabecalho.php adicione no começo o DOCTYPE do HTML 5 para garantir:
<!DOCTYPE html>
Se não resolver, tente alterar o charset do seu mysqli para utf8 pois pode ter vindo latin1 como padrão (também para garantir):
$conexao = mysqli_connect('localhost','root','','loja');
$mysqli->set_charset("utf8")
Se quiser saber mais sobre o método ->set_charset()
você pode dar uma olhada na documentação (disponivel em portugues):
http://php.net/manual/pt_BR/mysqli.set-charset.php
Espero ter ajudado =)