2016-01-30 2 views
0

Для стандартного сценария я использую имя пользователя для входа. Однако может быть кто-то, кто забыл свое имя пользователя, и я хочу дать возможность войти в систему, используя электронную почту.Изменение входа в систему с использованием электронной почты

Сценарий, приведенный ниже, можно редактировать, используя электронную почту, заменив username на email.

Однако после успешного входа в систему, который отображается в учетной записи вместо имени пользователя, но адрес электронной почты.

Не могли бы вы дать решение этой проблемы?

Мой код:

<?php 
include('config.php'); 
if(isset($_SESSION['username'])) 
{ 
?> 
<html> 
    <head> 
     <title>LogIn</title> 
    </head> 
    <body> 
     <div class='message'>You're logged in !!</div> 
    </body> 
</html> 
<?php 
} 
else 
{ 
    $ousername = ''; 
    if(isset($_POST['username'], $_POST['password'])) 
    { 
     if(get_magic_quotes_gpc()) 
     { 
      $ousername = stripslashes($_POST['username']); 
      $username = mysql_real_escape_string(stripslashes($_POST['username'])); 
      $password = stripslashes($_POST['password']); 
     } 
     else 
     { 
      $username = mysql_real_escape_string($_POST['username']); 
      $password = $_POST['password']; 
     } 
     $req = mysql_query('select password,id from users where username="'.$username.'"'); 
     $dn = mysql_fetch_array($req); 
     if($dn['password']==sha1($password) and mysql_num_rows($req)>0) 
     { 
      $form = false; 
      $_SESSION['username'] = $_POST['username']; 
      $_SESSION['userid'] = $dn['id']; 
      if(isset($_POST['memorize']) and $_POST['memorize']=='yes') 
      { 
       $one_year = time()+(60*60*24*365); 
       setcookie('username', $_POST['username'], $one_year); 
       setcookie('password', sha1($password), $one_year); 
      } 
?> 

<html> 
    <head> 
     <title>LogIn</title> 
    </head> 
    <body> 
<div class='message'>Login Success</div> 
<?php 
     } 
     else 
     { 
      $form = true; 
      $message = 'Username and password not match'; 
     } 
    } 
    else 
    { 
     $form = true; 
    } 
    if($form) 
    { 
?> 
</body> 
</html> 

<html> 
    <head> 
     <title>LogIn</title> 
    </head> 
    <body> 
<?php 
if(isset($message)) 
{ 
    echo '<div class="message">'.$message.'</div>'; 
} 
?> 

    <form method='post'> 
     <div class='login'> 
      <label for='username'>Username</label><input type='text' name='username' id='username' /><br /> 
      <label for='password'>Password</label><input type='password' name='password' id='password' /><br /> 
      <input type='submit' value='Masuk' /> 
     </div> 
    </form> 

<?php 
    } 
} 
?> 
    </body> 
</html> 

ответ

0

Вы можете запустить запрос как select id,password,username FROM tbl WHERE username='username' OR email = 'email'

Так эта работа запрос в обоих случаях либо он хочет войти, используя имя пользователя или адрес электронной почты.

После этого, если пароль соответствует затем присвоить имя пользователя (который мы недавно принесли с помощью запроса на выборку) на сессию ..

Я надеюсь, что я понимаю ваш вопрос. правильно?

+0

Это не помогло боссу – Kangsigit

+0

Хорошо, тогда что случилось? и что вы хотите сделать? объясните мне подробно, чтобы я мог вам помочь. –

Смежные вопросы