Confirm registration by sending email

0

Hello! I have a registration and emailing code, but I do not know why, it is not working ...

resgistar.php (registration form)

 <!-- 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>";
        }
    }
}
?>

confirm_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.";
}
?>

Users table

    
asked by anonymous 29.06.2017 / 00:15

1 answer

0

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

if($result)

By:

if($resultado_registo)
    
29.06.2017 / 03:31