2011-09-02 6 views
1

사용자가 등록 할 때 md5(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM))verified 열에 자신의 계정을 확인할 때까지 있습니다. 이 경우 (이메일로) verified이 비어있게됩니다. 비밀번호를 잊어 버렸습니까? 또는 비밀번호를 잊어 버렸습니까?

은 사용자가 텍스트 상자에 유형, 자신의 이메일 확인을 다시 자신의 이메일을 수신하고자하는 경우, 4 개 가능한 경우가 있습니다

  1. 비 유효한 이메일 ->하시기 바랍니다 - 올바른 - 네 - email.php로
  2. 유효한 이메일은 -> -이 - 메일입니다 -하지 - found.php
  3. 유효한 이메일 + 검증 DB +에서 발견 -> IS-이미 verified.php
  4. 유효한 이메일을 + DB에있는 + 아직 확인되지 - > still-not-verified.php

제 질문은 제 논리와 구조가 정확하고 뭔가 잊어 버린 경우입니다. 그것은 올바르게 작동하지만.

if ($_POST["email"]) { 

require_once('config.php'); 

    $errflag = false; 

$send2email = mysql_real_escape_string($_POST["email"]); 

    if (!filter_var($send2email, FILTER_VALIDATE_EMAIL)) { 
    $errflag = true; 
    }  

    if($errflag) { 
     header("location: please-correct-your-email.php"); 
     exit(); 
    } 

    $qry = "SELECT verified FROM members WHERE email='$send2email'"; 
    $result = mysql_query($qry); 
    $member = mysql_fetch_assoc($result); 

    if($result) { 
     if (mysql_num_rows($result) == 0) { 
      header("location: this-email-is-not-found.php"); 
      exit(); 
     } 
     elseif ((mysql_num_rows($result) > 0) && ($member['verified'])) { 
      header("location: still-not-verified.php"); 
      exit(); 
     } 
    else { 
      header("location: is-already-verified.php"); 
      exit(); 
    } 
      } 

        } //this is for if post email 
+0

외모 보안 코드없이 이메일 확인 할 말이 없기 때문에

나는, 이동 것 괜찮아요, 약간은 회상되었지만 눈부신 실수는 없습니다. – Layke

+0

'$ member = mysql_fetch_assoc ($ result);'가'if ($ result) {}'안에있다. –

+0

사람들이 투표를 끝내기로 한 이유를 모르겠다. – EnexoOnoma

답변

0

부울 필드로 변경되었습니다. 대신 "그는이 확인되지 때, 필드가 그가, 필드가 비어 확인 때, 가득"의

verified BOOLEAN 
------------------ 
1 
0 

을 의미한다. 조금 혼란 스럽네. 나는 확인 코드를 추가 할 것

$member = mysql_fetch_assoc($result); 

if ($result){ 

후에는 (확인 코드)

+0

감사합니다. 'verified'는'md5 (mcrypt_create_iv (32, MCRYPT_DEV_URANDOM))'를 유지하고 사용자가 확인되면 비어있게됩니다. 그것은 최상의 솔루션이 아닐지 모르지만 지금까지 작동합니다 ... – EnexoOnoma

+0

하지만 확인은 전자 메일 – genesis

+0

@Nikolai를 통해서만 가능합니다. 검증 된 필드를 사용하여 사용자에게 보낸 인증 코드를 실제로 확인한 경우 '검증 코드 '가 아니라'validationcode'라고 불러야합니다. 어쨌든 IMO 질의'select count (*) FROM members where email = '$ send2email'및 validationcode is not NULL'는 내가 알고있는 _minor의 차이를 명확히합니다 ._ – Johan

관련 문제