Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Sistema Newsletter


Paulo Faustini Jr

Pergunta

Estou tentando adicionar um sistema de newsletter em meu site, mas ao tentar inserir o e-mail aparece assim no site, apesar de informar que já foi adicionado, não tem nada no BD:

Volte e digite um email correto!

Esse email já está cadastrado em nosso banco de dados!

Segue abaixo os módulos da newsletter:

Form:

<form action="http://localhost/UCP2/php/newsletter.php" method="post">
                        <input type="text" name="email" maxlength="255" class="fieldNotify" id="emailNotify" value="Seu e-mail" /> 
                        <div style="float:left;"><input type="submit" value="ENVIAR" id="submitNotify" class="sendNotify" /></div>
</form>
Action:
<?php include "config.inc";
$erro=false;
if(strpos($email,"@")<3||strrpos($email,".")<7||strlen($email)>255){
    echo "Volte e digite um email correto!<br>";
    $erro=false;
}
include "conectar.inc";
$resultado=mysql_query("select id from $nometabela where email='$email'",$conexao);
if(mysql_num_rows($resultado)==0){
    mysql_query("insert into $nometabela values(NULL,'$email')",$conexao);
    echo "<b>Email registrado!</b>";
}else{
    echo "<b>Esse email já está cadastrado em nosso banco de dados!</b>";
}
mysql_close($conexao);
?>
config.inc:
<?php
// Nome da database MySql, crie uma database com esse nome no MySql Server
$nomedb="newsletter";
// Nome da tabela que será salva o guestbook
$nometabela="contatos";
// Seu email
$emailrem="teste@localhost";
// MySql Server
$mysqlhost="localhost";
// Nome do usuário MySql
$mysqluser="root";
// Senha do MySql
$mysqlpass="";
// Senha para a parte administrativa
$senha="admin";
?>
conectar.inc:
<?php include "config.inc";
$conexao=mysql_connect($mysqlhost,$mysqluser,$mysqlpass);
mysql_select_db($nomedb,$conexao);
?>

Não estou sabendo verificar o erro, porque simplesmente não me aparece nenhuma especificação do erro que está ocorrendo, espero que vocês possam me ajudar.

Abs.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Troca:

mysql_query("insert into $nometabela values(NULL,'$email')",$conexao);

Por:

mysql_query("insert into $nometabela values(NULL,'$email')",$conexao)OR DIE(mysql_error());

Isto vai informar qual o erro na inserção.

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz a modificação e continua não retornando erro, fiz a seguinte modificação no arquivo newsletter.php:

<?php include "config.inc";
//Conectando ao Bando de Dados
$conexao=mysql_connect($mysqlhost,$mysqluser,$mysqlpass);
mysql_select_db($nomedb,$conexao);

//Consulta ao Banco de Dados
$resultado=mysql_query("SELECT id FROM `$nometabela` WHERE email='$email'",$conexao)OR DIE(mysql_error());
if(mysql_num_rows($resultado)==0){
    //Inserindo no BD
    mysql_query("INSERT INTO `$nomedb`.`$nometabela` (`id`, `email`) VALUES (NULL, '$email')",$conexao)OR DIE(mysql_error());
    echo "<b>Email registrado!</b>";
}else{
    echo "<b>Esse email já está cadastrado em nosso banco de dados!</b>";
}
mysql_close($conexao);
?>

Uma coisa que percebi, foi que ao limpar o conteúdo da tabela "contatos", quando vou adicionar um e-mail, ele retorna "Email adicionado com sucesso" e insere uma linha com o valor 'id' mas sem nenhum conteúdo para o valor 'email' e aí quando vou tentar adicionar qualquer outro e-mail (ou até mesmo o que já adicionei) ele retorna "Email já adicionado...".

Link para o comentário
Compartilhar em outros sites

  • 0

Troque:

mysql_query("INSERT INTO `$nomedb`.`$nometabela` (`id`, `email`) VALUES (NULL, '$email')",$conexao)OR DIE(mysql_error());
Por:
$email = $_POST['email'];
mysql_query("INSERT INTO `$nomedb`.`$nometabela` (`id`, `email`) VALUES (NULL, '$email')",$conexao)OR DIE(mysql_error());

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...