Verificando um email existe em outra tabela

Nayana Ciuro:

Eu estou fazendo um registro de forma e eu estou tentando verificar se o e-mail que a pessoa inserções na entrada já está em outra tabela que tem todos os e-mails que eu permitem a ser registrado. Se é que deve registrar a pessoa. Eu não entendo onde eu estou falhando. Estou começando agora com php. Por favor ajude.

<?php

if(isset($_POST['signup-submit'])){


    require 'dbh.inc.php';

    $username = mysqli_real_escape_string($conn, $_POST['uid']);
    $email =  mysqli_real_escape_string($conn,$_POST['mail']);
    $password =  mysqli_real_escape_string($conn,$_POST['pwd']);
    $passwordRepeat =  mysqli_real_escape_string($conn, $_POST['pwd-repeat']);
    $check1 = $_POST['check1'];
    $check2 = $_POST['check2'];
    if(empty($username) || empty($email) || empty($password) || empty($passwordRepeat)) {

        header ("Location: ../header.php?error=emptyfields&uid=".$username."&mail=".$email);
        exit();
    }
    else if (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-z0-9]*$/", $username)){

        header("Location: ../header.php?error=invalidadmail&uid=");
        exit();
    } 
    else if (!filter_var($email, FILTER_VALIDATE_EMAIL)){

        header("Location: ../header.php?error=invalidadmail&uid=".$username);
        exit();
    } 
    else if (!preg_match("/^[a-zA-z0-9]*$/", $username)){

        header("Location: ../header.php?error=invalidaduid&mail=".$email);
    exit();

}
    elseif($password !== $passwordRepeat){
        header("Location: ../header.php?error=passwordcheck&uid=".$username."&mail=".$email);
        exit();
    }
    elseif((!isset($check1)) || (!isset($check2))){
        echo"<script>alert('É necessário confirmar as duas opções :(');
        window.location.href='../header.php'</script>";
exit();
    }

Esta é a parte do código que não está funcionando

$sql2 = "SELECT * FROM emails WHERE (email_socio = '$email')";
$res = mysqli_query($conn, $sql2); 

if (mysqli_num_rows($res) < 0) {
echo "FAIL";
}

Estes são outros validações e onde se vai inserir os dados na mesa final

    else{


$sql = "SELECT uidUsers FROM users WHERE uidUsers=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
    header("Location: ../header.php?error=sqlerror");
    exit();

}
 else{
     mysqli_stmt_bind_param($stmt, "s", $username);
     mysqli_stmt_execute($stmt);
     mysqli_stmt_store_result($stmt);
     $resultCheck = mysqli_stmt_num_rows($stmt);
     if($resultCheck > 0){
        header("Location: ../header.php?error=usertaken&mail=".$email);
        exit();
     }
     else {




        $sql = "INSERT INTO users (uidUsers, emailUsers, pwdUsers) VALUES (?, ?, ?)";
        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)){
            header("Location: ../header.php?error=sqlerror");
            exit();

        } else {
            $hashedPwd = password_hash($password, PASSWORD_DEFAULT);
            mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd);
            mysqli_stmt_execute($stmt);
            $sql ="SELECT * FROM users WHERE uidUsers='$username' AND emailUsers='$email'";
            $result = mysqli_query($conn, $sql);
            if(mysqli_num_rows($result)>0){
                while($row = mysqli_fetch_assoc($result)){
                    $userid = $row['idUsers'];
                    $sql = "INSERT INTO profileimg (userid, status) VALUES ('$userid', 1)";
                    mysqli_query($conn, $sql);
                }
            }
            header("Location: ../header.php?signup=success");
            exit();
        }
     }
 }
 }
 mysqli_stmt_close($stmt);
 mysqli_close($conn);
}

else {
    header("Location: ../header.php");
    exit();
}
El_Vanja:

Sua condição está errado:

if (mysqli_num_rows($res) < 0) {
    echo "FAIL";
}

Você está verificando menor que zero , quando na verdade deveria ser inferior a um .

Então, alterá-lo para qualquer um dos dois:

if (mysqli_num_rows($res) === 0) // it logically cannot contain negative values
if (mysqli_num_rows($res) < 1)

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=282613&siteId=1
Recomendado
Clasificación