Confirm registration by sending email

Asked

Viewed 3,585 times

0

Hello! I have a registration and email sending code, but I don’t know why, it’s not working...

resgistar.php (form of registration)

 <!-- Form do Registo -->
    <div class="w3-row-padding w3-padding-64 w3-container">
        <div class="w3-content">
            <div class="w3-twothird">
                 <h1><center>Registe-se com os dados corretos</center></h1><br>
                <form align="center" action="registar.php" method="post"> 
                    <a>Nome Completo*</a><br>
                    <input name="nome" id="nome" type="text" maxlength="150" size = "50" required><br><br>

                    <a>Endereço de e-mail*</a><br>
                    <input name="email" id="email" type="email" maxlength="150" size = "50" required><br><br>
                    <a>Morada*</a><br>
                    <input name="morada" id="morada" type="varchar" maxlength="150" size = "50" required><br><br>
                    <a>Código Postal*</a><br>
                    <input name="cp" id="cp" type="varchar" maxlength="8" size = "8" required><br><br>
                    <a>Contacto telefónico*</a><br>
                    <input name="telefone" id="telefone" type="text" maxlength="15" size = "25" required><br><br>
                    <a>Password*</a><br>
                    <input name="password" id="password" type="password" maxlength="15" size = "25" required><br><br>
                    <a>Confirme a password*</a><br>
                    <input name="confirmar_password" id="confirmar_password" type="password" maxlength="15" size = "25" required><br><br>
                    <input name="submit" type="submit" class="w3-btn w3-padding-16 w3-large w3-margin-top" value="Registar"><br><br>
                    <a>"*" = campos de preenchimento obrigatório.</a>
                </form>
            </div>
        </div>
    </div>

resgistar.php (email php)

 <?php
include('configdb.php');
if(isset($_POST['submit']))
{
    $email = $_POST['email'];
    $nome = $_POST['nome'];
    $password = $_POST['password'];
    $telefone = $_POST['telefone'];
    $morada = $_POST['morada'];
    $cp = $_POST['cp'];

    $com_code = md5(uniqid(rand()));
    $query_registo = "INSERT INTO users(email, nome, password, telefone, morada, cp, admin, com_code) VALUES ('$email', '$nome','$password', '$telefone', '$morada', '$cp', 0, '$com_code')";
    $resultado_registo = mysqli_query($mysqli,$query_registo) or die(mysqli_error($mysqli));
    // Verifica se o registo foi bem efectuado na BD, manda e-mail de confirmação para o utilizador.
            if($result)
    {
        $to = $email;
        $subject = "Confirmação da Agreen Space para $nome";
        $header = "Agreen Space: Confirme o seu e-mail.";
        $message = "Por favor clique no link abaixo para confirmar a sua conta. rn ";
        $message .= "http://localhost/agreen/HTML/confirmar_email.php?passkey=$com_code";

        $sentmail = mail($to,$subject,$message,$header);

        if($sentmail)
        {
            echo "
            <script language='JavaScript'>
            window.alert('Foi enviado um e-mail de confirmação para o seu endereço de e-mail. Clique para voltar à página inicial.')
            window.location.href='index.php';
            </script>";
        }
        else
        {
            echo "
            <script language='JavaScript'>
            window.alert('Não foi possível enviar um e-mail de confirmação para o seu endereço de e-mail. Clique para voltar à página inicial.')
            window.location.href='index.php';
            </script>";
        }
    }
}
?>

confirma_email.php

 <?php
 // Resultado da confirmação de e-mail que é recebido pelo utilizador.
 include('configdb.php');
 $passkey = $_GET['passkey'];
$sql = "UPDATE joana.users SET ativo=1 WHERE com_code='$passkey'";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error());
if($result)
{
echo '<div>A sua conta está activa. Já pode <a href="entrar.php">entrar.
</a></div>';
}
else
{
echo "Ocorreu um erro.";
}
?>

Table Users inserir a descrição da imagem aqui

  • What is not working? Registration? Sending the email? The 2?

  • the 2........... without these mail things, registration was well done, but with that of mail not

1 answer

0


Your problem is that in the file resgistar.php, you are checking a variable that was not created. To fix, change:

if($result)

For:

if($resultado_registo)
  • yes, it already replaces, but now it tells me that it does not send mail to the email, where the error was now?

  • I believe that your $header is wrong. Give a look here.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.