2012-02-08 9 views
0

私のサインイン手順はそのように見える動作しません:リダイレクトが正しく

  • ユーザーは、電子メールを埋め、Ajaxはreg_system.phpにこれらのフィールドを送り、フィールド
  • を渡します。ここにソースコードは ファイル

です。

if (isset($_POST['formID']) && !empty($_POST['formID'])) { 
    $registration = new registration($db); 
    $forms = array('signup_form', 'signin_form', 'tcr_form'); 
    if (in_array($_POST['formID'], $forms)) { 
     $redirect = ""; 
     switch ($_POST['formID']) { 
      case 'signin_form': 
       if ($registration->signin()) 
        $redirect ='me'; 
       break; 
      case 'tcr_form': 
      case 'signup_form': 
       $registration->signup(); 
       break; 
     } 
    } 
    if (!empty($redirect)) 
     header("Location:".wsurl."?page=".$redirect); 
} 

:wsurlは前に宣言し、正しい値です。それは、デバッグプロセス中 domain.com/?page=me

にリダイレクトする必要があります

  • 真を返す$registration->signin()場合、私はすべてがうまくいくことを確認し、$ registration->サインイン()関数は右ポストプロセスFirebugの後true.Butを返します。 XHRはリダイレクト 後に続いて

    enter image description here

    この画面を示します

    ページはそのままです:同じログインページにあります。スクリプトはどこにもリダイレクトされません。

    これは何が起こる可能性があるのか​​よく分かりませんが、チェックされた全体のデバッグプロセスはほぼ10倍です。 PHPはheader()の前に何も出力しません。

+0

なぜあなたはajaxリクエストをリダイレクトしますか? sumbissionの後でユーザーをリダイレクトする場合は、ajaxを使用するのではなく、単純なフォームを使用するか、ORを使用して、javascriptでユーザーをリダイレクトします(ajaxリクエストが成功した後は、この 'location.href =' ... ' –

+0

しかし、URLを手動で入力するとロードされますか? – Alex

+0

@ w0rldart yeah .. –

答えて

1

リダイレクトにJSを使用してみてください。それはPHPを介して行うよりも良いかもしれません。

<script type="text/javascript"> 
<!-- 
window.location = <?php echo wsurl."?page=".$redirect; ?>; 
//--> 
</script> 
+1

これはいつもphp._を使って行うよりも優れています。[引用要覧] –

+0

@Michael私の理論を裏付ける証拠は見つけられません。答えを編集しますね! :) – Roozbeh15

+0

これを試してみてください* * *) - ジョークを除いて、私はAJAXの成功ハンドラがそれを処理すべきだと思います。 – hakre

関連する問題