Changeset 63


Ignore:
Timestamp:
Apr 24, 2009, 3:23:32 PM (16 years ago)
Author:
wade
Message:
  • 2009-04-23 加入 forget_password.php 的 UTF8 編碼。
  • 2009-04-23 新增 log 檔。
  • 2009-04-24 判斷 forget_password.php 中使用者輸入的帳號與密碼是否符合。


Location:
hadoop-register
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • hadoop-register/etc/funs.php

    r59 r63  
    9292    function get_new_password()
    9393    {
    94       return rand();
    95     }
     94      return rand();
     95    }
    9696
    97     function test()
    98     {
    99       echo "<br>========";
    100       echo "<br>this is in W_user->test() <br>";
    101             $str = "<br><A href=http://" . "$w_localhost" . "check_activate_code.php?user=" .
    102                $this->user . "&" . "act=" . $this->activate_code . ">啟動 Hadoop 帳號</A>";
    103       //echo $this->user;
    104       //echo $this->activate_code;
    105     }
    106   }
     97    function test()
     98    {
     99      echo "<br>========";
     100      echo "<br>this is in W_user->test() <br>";
     101      $str = "<br><A href=http://" . "$w_localhost" . "check_activate_code.php?user=" .
     102      $this->user . "&" . "act=" . $this->activate_code . ">啟動 Hadoop 帳號</A>";
     103      //echo $this->user;
     104      //echo $this->activate_code;
     105      }
     106    }
    107107?>
  • hadoop-register/etc/init.php

    r59 r63  
    11<?
    2    // echo "載入 init.php";
    3    /*
    4     * mysql 主機帳號設定,檔案路徑設定
    5     * mail server 設定, 郵件 subject 內容設定在 smtp_mai.php
    6     */
     2    // echo "載入 init.php";
     3    /*
     4     * mysql 主機帳號設定,檔案路徑設定
     5     * mail server 設定, 郵件 subject 內容設定在 smtp_mai.php
     6     */
    77 
    8   // [本機設定]
    9   // 設定主機網址
    10   $w_localhost = "example.com/";
     8  // [本機設定]
     9  // 設定主機網址
     10  $w_localhost = "hadoop.nchc.org.tw";
    1111 
    1212
    13   // [mysql 設定]
    14   // mysql 主機位址
    15   $mysql_host = 'localhost';
     13  // [mysql 設定]
     14    // mysql 主機位址
     15  $mysql_host = 'localhost';
    1616
    17   // mysql 帳號
    18   $mysql_user = 'hadoop';
     17    // mysql 帳號
     18  $mysql_user = 'hadoop';
    1919   
    20   // mysql 密碼
    21   $mysql_password = 'hadoop-password';
     20    // mysql 密碼
     21  $mysql_password = 'hadoop';
    2222
    23   // mysql 資料庫
    24   $mysql_database = 'hadoop';
     23    // mysql 資料庫
     24  $mysql_database = 'hadoop';
    2525 
    26   // mysql 資料表
    27   $mysql_table = 'hadoop_reg';    // 基本使用者資料表
    28   $mysql_table_owner = 'hadoop_owner';  // hadoop 帳號分配擁有者
     26    // mysql 資料表
     27    $mysql_table = 'hadoop_reg';        // 基本使用者資料表
     28  $mysql_table_owner = 'hadoop_owner';  // hadoop 帳號分配擁有者
    2929   
    30   // [mail 設定]
    31   // mail server host
    32   $mail_server_host = 'smtp.gmail.com';
     30    // [mail 設定]
     31  // mail server host
     32  $mail_server_host = 'smtp.gmail.com';
    3333
    34   // mail account
    35   $mail_account = 'user@gmail.com';
    36   $mail_account_name = 'Hadoop admin';
     34  // mail account
     35  $mail_account = 'nchcdrbl@gmail.com';
     36    $mail_account_name = 'Hadoop admin';
    3737
    38   // mail user
    39   $mail_user = 'user@gmail.com';
     38  // mail user
     39    $mail_user = 'nchcdrbl@gmail.com';
    4040
    41   // mail password
    42   $mail_password = 'password of user@gmail.com';
     41    // mail password
     42    $mail_password = '0911772703';
    4343 
    4444?>
  • hadoop-register/forget_password.php

    r58 r63  
    11<?
    2   /*
    3      * 由使用者輸入帳號及註冊信箱,程式將判斷是否符合,再決定是否產生新密碼,送至使用者原註冊信箱。
    4   * 接收由 forget_password.php 傳來的 $_GET["user"] 資料,產生新密碼後送回使用者的信箱。
    5   */
     2  /*
     3   * 由使用者輸入帳號及註冊信箱,程式將判斷是否符合,再決定是否產生新密碼,送至使用者原註冊信箱。
     4  * 接收由 forget_password.php 傳來的 $_GET["user"] 資料,產生新密碼後送回使用者的信箱。
     5  */
    66
    7   require_once ("./etc/init.php");
    8   include_once ("./etc/funs.php");
     7  require_once ("./etc/init.php");
     8  include_once ("./etc/funs.php");
    99
    10   // 第一次要求使用者輸入帳號及註冊信箱
    11   if ($_POST["user"]=="" || $_POST["email"]=="")
    12   {
    13     echo '
    14       <SCRIPT LANGUAGE="javascript">
    15         function check_data()
     10  // 第一次要求使用者輸入帳號及註冊信箱
     11  if ($_POST["user"]=="" || $_POST["email"]=="")
     12  {
     13    echo '
     14    <HTML>
     15    <HEAD>
     16      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
     17      <TITLE> Hadoop 帳號 </TITLE>
     18    <SCRIPT LANGUAGE="javascript">
     19      function check_data()
     20      {
     21        if (document.myForm.user.value.length == 0)
    1622        {
    17             if (document.myForm.user.value.length == 0)
    18             {
    19                 alert("帳號不可空白");
    20                 return false;
    21             }
    22             if (document.myForm.email.value.length == 0)
    23             {
    24                 alert("E-mail不可空白");
    25                 return false;
    26             }   
     23          alert("帳號不可空白");
     24          return false;
     25        }
     26
     27        var mailString = document.myForm.email.value;
     28        var pattern=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
     29        if (!pattern.exec(mailString) )
     30        {
     31          alert(mailString + " : E-mail 格式錯誤");
     32          return false;
     33        }
    2734        myForm.submit();
    28         }
    29       </SCRIPT>
     35      }
     36    </SCRIPT>
     37    <FORM ACTION="forget_password.php" METHOD="post" NAME="myForm">
     38      <TABLE WIDTH="40%" ALIGN="center">
     39        <TR>
     40          <TD ALIGN="center">
     41            <FONT COLOR="#3333FF">帳號:</FONT>
     42            <INPUT NAME="user" TYPE="text" SIZE="15">
     43          </TD>
     44        </TR>
     45  <TR>
     46    <TD ALIGN="center">
     47      <FONT COLOR="#3333FF">註冊信箱:</FONT>
     48            <INPUT NAME="email" TYPE="text" SIZE="15">
     49          </TD>
     50        </TR>
     51        <TR>
     52          <TD ALIGN="center">
     53      <INPUT TYPE="button" VALUE="送出" onClick="check_data()">
     54      <INPUT TYPE="reset" VALUE="重填">
     55          </TD>
     56        </TR>
     57      </TABLE>
     58    </FORM>
     59    </HTML>
     60  '; 
     61  }
    3062
    31     <FORM ACTION="forget_password.php" METHOD="post" NAME="myForm">
    32             <TABLE WIDTH="40%" ALIGN="center">
    33                 <TR>
    34                     <TD ALIGN="center">
    35                         <FONT COLOR="#3333FF">帳號:</FONT>
    36                         <INPUT NAME="user" TYPE="text" SIZE="15">
    37                     </TD>
    38                 </TR>
    39                 <TR>
    40                     <TD ALIGN="center">
    41                         <FONT COLOR="#3333FF">註冊信箱:</FONT>
    42                         <INPUT NAME="email" TYPE="text" SIZE="15">
    43                     </TD>
    44                 </TR>
    45                 <TR>
    46                     <TD ALIGN="center">
    47                         <INPUT TYPE="button" VALUE="送出" onClick="check_data()">
    48             <INPUT TYPE="reset" VALUE="重填">
    49                     </TD>
    50                 </TR>
    51             </TABLE>
    52         </FORM>
    53     '; 
    54   }
     63  // 當使用者輸入完帳號及註冊信箱後
     64  else
     65  {
     66    $my_user = new W_user();
     67    $my_user->user = $_POST["user"];
     68    $my_user->email = $_POST["email"];
    5569
    56   // 當使用者輸入完帳號及註冊信箱後
    57   else
    58   {
    59     $my_user = new W_user();
    60     $my_user->user = $_POST["user"];
    61     $my_user->email = $_POST["email"];
    62     $my_user->new_password = $my_user->get_new_password();    // 取得新密碼
     70    // 連結資料庫
     71    $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
     72    mysql_select_db($mysql_database, $link) or die(mysql_error() );
     73    mysql_query("SET NAMES 'utf8'");
     74   
     75    // 判斷此帳號密碼是否存在
     76    $str = sprintf("SELECT `id` FROM `%s` WHERE  `name` LIKE '%s' and `email` LIKE '%s' limit 1", $mysql_table, $my_user->user, $my_user->email);
     77    $result = mysql_query($str , $link) or die(mysql_error() );
     78    if (mysql_num_rows($result) == 1)
     79    {
    6380
    64     // 連結資料庫
    65       $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
    66       mysql_select_db($mysql_database, $link) or die(mysql_error() );
    67       mysql_query("SET NAMES 'utf8'");
    68 
    69       // 更新使用者認證碼
    70       $str = sprintf("UPDATE `%s` SET `password` = '%s' WHERE `user` LIKE '%s' ", $mysql_table, md5($my_user->new_password), $my_user->user);
    71       mysql_query($str , $link) or die(mysql_error() );
    72       mysql_close($link);
    73 
    74     // 寄送新密碼
    75     $my_user->operator = "new_password";    // user 需要更新密碼
    76     include ("smtp_mail.php");
    77     $my_user->redirect_to("http://$w_localhost", "新密碼寄送完畢");
    78 
    79   }
     81      // 更新使用者密碼
     82      $my_user->new_password = $my_user->get_new_password();    // 取得新密碼
     83      $str = sprintf("UPDATE `%s` SET `password` = '%s' WHERE `user` LIKE '%s' ", $mysql_table, md5($my_user->new_password), $my_user->user);
     84      mysql_query($str , $link) or die(mysql_error() );
     85      mysql_close($link);
     86   
     87      // 寄送新密碼
     88      $my_user->operator = "new_password";    // user 需要更新密碼
     89      include ("smtp_mail.php");
     90      $my_user->redirect_to("http://$w_localhost", "新密碼寄送完畢");
     91    }
     92    else
     93    {
     94      $my_user->redirect_to("http://$w_localhost", "帳號與密碼不符合");
     95    }
     96  }
    8097?>
    8198
  • hadoop-register/log

    r61 r63  
    11
    2  * 2009-04-22 增加 new_register.php 中 email 驗證
     2 * 2009-04-22 增加 new_register.php 中 email 驗證。
     3 * 2009-04-23 加入 forget_password.php 的 UTF8 編碼。
     4 * 2009-04-24 判斷 forget_password.php 中使用者輸入的帳號與密碼是否符合。
     5
Note: See TracChangeset for help on using the changeset viewer.