ユーザーがユーザー名とパスワードを入力するlogin.phpにhtmlフォームがあります。次に、html 関数の validateForm() を使用して、両方のフィールドにデータが入力されたことを検証します。これが true を返した場合、OCI を使用してデータベースに対してユーザー名が有効であり、パスワードの有効期限が切れていないことを検証する check_user_pw.php ファイルを呼び出します。これが true を返す場合、$str_submit 経由でログイン用のフォームを送信します。ユーザーが入力した情報をデータベースに問い合わせるために、ユーザーがフォームにデータを入力した後に実行する check_user_pw.php ファイルが必要です。フォームの送信前に validateForm() と check_user_pw.php の両方が実行されるように、php ファイルを onsubmit ボタンに追加する方法を教えてください。また、php ファイルから関数のようなブール値を返すことはできますか、それともパラメータを使用してログインに戻す必要がありますか。
login.php (部分コード):
<?php
<script>
function validateForm()
{
var u=document.forms["LoginForm"]["ssousername"].value;
var p=document.forms["LoginForm"]["password"].value;
var x=new Boolean(true);
if (u==null || u=="" || p==null || p=="")
{
alert("Username and password must be entered");
x=false;
}
return x;
}
</script>
<form action="<? php print($str_submit) ?>" onsubmit="return validateForm()" method="post" name="LoginForm" AutoComplete="off">
<input type='hidden' name='site2pstoretoken' value='<?php print($str_token) ?>'>
<input type='hidden' name='W_url' value='<?php print($str_submit) ?>'>
<input type='hidden' name='subscribername' value='<?php print($subscribername) ?>'>
<table id="logintab">
<tr><td><font class="standard_div">User Name:</font></td><td><input type='text' name='ssousername' size='25' maxlength='30' value=''></td>
<td><div class="notes_div">(not case sensitive)</div></td></tr>
<tr><td><div class="standard_div">Password:</div></td><td><input type='password' name='password' size='25' maxlength='30' value=''></td>
<td><div class="notes_div">(case sensitive)</div></td></tr>
</table>
</form>
<?
check_user_pw.php:
<?php
$ssousername = $_POST['ssousername'];
$ssousername = strtoupper($ssousername);
//Clear out variables
unset($g_enabled_yn, $g_msg, $g_pw_last_chg, $pw_to_exp);
$today = date('m/d/y');
$today_p10 = date('m/d/y', strtotime('+' . 10 . ' days')); //today + 10 days
$c = ocilogon("a_imps", "*******", "test");
//Check if user enabled.
$s = ociparse($c, "begin a_imps.is_portal_user_enabled(:bv2, :bv3, :bv4); end;");
ocibindbyname($s, ":bv2", $ssousername); //input bind variable
ocibindbyname($s, ":bv3", $g_enabled_yn,1); //output bind variable
ocibindbyname($s, ":bv4", $g_msg,300); //output bind variable
ociexecute($s);
//Check pw expiration.
$s = ociparse($c, "begin :bv := ods.get_last_pwchg(:bv2); end;");
ocibindbyname($s, ":bv2", $ssousername); //input bind variable
ocibindbyname($s, ":bv", $g_pw_last_chg, 8); //output bind variable
ociexecute($s);
ocilogoff($c);
$ssousername = strtoupper($ssousername);
GLOBAL $ret;
$ret = true;
if ($g_enabled_yn == "N") //If account disabled, display message.-->
{
?>
<script>
alert("<? php print($g_msg) ?>");
</script>
<script> <!--Clear history and go back to main page-->
var Backlen=history.length;
history.go(-Backlen);
window.location.href="http://imps-forms.main_page"
</script>
<?php
$ret = false;
}
else
if ($g_pw_last_chg != "" && $g_pw_last_chg != null)
{
//60 days from last chg pw date, pw will expire. Change nbr below to 60
$pw_to_exp = date('m/d/y', strtotime($g_pw_last_chg. '+' . 80 . ' days'));
if ($pw_to_exp <= $today)
{
?>
<script type="text/javascript">
alert("Your password expired on <?php echo $pw_to_exp; ?>");
</script>
<script> <!--Clear history and go back to main page-->
var Backlen=history.length;
history.go(-Backlen);
window.location.href="http://imps-forms.main_page"
</script>
<?php
$ret = false;
}
}
return $ret;
?>