如何在注册系统中保存 IP 地址


How to save IP address in a registration system?

我创建了一个可以将用户注册到数据库中的代码。但我也想保存IP。有人可以帮助我解决问题吗?因为我从未使用 IP 创建过代码,所以我已经尝试过搜索,但什么都没有。

$podeCriarConta = True; 
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) 
    { 
     $_SESSION['error'] = "<img src='images/picons/error.png'></img> E-mail inválido! Por favor introduza um válido.<br />";  
     $podeCriarConta = False;       
   } 
    if(empty($_POST['password'])) 
    { 
     $_SESSION['error'] = "<img src='images/picons/error.png'></img> Password inválida! Por favor introduza uma válida.<br />";
     $podeCriarConta = False;        
    } 

    if(empty($_POST['username'])) 
    { 
     $_SESSION['error'] = "<img src='images/picons/error.png'></img> Utilizador inválido! Por favor introduza um Utilizador válido.<br />"; 
     $podeCriarConta = False;       
   } 
    if(empty($_POST['nome'])) 
    { 
        $_SESSION['error'] = "<img src='images/picons/error.png'></img> Nome inválido! Por favor introduza um Nome válido.<br />";
        $podeCriarConta = False;                
    } 
    $query = " 
        SELECT 
            1 
        FROM users 
        WHERE 
            username = :username 
    "; 
    $query_params = array( 
        ':username' => $_POST['username'] 
    ); 
    try 
    { 
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) 
    {  
        die("Failed to run query line 68: " . $ex->getMessage()); 
    } 
    $row = $stmt->fetch(); 
    if($row) 
    { 
     $_SESSION['error'] = "<img src='images/picons/error.png'></img> Nome de Utilizador já se encontra em uso!<br />"; 
    } 
    $query = " 
        SELECT 
            1 
        FROM users 
        WHERE 
            email = :email 
    "; 
    $query_params = array( 
        ':email' => $_POST['email'] 
    ); 
    try 
    { 
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) 
    { 
       $_SESSION['error'] .= "Failed to run query line 103: " . $ex->getMessage(); 
    } 
    $row = $stmt->fetch(); 
    if($row) 
    { 
        $_SESSION['error'] .= "<img src='images/picons/error.png'></img>  E-mail inválido! Já se encontra em uso.<br />"; 
    } 
    $query = " 
        INSERT INTO users ( 
            nome,
            username, 
            password, 
    "; 

您的问题没有显示您的正确要求,但可能是您正在寻找以下内容:

$Ip = $_SERVER['REMOTE_ADDR'];  //this will gives you IP address from which the user is viewing the current page.

然后只需将此"$Ip"保存到您的数据库中即可。