-1

私はPHPに非常に慣れていないので、まだ「インとアウト」を学ぼうとしています.(独学)同じIPが複数回署名するのをブロックするために、友人にコードを開発してもらった請願Webサイトがあります。

この特定の嘆願書は、同じ IP を使用する複数の署名者がいるオフィスに送信されるため、重複する IP をブロックするコードから、署名者が提供する重複する「GLVAR」番号をブロックするコードに変更する必要があります。データベースをセットアップしましたが、これを機能させるためにコーディングを正確に変更する場所がわかりません。

また、署名者が送信した情報を私の電子メール アドレスに送信して、追加のコピーを取得しようとしています。私はこれが簡単であることを知っていますが、私が言ったように、私は独学で非常に新しいので、どんな助けも大歓迎です. お時間をいただきありがとうございました。

<?php
include('database/config.php');
include('database/database.php');

$err = '';

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

    $first = addslashes(trim($_POST['first'])); 

    $last = addslashes(trim($_POST['last']));   

    $glvar = addslashes(trim($_POST['glvar']));

    $ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; 
    //echo $ip;

     if(($first!='')&& ($last!='')&& ($glvar!='')){ 

        $database = new Database(HOST, DATEBASE, USERNAME, PASSWORD);   

        $allUsers = $database->select('user','ip','*',"ip = '".$ip."'");
        //echo $ip;     

        $checkIp = 0;           
    $checkIp = count($allUsers);    

        $userData = array(              
            'first_name' => $first, 
            'last_name' => $last,               
            'glvar_id' => $glvar,       
            'ip' => $ip,        

        );      

        if(!$checkIp) {         

            $database->insert('user',$userData);        

            header('location:thank-you.html');      

        }    else  $err.='<p style="color:red">Ooops! You have already signed the petition</p>';        

    } else {    

        if($first=='') $err.='<p style="color:red">Your first name not empty</p>';  

        if($last=='') $err.='<p style="color:red">Your last name not empty</p>';    

        if($glvar=='') $err.='<p style="color:red">Your GLVAR ID not empty</p>';    

    }

}

?>
4

1 に答える 1

1

glvarIP ではなく、データベースにクエリを実行する必要があります。

データベースで glvar_id 列がどのように見えるかに応じて、このように見える場合があります。

$allUsers = $database->select('user','glvar_id','*',"glvar_id = '".$glvar."'");
//echo $ip;

$checkglvar = 0;
$checkglvar = count($allUsers);

成功時に自分自身にメールを送信したい場合は、動作するように php メール機能を設定し、ここに追加します。

if(!$checkIp) {

    $database->insert('user',$userData);

    mail("to@me.com", "Subject", "message");

    header('location:thank-you.html');

}
于 2013-06-21T02:43:52.867 に答える