Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos, eu criei um arquivo PHP que se conecta a um banco de dados só que ele esta dando dois erros:
1º==quando eu não coloco nenhum dado aparece a seguinte mensagem "ERRO. Smsg" .
2º==quando eu coloco os dados e envio, aparece uma tela toda em branco e quando vó olhar se os dados foram inseridos não tem nada.
Não consigo achar o que eu fiz de errado, espero que você possa me ajudar.
Aki esta o formulario html, mas eu acho que nessa parte não tem nenhum erro:
<html>
<head>
<meta charset="UTF-8">
<title>Cadastro de Pedidos</title>
</head>
<body>
<H1>WebFlores - Cadastro de Pedidos</h1>
<!-- Definição do metodo e da ação -->
<form name ="WebFlores - Cadastro de Pedidos" method="POST" action="banco.php" >
<form>
<!-- Utilização dos campos tipo texto, utilizei uma tabela para alinhar as caixa de texto -->
<table>
<tr>
<td> Nome do Remetente:</td>
<td><input type="text" name="NRemetente" size="40"> <br /></td>
</tr>
<tr>
<td>Endereço do Remetente:</td>
<td><input type="text" name="ERemetente" size="40"> <br /></td>
</tr>
<tr>
<td>Nome do Destinatário:</td>
<td><input type="text" name="NDestinatario" size="40"> <br /></td>
</tr>
<tr>
<td>Endereço do Destinatário:</td>
<td><input type="text" name="EDestinatario" size="40"> <br /></td>
</tr>
<tr>
<!--Utilizei um campo do tipo data para não presizar validar esse campo-->
<td>Data da Entrega:</td>
<td><input type="date" name="data" size="40"> <br /></td>
</tr>
<tr>
<!--combobox flor-->
<td>Flor :</td>
<td><select name="flor">
<option value="1">Namorados - R$ 30.00
<option value="2">Paixão - R$ 50.00
<option value="3">Casual - R$ 40.00
<option value="4">Mix de rosas - R$ 50.00
<option value="5">Saboroso - R$ 60.00
</select><br></td><p></p>
</tr>
<!--Campo do tipo texto area-->
<tr>
<td> Menssagem:</td>
<td> <textarea name="mensagem" rows="4" cols="31">Digite aqui sua menssagem
</textarea></td>
</tr>
<!--Botoes de envio e limpar-->
<td> <input type="submit" value="Enviar" name="envir" ></td>
<td><input type="reset" value="Limpar"/></td>
</table>
</form>
</body>
</html>
Agora o arquivo PHP:
<?php
//função para validar os dados
function validarDados(&$msg, $NomeRemetente, $EndRemetente, $NomeDestinatario, $EndDestinatario, $Mensagem){
$resultado = true; $msg = "Nome do remetente invalido.<BR>";
$resultado = false;}
if (empty($EndRemetente)){
$msg = $msg . "Endereço do remetente invalido.<BR>";
$resultado = false; } $msg = $msg . "Nome do destinatario invalido.<BR>";
$resultado = false;
}
if (empty($EndDestinatario)){
$msg = $msg . "Endereço do destinatario invalido.<BR>";
$resultado = false;
}
if (empty($Mensagem)){
$msg = $msg . "Menssagem invalida.<BR>";
$resultado = false;
}
return $resultado;
}
//Pegar os dados:
$NomeRemetente = $_POST["NRemetente"];
$EndRemetente = $_POST["ERemetente"];
$NomeDestinatario = $_POST["NDestinatario"];
$EndDestinatario = $_POST["EDestinatario"];
$DataEntrega = $_POST["data"];
$TipoFlor = $_POST["flor"];
$Mensagem = $_POST["mensagem"];
//pegar a data do sistema
date_default_timezone_set('America/Sao_Paulo');
$DataPedido = date("d/M/Y");
//validar os dados
$msg = "";
if (validarDados($msg, $NomeRemetente, $EndRemetente, $NomeDestinatario, $EndDestinatario, $Mensagem) ) {
//função para conectar ao banco
mysql_connect("localhost", "root", "") or die ("Erro ao conctar com o banco de dados." . mysql_errno() );
//função para escolher o banco de dados
mysql_select_db("bdfloricultura") or die ("Erro ao selecionar o banco de dados." . mysql_errno() ) ;
//Inserir os dados ao banco de bados
$sql = "INSERT INTO pedidos (nomeRemetente, enderRemetente, nomeDestinatario, enderDestinatario, mensagem, idFlor, dtPedido, dtEntrega)"
. "VALUES ('$NomeRemetente', '$EndRemetente', '$NomeDestinatario', '$EndDestinatario', '$Mensagem', $TipoFlor, $DataPedido, $DataEntrega) ";
//execurar no banco de dados
mysql_query($sql) or die ( mysql_errno() ) ;
echo "DADOS INSERIDOS COM SUCESSO.";
}else{
//ERRO
echo "ERRO. Smsg";
}
?>
Espero que vocês possam me ajudar
Obrigado pela atenção!!!!!!
em relação a mensagem de erro, eu queria que aparecesse uma para cada campo, por exemplo: se o nome do remetente ficar em branco ai aparece "Erro. nome do remetente invalido", se o endereço ficar em branco : "Erro. endereço invalido" e assim por diante .
ja a parte do armazenamento eu fiz igual você falo mas continua dando o mesmo erro. Se dasse certo era para aperecer a mensagem "DADOS INSERIDOS COM SUCESSO." , mas tambem não aparece
coloque um echo para ver qual o erro
$conexao = mysql_connect("localhost", "root", "") or die ( echo "Erro ao conctar com o banco de dados." . mysql_errno() );
//função para escolher o banco de dados
mysql_select_db("bdfloricultura",$conexao) or die (echo "Erro ao selecionar o banco de dados." . mysql_errno() ) ;Eu fiz igual vc falo eo código ficou assim:
<?php
//função para validar os dados
function validarDados(&$msg, $NomeRemetente, $EndRemetente, $NomeDestinatario, $EndDestinatario, $Mensagem){
$resultado = true; $msg = "Nome do remetente invalido.<BR>";
$resultado = false;}
if (empty($EndRemetente)){
$msg = $msg . "Endereço do remetente invalido.<BR>";
$resultado = false; } $msg = $msg . "Nome do destinatario invalido.<BR>";
$resultado = false;
}
if (empty($EndDestinatario)){
$msg = $msg . "Endereço do destinatario invalido.<BR>";
$resultado = false;
}
if (empty($Mensagem)){
$msg = $msg . "Menssagem invalida.<BR>";
$resultado = false;
}
return $resultado;
}
//Pegar os dados:
$NomeRemetente = $_POST["NRemetente"];
$EndRemetente = $_POST["ERemetente"];
$NomeDestinatario = $_POST["NDestinatario"];
$EndDestinatario = $_POST["EDestinatario"];
$DataEntrega = $_POST["data"];
$TipoFlor = $_POST["flor"];
$Mensagem = $_POST["mensagem"];
//pegar a data do sistema
date_default_timezone_set('America/Sao_Paulo');
$DataPedido = date("d/M/Y");
//validar os dados
$msg = "";
if (validarDados($msg, $NomeRemetente, $EndRemetente, $NomeDestinatario, $EndDestinatario, $Mensagem) ) {
//função para conectar ao banco
$conexao = mysql_connect("localhost", "root", "") or die ("Erro ao conctar com o banco de dados." . mysql_errno() );
//função para escolher o banco de dados
mysql_select_db("bdfloricultura") or die ("Erro ao selecionar o banco de dados." . mysql_errno() ) ;
//Inserir os dados ao banco de bados
$sql = "INSERT INTO pedidos (nomeRemetente, enderRemetente, nomeDestinatario, enderDestinatario, mensagem, idFlor, dtPedido, dtEntrega)"
. "VALUES ('$NomeRemetente', '$EndRemetente', '$NomeDestinatario', '$EndDestinatario', '$Mensagem', $TipoFlor, $DataPedido, $DataEntrega) ";
//execurar no banco de dados
mysql_query($sql) or die ( mysql_errno() ) ;
echo "DADOS INSERIDOS COM SUCESSO.";
}else{
//ERRO
echo "ERRO. Smsg";
}
?>
Mas continua aparecendo a tela em branco.
sera que eu posso te manda um arquivo com o banco de dados para vc testa ai ?
aki o banco de dados
http://www.4shared.com/document/cPd162qNba/BDFloricultura.html
haha vi uma coisa, esta errado o mysql_errno, pq na verdade é mysql_error
se a tela esta ficando branca então deve ser a query, mas alterando essa parte já vai aparece a mensagem
hahaha, continua aparecendo a tela em branco kkkkkkkk
tem como vc testa ai não?
talves e meu netbeans
amigo eu criei um banco com o mesmo nome, e mesmas tabelas so deu um erro e foi na query
$sql = "INSERT INTO pedidos (nomeRemetente, enderRemetente, nomeDestinatario, enderDestinatario, mensagem, idFlor, dtPedido, dtEntrega)"
. "VALUES ('$NomeRemetente', '$EndRemetente', '$NomeDestinatario', '$EndDestinatario', '$Mensagem', $TipoFlor, '$DataPedido', '$DataEntrega') ";
coloque entre aspas a DataPedido e DataEntrega, pq so inteiro que pode ir sem data tem que ter aspas
se isso n resolver é o banco, pq o código ta 100%
fera valeu mesmo deu certim agora
so tem mais um problema kkkkkkk
para a $DataPedido tava presizando pegar a hora do sistema,
se não for pedir muito vc pode me ajudar tambem?
se o campo da tabela for varchar vc pode usar
$DataPedido = date("d/M/Y H:i:s");
se for datetime tem q ser assim
$DataPedido = date("Y-m-d H:i:s");
se deu certo, coloque como resolvido :)
deu certo sim, mas sera que tem como bota a data na ordem certa pq ela ta vindo ao contrario
da uma olhada na documentação da função date()
da pra organizar do jeito q vc preferir
ok vlw pela ajuda
Esta mostrando a mensagem "ERRO. Smsg" pq o codigo foi feito para mostrar isso, repare no else no final, ele valida os dados se não tiver nenhum ele entra dentro o else que que ira msotrar a mensagem, dentro da função ele esta armazenando um mensagem dentro do variavel $msg, mas em nenhuma parte do codigo esta manipulando ela, para ser exibida
em questão que não está armazenando você esqueceu de armazenar a conexão para chamar junto a db, o certo é assim