1

私のウェブサイトに少し問題があります。ウェブサイトに phpbb を統合し、ホームページにログイン フォームを設置しました。このフォームは、2 つの異なるアクションを実行する必要があります。最初に ucp.php (phpbb にログインするため) と login.php (フォームを非表示にしてホーム画面にコントロール パネルを追加するため) を実行する必要があります。どちらも単独で動作します。ユーザーがログインしたときにそれらを一緒にする方法が必要です。これについてしばらく調査しましたが、解決策が見つかりません。前もって感謝します、ジョシュ

これを組み合わせる必要があります

<form action="./forums/ucp.php?mode=login" method="post" enctype="multipart/form-data"> 

これとともに

<form action="login.php" method="post" enctype="multipart/form-data"> 
4

2 に答える 2

1

そのようなものを「マージ」する必要がある場合、コードに深刻な設計上の問題があると思いますが、いずれにせよ:

新しいファイルを作成するだけです。post_handler.phpその中にこのコードを投げます:

<?php
include('forums/upc.php');
include('login.php');
?>

login.php と同じディレクトリに配置します。

次に、フォームが を指すように調整しますpost_handler.php?mode=login

もちろん、そのようなファイルをマージすると、クレイジーで予期しない結果になる可能性があります..

もう 1 つのオプションは、より複雑ですが、 をlogin.phpアクションとして使用し、その中で curl リクエストを実行するforums/ucp.phpことです。(php.net ドキュメントで Curl を検索)

残念ながら、あなたがやろうとしていることは、おそらくここで簡単に答えられるものよりも複雑であるため、これ以上の提案をすることはできません.

于 2013-09-18T18:42:34.633 に答える
0

まあ、ajaxでトリックを試すことができます。jquery で動作するはずの例を次に示します。preventDefaut() がここで問題にならず、.submit() を使用できるかどうかはわかりません。うまくいかない場合。すべてを関数に入れ、preventDefault を削除し、この関数を送信ボタンにバインドしてみてください。

<form id="form_id" action="login.php" method="post" enctype="multipart/form-data">
User name: <inputy type="text" id="username" name="username" />

</form>

<script type="text/javascript">
    $(function() {
      //we prevent normal form submit
      $('#form_id').preventDefault();
      var data = {} ;
          //here u build data u want send by taking it from form field by field
      //example
      data['username'] = $('#username');

          //and you send this data via ajax to your upc script
          $.ajax({
        type: "POST",
        url: '/forums/ucp.php?mode=login',
        data: data,
                //in case of succes we send form normal way
        success: function( xhr ) { $('#form_id').submit(); },
        dataType: String
        });

    });

<script> 
于 2013-09-18T19:26:55.093 に答える