0

PHPファイルに含まれている2つの異なるフォームがあります。それらの可視性は、onClick JS トグル関数に基づいています。トグルはうまく機能します。ただし、フォームの 1 つだけに入力してそれぞれの送信ボタンをクリックすると、ブラウザで指定した action.php ファイルではなく、同じページに送り返されます。

http://localhost/?user_temp=f&pass_temp1=f&pass_temp2=ff&email_temp=f&answer1=3&submitbtn=Signup+Now

そして、このJavascriptエラー:「TypeError undefined document.hform.sSecureUser

両方のフォームには、一部のデータを MD5 に変換する独自の JavaScript もあり、sSecureUser はサインアップ フォームから取得されます。

興味深いことに、送信フォームだけを残して inlcude フォームの 1 つを削除した場合、それは機能します。これらのフォームの JavaScript が互いに衝突しているようです :/ ...

これを試しましたが、フォームのそれぞれが Java スクリプトを使用しているため、うまくいきませんでした。助けてください、事前に感謝します!!!...私のフォーム、javascript、またはphpファイルのいずれかを見たい場合はお知らせください...

トグル コード:

<div>
<a href="/forms/login-form.php" onclick="toggle_visibility('login-div'); return false;">Login</a>
    <div id="login-div" style="display:none">
        <?php include($_SERVER['DOCUMENT_ROOT'].'/forms/login-form.php');?>         
    </div>
<a href="/forms/signup-form.php" onclick="toggle_visibility('signup-div'); return false;">Sign up</a>
    <div id="signup-div" style="display:none">
        <?php include($_SERVER['DOCUMENT_ROOT'].'/forms/signup-form.php'); ?>           
    </div>
        <script type="text/javascript">
            <!--
                function toggle_visibility(id) {
                        var e = document.getElementById(id);
                       if(e.style.display == 'block'){
                          e.style.display = 'none';
                          }
                       else{
                          e.style.display = 'block';
                          }
                }
            //-->
        </script>       
</div>

ログインフォーム:

<div id="hasJavaScript1" style="display:none">
    <form name="login">
        Username:
        <input type="text" name="user_temp" size=32 maxlength=32><br>
        Password:
        <input type="password" name="pass_temp" size=32 maxlength=32><br>
        <input onClick="passResponse(); return false;" type="submit" name="submitbtn" value="Login now">
    </form>

    <form action="/action/login-action.php" METHOD="POST" name="hform">
        <input type="hidden" name="secureuser">
        <input type="hidden" name="securepass">
    </form>
</div>

<script language="javascript" src="/js/md5.js"></script>
<script language="javascript">
<!--
document.getElementById('hasJavaScript1').style.display = 'block';

function passResponse() {
document.hform.secureuser.value = MD5(document.login.user_temp.value);
document.hform.securepass.value = MD5(document.login.pass_temp.value);
document.login.pass_temp.value = "";
document.hform.submit();

}
// -->
</script>

サインアップフォーム:

<?php include ($_SERVER['DOCUMENT_ROOT'].'/functions/functions.php');?>
<div id="hasJavaScript" style="display:none">
<form name="signup">
    <label>Username</label> <input type="text" name="user_temp" size=32 maxlength=32><span>alphanumeric, no spaces</span><br>
    <label>Type password</label> <input type="password" name="pass_temp1" size=32 maxlength=32><span>alphanumeric, 8-12 long</span><br>
    <label>Retype password</label> <input type="password" name="pass_temp2" size=32 maxlength=32><br>
    <label>Email</label> <input type="text" name="email_temp" size=32 maxlength=32><br>
    <label> What is: </label><?php $captchaArray = myCaptcha(); echo $captchaArray['equation'];?><br>
    <label>Answer</label><input type="text" name="answer1">
    <input onClick="passResponse1(); return false;" type="submit" name="submitbtn" value="Signup Now">
</form>

<form action="/action/signup-action.php" METHOD="POST" name="signup-hform">
        <input type="hidden" name="sSecureUser">
        <input type="hidden" name="sSecurePass1">
        <input type="hidden" name="sSecurePass2">
        <input type="hidden" name="secureEmail">
        <input type="hidden" name="answer2">
        <input type="hidden" name="checker" value=".<?php echo $captchaArray['answer'];?> .">
</form>
</div>


<script language="javascript" src="/js/md5.js"></script>


  <script language="javascript">
<!--
document.getElementById('hasJavaScript').style.display = 'block';

function passResponse1() {
document.signup-hform.sSecureUser.value = MD5(document.signup.user_temp.value);
document.signup-hform.sSecurePass1.value = MD5(document.signup.pass_temp1.value);
document.signup.pass_temp1.value = "";
document.signup-hform.sSecurePass2.value = MD5(document.signup.pass_temp2.value);
document.signup.pass_temp2.value = "";
document.signup-hform.secureEmail.value = MD5(document.signup.email_temp.value);
document.signup-hform.answer2.value = document.signup.answer1.value;
document.signup.answer1.value = "";
document.signup-hform.submit();

}
// -->
</script>
4

1 に答える 1