Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

armdsrj

MySQL não retornou nenhum registo

Recommended Posts

Olá pessoal... Eu sou novo aqui no Fórum e estou com uma dúvida... Estou criando um aplicativo que recebe o nome do usuário, o sobrenome e o email deste para fins de criar uma espécie de MALA DIRETA para que depois eu possa posteriormente enviar emails para TODAS as pessoas da lista clicando apenas em um botão...

 

O fato é que eu criei um banco de dados no PhpMyAdmin em meu servidor chamado armdsinf_andre e criei uma tabela chamada email_list com os seguintes campos: first_name varchar (50), last_name varchar (50) e email varchar (50)

 

Em meu formulário, quando o usuário não preenche todos os campos um ALERT funciona dizendo que é para que o usuário preencha todos os campos e, quando o usuário preenche o email errado um ALERT funciona dizendo que o email é inválido, agora, quando TODOS os campos são preenchidos DE FORMA CORRETA um ALERT funciona dizendo que a MENSAGEM FOI ENVIADA COM SUCESSO...

 

O fato é que RECEBO em MEU email, o nome, sobrenome e o email do USUÁRIO, todavia, MEU BANCO DE DADOS NÃO REGISTRA OS DADOS DO USUÁRIO... Ou seja RECEBO OS EMAILS COM OS DADOS EM MEU EMAIL E MEU BANCO DE DADOS NÃO RECEBE NENHUM REGISTRO... Vou postar meu arquivo "addemail.php" para ver se podem me ajudar nessa questão e apontar onde é que eu estou errando... Segue:

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>
<body>
<h1><center>Formulário De Identificação de E-mails</center></h1>
<br /><br />
<table width="395" border="1" align="center" cellpadding="2" cellspacing="2">
<tr>
<td width="111" bgcolor="#FFFFFF"><form method="post" enctype="multipart/form-data">
Nome:<br /><input type="text" name="firstname" id="firstname" size="45" /></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Sobrenome:<br /><input type="text" name="lastname" id="lastname" size="45" /></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Email:<br /><input type="text" name="email" id="email" size="45" /></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#FFFFFF">
<input type="hidden" name="acao" id="acao" value="env-cont" />
<input type="submit" value="Enviar Identificação" /></td>
</tr>
</table>
<?php
$conecta = mysqli_connect('localhost', 'armdsinf_mds', 'armdsrj123', 'armdsinf_andre') or die ('Erro de Conexão');
$db = mysqli_select_db($conecta, 'armdsinf_andre');
if (isset($_POST['acao']) || $_POST['acao'] == 'env-cont'){
$first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
$email = $_POST['email'];
if(empty($first_name) || empty($last_name) || empty($email)){
echo '<script>alert("Preencha Todos os Campos!")</script>';
}elseif(!preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\.\-]+\.[a-z]{2,4}$/i", $email)){
echo '<script>alert("E-mail Inválido!")</script>';
}else{
mysqli_query($conecta, "INSERT INTO email_list (firstname, lastname, email) VALUES ('$first_name', '$last_name', '$email')");
echo '<script>alert("Mensagem Enviada com Sucesso!")</script>';
//envio de email
$to = 'rjcarpediemrj@hotmail.com';
$subject = 'Cadastro';
$msg = 'Recebemos o contato de ' . $first_name . ' ' . $last_name . ' cujo email é ' . $email;
mail($to, $subject, $msg);
}
}
mysqli_close($conecta);
?>
</body>
</html>
DESDE JÁ FICO AGRADECIDO SE PUDEREM ME AJUDAR NESSA MINHA DÚVIDA!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você disse que os campos se chamam first_name e last_name, mas na query você está usando firstname e lastname.

 

Use o OR DIE(mysql_error()) para retornar todos os possíveis erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

EXCELENTE ESerra, muito obrigado mesmo... Você está certo mesmo e agora deu certo, não tinha percebido isso... Queria aproveitar para tirar uma outra dúvida que eu tenho já há um certo tempo...

 

Quando o USUÁRIO digita seu nome, por exemplo André Ricardo, fica REGISTRADO no BANCO DE DADOS André Ricardo, ou seja, com esses caracteres especiais... Como é que eu faço para que seja impresso no database o nome do usuário SEM ESSES CARACTERES ESPECIAIS, ou seja, quando o usuário digitar André Ricardo que fique registrado no banco de dados, André Ricardo e NÃO André Ricardo...

 

Como faço para que isso seja possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando utf-8, após a conexão adicione:

 

mysqli_query($conecta, "SET NAMES 'utf8'");



Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.