2016-10-24 3 views
-2

私はメンバーログインシステムを使用しています。私のシステムにログインした後、私のテーブルに "未定義"のユーザーが見つかりました。私はこのユーザーが私のデータベースにどのように挿入されているのか、自分のコードに何か問題があったのかどうか不明です。誰でもこれを説明できますか?ありがとうございます。未定義のユーザーが何度かデータベーステーブルに挿入されました

私のテーブルのデータ。ここで

enter image description here

私は私のテーブルに挿入する前に、私は、ユーザー名を確認し、私のコードの一部です。また、ログインパスワードを挿入する前に暗号化するために "crypt"機能を使用します。

$query = $cdb->prepare("SELECT username,password,priviledge FROM members WHERE username='$userName' AND password='$passwd' "); 
    $query->execute(); 
    $result = $query->fetch(PDO::FETCH_OBJ); 

    if($query->rowCount() != 0){ 
     session_start(); 
     /*More secure session*/ 
     if(isset($_SESSION['admin'])){ 
      if($_SESSION['admin'] < time()-300){ 
       session_commit(); 
       unset($_SESSION['admin']); 
       unset($_SESSION['user']); 
      } 
     }else{ 
      if($result->priviledge == 0){ 
       $_SESSION['admin'] = session_regenerate_id(); 
       $_SESSION['user'] = $userName; //This is from $_POST. 
       ini_set('session.use_strict_mode', 1); 
       echo 'OK'; 
      } 
     } 
     if(isset($_SESSION['co-admin'])){ 
      if($_SESSION['co-admin'] < time()-300){ 
       session_commit(); 
       unset($_SESSION['co-admin']); 
       unset($_SESSION['user']); 
      } 
     }else{ 
      if($result->priviledge == 1){ 
       $_SESSION['co-admin'] = session_regenerate_id(); 
       $_SESSION['user'] = $userName; //This is from $_POST. 
       ini_set('session.use_strict_mode', 1); 
       echo 'OK'; 
      } 
     } 
    }else{ 
     echo 'NO'; 
    } 
+0

私には「未定義」があります。定義されていないvariblesやqueryselectorが存在しない場合のJavaScriptの戻り値のように表示されます –

+0

どうすればデータベースに挿入できますか?これは危険ですか? – Wasinha

+0

変数 '$ userName'の設定方法を指定してください。また、SQLインジェクションについても読んでください。 – NoRyb

答えて

0

問題が見つかりました。私は$ _POST変数を指定していないためです。 は私のコードの問題がある:

if(isset($_POST)){ 
//do my stuffs here. 
} 

合理的なコードは次のとおりです。

if(isset($_POST['my_var'])){ 
//do my stuffs here. 
} 

私もJavaScriptで何か間違ったことを行っています。

関連する問題