<?
  /*
   * 由使用者輸入帳號及註冊信箱，程式將判斷是否符合，再決定是否產生新密碼，送至使用者原註冊信箱。
   * 接收由 forget_password.php 傳來的 $_GET["user"] 資料，產生新密碼後送回使用者的信箱。
   */

  require_once ("./etc/init.php");
  include_once ("./etc/funs.php");

  // 第一次要求使用者輸入帳號及註冊信箱
  if ($_POST["user"]=="" || $_POST["email"]=="")
  {
    echo '
    <HTML>
    <HEAD>
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
      <TITLE> Hadoop 帳號 </TITLE>
    <SCRIPT LANGUAGE="javascript">
      function check_data()
      {
        if (document.myForm.user.value.length == 0)
        {
          alert("帳號不可空白");
          return false;
        }

        var mailString = document.myForm.email.value;
        var pattern=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  
        if (!pattern.exec(mailString) )
        {
          alert(mailString + " : E-mail 格式錯誤");
          return false;
        }
        myForm.submit();
      }
    </SCRIPT>
    <FORM ACTION="forget_password.php" METHOD="post" NAME="myForm">
      <TABLE WIDTH="40%" ALIGN="center">
        <TR>
          <TD ALIGN="center">
            <FONT COLOR="#3333FF">帳號：</FONT>
            <INPUT NAME="user" TYPE="text" SIZE="15">
          </TD>
        </TR>
	<TR>
	  <TD ALIGN="center">
	    <FONT COLOR="#3333FF">註冊信箱：</FONT>
            <INPUT NAME="email" TYPE="text" SIZE="15">
          </TD>
        </TR>
        <TR>
          <TD ALIGN="center">
	    <INPUT TYPE="button" VALUE="送出" onClick="check_data()">
	    <INPUT TYPE="reset" VALUE="重填">
          </TD>
        </TR>
      </TABLE>
    </FORM>
    </HTML>
	';	
  }

  // 當使用者輸入完帳號及註冊信箱後
  else
  {
    $my_user = new W_user();
    $my_user->user = $_POST["user"];
    $my_user->email = $_POST["email"];

    // 連結資料庫
    $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
    mysql_select_db($mysql_database, $link) or die(mysql_error() );
    mysql_query("SET NAMES 'utf8'");
    
    // 判斷此帳號密碼是否存在
    $str = sprintf("SELECT `id` FROM `%s` WHERE  `user` LIKE '%s' and `email` LIKE '%s' limit 1", $mysql_table, $my_user->user, $my_user->email);
    $result = mysql_query($str , $link) or die(mysql_error() );
    if (mysql_num_rows($result) == 1)
    {

      // 更新使用者密碼
      $my_user->new_password = $my_user->get_new_password();		// 取得新密碼
      $str = sprintf("UPDATE `%s` SET `password` = '%s' WHERE `user` LIKE '%s' ", $mysql_table, md5($my_user->new_password), $my_user->user);
      mysql_query($str , $link) or die(mysql_error() );
      mysql_close($link);
    
      // 寄送新密碼
      $my_user->operator = "new_password";		// user 需要更新密碼
      include ("smtp_mail.php");
      $my_user->redirect_to("$w_localhost", "新密碼寄送完畢");
    }
    else
    {
      $my_user->redirect_to("$w_localhost", "帳號與密碼不符合");
    }
  }
?>

