一表/提交两项行动

时间:2013-09-18 18:32:10

标签: php forms login submit action

我的网站有点问题。我有phpbb集成到我的网站和主页上的登录表单。此表单需要执行两个不同的操作。它首先需要运行ucp.php(登录到phpbb)以及login.php(隐藏表单并在主屏幕上添加控制面板)。它们都是自己工作的,我只需要一种方法在用户登录时将它们放在一起。我已经研究了一段时间而无法找到解决方案。谢谢你的进步,Josh

我需要结合这个

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

用这个

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

2 个答案:

答案 0 :(得分:1)

如果你必须“合并”这样的东西,我认为你的代码中存在严重的设计问题,但无论如何:

只需创建一个新文件,即。 post_handler.php并将此代码投入其中:

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

将其放在login.php。

所在的目录中

然后调整您的表单以指向post_handler.php?mode=login

合并这样的文件可能会导致意想不到的结果......

另一个选项,虽然更复杂,但可以使用login.php作为您的操作,并对其中的forums/ucp.php执行curl请求。 (在php.net文档中搜索Curl)

不幸的是,我无法给出更多建议,因为你想要做的事情可能更复杂,然后可以在这里轻松回答。

答案 1 :(得分: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>