Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal feliz 2015! Estou com problema tenho um sistema de login e senha em php e Mysql, tem um formulário de cadastro
com os campos:
Login
Senha
Repetir Senha
os dados a cima preenchidos vão para a base MySQL e um e-mail é enviado para o Usuário
ele tem que receber este e-mail para ativar a conta criada no site.
Só que o e-mail nunca chega no usuário. Esse é o problema não chegar o e-mail ao destino final.
vou postar o código de cadastro.
<?php
include("config.php");
if (isset($_POST['login'])){
//pega a sessão id do usuario
session_start();
$sessao = session_id();
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$sql_busca = "SELECT * FROM user WHERE login = '$login'";
$exe_busca = mysql_query($sql_busca) or die (mysql_error());
$num_busca = mysql_num_rows($exe_busca);
$sql_busca2 = "SELECT * FROM user WHERE email = '$email'";
$exe_busca2 = mysql_query($sql_busca2) or die (mysql_error());
$num_busca2 = mysql_num_rows($exe_busca2);
//Verifica se os campos estão preenchidos
if ($_POST['login'] == "" || $_POST['senha'] == "" || $_POST['senha2'] == "" || $_POST['email'] == ""){
$ac[] = "Por favou preencha todos os campos corretamente.";
}
//Verifica se ja existe o login
if ($num_busca > 0){
$ac[] = "Esse login já esta sendo usado por outro usuario.";
}
//Verifica se ja existe o e-mail
if ($num_busca2 > 0){
$ac[] = "Esse e-mail já esta sendo usado por outro usuario.";
}
//Verifica se o e-mail esta correto
if (!ereg("@.", $_POST['email'])){
$ac[] = "E-mail invalido.";
}
//Verifica se as duas senha são diferente
if ($_POST['senha'] != $_POST['senha2']){
$ac[] = "Verifique se as duas senha estão correta.";
}
//Verifica se todas estão corretas
if (!isset($ac)){
//Inclui o cadastro no mysql
$sql_inclu = "INSERT INTO user(login, senha, email, sessao) VALUES
('$login', '$senha', '$email', '$sessao')";
$exe_inclu = mysql_query($sql_inclu) or die (mysql_error());
$topico = "Registro $nome_site";
$mensagem = "<html>";
$mensagem .= "<body>";
$mensagem .= "Olá $login\r\n";
$mensagem .= "<br>Você efetuou um Registro no $nome_site.</br>";
$mensagem .= "<br>Login: $login";
$mensagem .= "<br>Senha: $senha";
$mensagem .= "<br>Ativar conta <a href='$site/active.php?ac=$sessao'>$site/active.php?ac=$sessao</a></br>";
$mensagem .= "</body>";
$mensagem .= "</html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $nome_site <$email>\r\n";
$ac[] = "Cadastro efetuado com sucesso, verifique seu e-mail para ativa a conta.";
//enviar para o email o login, senha e o codigo de ativação
mail($email, $topico, $mensagem, $headers);
}
}
?>
<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta property="og:image" content="http://www.rccantacomseusamigos.com.br/favicon.ico"/>
<meta name="description" content="Programa Roberto Carlos Canta com Seus Amigos - com Herminio Santiago O amigo do rei" />
<meta name="keywords" content=" Programa de radio, radio cearense, Fortaleza,Roberto Carlos, Musicas de Roberto Carlos, Lider Fm 92.1, Herminio Santiago" />
<meta name="url" content="http://www.rccantacomseusamigos.com.br" />
<meta name="author" content="Aderson Designer - www.adersondesigner.com" />
<meta name="Audience" content="all" />
<meta name="revisit-after" content="1 days" />
<meta charset="utf-8">
<meta name="rating" content="General" />
<meta name="robots" content="index,follow" />
<meta name="robots" content="ALL, FOLLOW" />
<meta name="googlebot" content="index,follow" />
<meta name="classification" content="web, Classifields, Classificados " />
<meta name="distribution" content="global" />
<meta name="expires" content="0" />
<meta http-equiv="reply-to" content="contato@adersondesigner.com" />
<meta name="copyright" content="© 2012 - 2014 rccantacomseusamigos adersondesigner.com" />
<meta http-equiv="imagetoolbar" content="no" />
<title>Cadastro para Acesso Restrito!</title>
<style type="text/css">
<!--
.Style2 {font-size: 13px}
-->
</style>
</head>
<body>
<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>
<form id="form1" name="form1" method="post" action="<? $_SERVER['PHP_SELF']?>">
<table width="100%" border="0">
<tr>
<td colspan="2"><div align="center"><strong>Cadastro</strong></div></td>
</tr>
<tr>
<td width="13%"><span class="Style2">Login:</span></td>
<td width="87%"><span class="Style2">
<label>
<input name="login" type="text" id="login" />
</label>
</span></td>
</tr>
<tr>
<td><span class="Style2">Senha:</span></td>
<td><span class="Style2">
<label>
<input name="senha" type="password" id="senha" />
</label>
</span></td>
</tr>
<tr>
<td><span class="Style2">Repetir senha: </span></td>
<td><span class="Style2">
<label>
<input name="senha2" type="password" id="senha2" />
</label>
</span></td>
</tr>
<tr>
<td><span class="Style2">E-mail:</span></td>
<td><span class="Style2">
<label>
<input name="email" type="text" id="email" />
</label>
</span></td>
</tr>
<tr>
<td> </td>
<td><span class="Style2">
<label>
<input type="submit" name="Submit" value="Enviar" />
</label>
</span></td>
</tr>
</table>
<p> </p>
</form>
<p> </p>
<a href="index.php">Fazer Login!</a>
</body>
</html>
Esse é todo o código, Agradeço quem poder me ajudar
Você está testando em localhost ou no servidor remoto?
1. Se for em localhost, você precisa ter um servidor SMTP instalado
2. Se for no servidor, verifique se ele possui SMTP e permite envios usando mail()
Uma saída simples e prática (que funcionará em localhost e no servidor) é usar PHPMailer. Veja mais aqui: http://rberaldo.com.br/enviando-e-mails-com-a-classe-phpmailer/
PS: funções mysql_* estão obsoletas a desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql
Beraldo é no servidor e tem smtp.
vou tentar o que o wictorP falou.
WictorPdesculpa to perdido eu substituo pelo código tudo ?
o que eu faço
Tente esse código acima. XD