2

私は CMS を使用しており、CMS フォルダーの外部でモバイル サイトを開発しています。CMS のすべての機能を使用するために、CMS ファイルを含めました。

<?php include_once'/home/flyeurov/public_html/core/codon.config.php';?>

モバイル サイトには、ログイン フォームがあります。含まれているファイルの関数を使用して、情報が CMS に送信されます。

<form name="loginform" action="<?php echo url('/login');?>" method="post">

送信すると、site_url/index.php/login に移動します。フォームの [送信] ボタンのすぐ上にあるリダイレクト入力を非表示にしましたが、/mobile ディレクトリを見つけるために、ディレクトリに関して戻ることができるようにしたいと考えています。

<input type="hidden" name="redir" value="../mobile/crew_center.php" />
<input type="hidden" name="action" value="login" />
<input class="login-btn" type="submit" name="submit" value="Log In" />

これにより、m.site_url/crew_center.php (「m」は /mobile ディレクトリのパス) にリダイレクトされるはずですが、代わりに次のようにリダイレクトされ、戻ることを拒否します。

site_url/index.php/mobile/crew_center.php

正しくリダイレ​​クトするにはどうすればよいですか?誰も混乱させていないことを願っています。

4

1 に答える 1

2

CMS ファイルで、これを置き換えます。

$this->post->redir = str_replace('index.php/', '', $this->post->redir);
header('Location: '.url('/'.$this->post->redir));

これとともに:

if (isset($_POST['mobileVersion'])) {
    header('Location: ' . $_SERVER['DOCUMENT_ROOT'] . '/crew_center.php');
} else {
    $this->post->redir = str_replace('index.php/', '', $this->post->redir);
    header('Location: '.url('/'.$this->post->redir));
}

ログイン フォームの HTML に、別の非表示の入力を追加します。

<input type="hidden" name="mobileVersion" value="True">

これが私が考えることができる唯一の方法です。

于 2013-07-25T18:45:38.777 に答える