-1

私は2つのphpページを持っています。index.php と functions.php。index.php では、functions.php から login 関数とパスワード変更関数を呼び出します。私の問題は、ログインをクリックすると、ログイン フォームが changepassword フォームに沿って表示されることです。助けてください!!

これが私のコードです:index.php

<?php session_start(); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Login to the site</title>
</head>
<body>

<form action="index.php?act=login" method="post" id= "user_login" >
<center>
<table>
            <tr>
                    <td>User Login</td>
                    <td><a href="index.php?act=login" >Click Here</a></td>
            </tr>
            <tr>
                    <td>Forgot Password?</td>
                    <td><a href="index.php?act=forgotpassword">Click Here</a></td>
            </tr>
     </center>
     <table>

     </form>

     <?php
     include "functions.php";
     $action_type = $_GET["act"];
     $form_name = $_GET["name"];
     if ($action_type == "login")
     { 
      return login();
     }
     elseif ($action_type == "forgotpassword")
     {
     return forgotpassword();
     }
     elseif ($action_type == "changepassword")
     {
     return changepassword();
     }

     ?>

     </body>
     </html>

functions.php:

function login()
 {
     echo' <script type="text/javascript">
function showhide() {
  var form = document.getElementById("login");
    if (form.style.visibility == "visible") {
form.style.visibility = "hidden";
}

}
   </script>
    <form action="index.php?act=login" method="post" id="login" >
    <center>
    <table cellpadding="2" cellspacing="2" border="0">
            <tr>
        <td width="30%" align="right">Username</td>
        <td width="70%"><input type="text" name="user" id="text_user"/></td>
            </tr>
            <tr>
                    <td align="right">Password</td>
                    <td><input type="password" name="pass" id="text_pass"  /></td>
            </tr>
            <tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" value="login" name="submit"   onsubmit="showhide()" /></td>
            </tr>
    </center>
            </table>
       </form> </body></html>';

// login code goes here                


   }

   function changepassword()
   {
    echo'<form action ="index.php?act=changepassword" method="post" >
    <table cellpadding="2" cellspacing="2" border="0">
            <tr>
                    <td>Existing Password</td>
                    <td><input type="password" value="" name="pass" id="text_pass" /></td>
            </tr>
            <tr>
                    <td>New Password</td>
                    <td><input type="password" value="" name="cpass" id="text_cpass"/></td>
            </tr>
            <tr>
                    <td>Retype Password</td>
                    <td><input type="password" value="" name="crepass" id="text_crepass" /></td>
            </tr>
            <tr>
                    <td><input type="submit" value="change" name="submit" /></td>
            </tr>
    </table>
            <tr align = "left"> <td><br><a href="index.php?act=logout">LogOut</a></br> </td></tr>


     </form>';

     // changepassword code goes here


     }

   ?>
4

5 に答える 5

1

あなたのコードはこのようにすべきだと思います

test.php

<?php session_start(); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Login to the site</title>
</head>
<body>

<form action="test.php?act=login" method="post" id= "user_login" >
<center>
<table>
            <tr>
                    <td>User Login</td>
                    <td><a href="test.php?act=login" >Click Here</a></td>
            </tr>
            <tr>
                    <td>Forgot Password?</td>
                    <td><a href="test.php?act=forgotpassword">Click Here</a></td>
            </tr>
     </center>
     <table>

     </form>

     <?php
     include "functions.php";
     if(isset( $_GET["act"])) {
        $action_type = $_GET["act"];
        if ($action_type == "login")
     { 
      return login();
     }
     elseif ($action_type == "forgotpassword")
     {
     return forgotpassword();
     }
     elseif ($action_type == "changepassword")
     {
     return changepassword();
     }  
     }
     elseif(isset($_GET["name"])) {
        $form_name = $_GET["name"]; 
     }



     ?>

     </body>
     </html>

そしてあなたのfunctions.phpページ

<?php
function login()
 {
     echo' <script type="text/javascript">
function showhide() {
  var form = document.getElementById("login");
    if (form.style.visibility == "visible") {
form.style.visibility = "hidden";
}

}
   </script>
    <form action="index.php?act=login" method="post" id="login" >
    <center>
    <table cellpadding="2" cellspacing="2" border="0">
            <tr>
        <td width="30%" align="right">Username</td>
        <td width="70%"><input type="text" name="user" id="text_user"/></td>
            </tr>
            <tr>
                    <td align="right">Password</td>
                    <td><input type="password" name="pass" id="text_pass"  /></td>
            </tr>
            <tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" value="login" name="submit"   onsubmit="showhide()" /></td>
            </tr>
    </center>
            </table>
       </form> </body></html>';

// login code goes here                


   }

   function changepassword()
   {
    echo'<form action ="index.php?act=changepassword" method="post" >
    <table cellpadding="2" cellspacing="2" border="0">
            <tr>
                    <td>Existing Password</td>
                    <td><input type="password" value="" name="pass" id="text_pass" /></td>
            </tr>
            <tr>
                    <td>New Password</td>
                    <td><input type="password" value="" name="cpass" id="text_cpass"/></td>
            </tr>
            <tr>
                    <td>Retype Password</td>
                    <td><input type="password" value="" name="crepass" id="text_crepass" /></td>
            </tr>
            <tr>
                    <td><input type="submit" value="change" name="submit" /></td>
            </tr>
    </table>
            <tr align = "left"> <td><br><a href="index.php?act=logout">LogOut</a></br> </td></tr>


     </form>';
     }

      function forgotpassword()
   {
    echo'<form action ="index.php?act=changepassword" method="post" >
    <table cellpadding="2" cellspacing="2" border="0">
            <tr>
                    <td>Existing Password</td>
                    <td><input type="password" value="" name="pass" id="text_pass" /></td>
            </tr>
            <tr>
                    <td>New Password</td>
                    <td><input type="password" value="" name="cpass" id="text_cpass"/></td>
            </tr>
            <tr>
                    <td>Retype Password</td>
                    <td><input type="password" value="" name="crepass" id="text_crepass" /></td>
            </tr>
            <tr>
                    <td><input type="submit" value="change" name="submit" /></td>
            </tr>
    </table>
            <tr align = "left"> <td><br><a href="index.php?act=logout">LogOut</a></br> </td></tr>


     </form>';
     }

?>

コードでforgotpassword関数が宣言されていることを覚えておいてください。そのため、changepassword関数をコピーし、名前をforgotpassword関数に変更して例を示します。

于 2013-01-24T09:40:35.257 に答える
0

switch渡されたアクションを確認し、それに応じてフォームを表示するために使用します。

include "functions.php";
$action_type = $_GET["act"];
$form_name = $_GET["name"];

switch($action_type)
{ 
      case 'login':
          login();
          break;
      case 'forgotpassword' :
          forgotpassword();
          break;
      case 'changepassword' :
          changepassword();
          break;
      default :
          login();
          break;
}
于 2013-01-24T09:39:05.823 に答える
0

コードを変更する:

<?php
 include "functions.php";
 $action_type = $_GET["act"];
 $form_name = $_GET["name"];
 if ($action_type == "login")
 { 
  return login();
 }
 elseif ($action_type == "forgotpassword")
 {
 return forgotpassword();
 }
 elseif ($action_type == "changepassword")
 {
 return changepassword();
 }

 ?>

に :

 <?php

    include "function.php";
    $action = isset($_REQUEST['act'])?$_REQUEST['act'] : "";
    switch($action)
    {
        case 'login':
            login();
            break;

        case 'forgotpassword':
            changepassword();
            break;  
    }

 ?>
于 2013-01-24T09:40:22.873 に答える
0
<form action="index.php?act=login" method="post" id= "user_login" >

これを次のように変更します

<form action="index.php" method="post" id= "user_login" >
于 2013-01-24T11:23:28.623 に答える
0

index.php から<form>および</form>タグを削除する必要があります

index.php から以下の 2 行を削除します

<form action="index.php?act=login" method="post" id= "user_login" >

</form
于 2013-01-24T09:32:41.120 に答える