• 解決済 taiko namino

    (@taiko-namino)


    現在、フォームを作成しており、その上で
    wp_redirect関数や、header(‘Location: URL’)などでのリダイレクトが出来ず困っております。

    内容については下記の通りです
    3つのファイルを作成し、フォームの内容をセッションで渡しています。

    form1.php:フォーム入力画面
    form2.php:フォーム確認画面 ※不備があれば「form1.php」へリダイレクト
    form3.php:実行(フォーム内容をメールで送信)

    【問題点】
    「form2.php」で入力内容に不備があれば「form1.php」へのリダイレクトが上手く出来ません。

    <?php
    # session_startし、フォーム内容のエラーを確認します
    if(count($error) > 0) {
    # エラーがある場合は、入力フォーム「form1.php」に戻す
    $url = get_bloginfo('url').'/form1.php';
    wp_redirect($url);
    }else {
    ?>
    <?php get_header(); ?>
    # 以降はフォームの確認画面

    エラーは「wp-includes/pluggable.php on line 881」と表示されるのですが、どこがいけないのか内容が理解できませんでした。

    【試してみた事】
    リダイレクト部分を下記の様に記述しても、記述した箇所にエラーが出て、作動しませんでした。

    header('Location: '. $url);
     exit;

    全く別のページ「ex.php」を作成し、下記の様に記載した場合、上手く「form1.php」へリダイレクトしました

    <?php
    $url = get_bloginfo('url').'/form1.php';
    wp_redirect($url);
    ?>
    <?php get_header(); ?>
    <?php get_footer(); ?>

    セッションで渡す事が悪いのでしょうか?

    色々、検索して調べてみたのですが、どうしても理解できず困っております。
    ご存知の方がいらっしゃいましたら、ご教授頂ければ幸いです。
    よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • taiko namino さん

    全文書いてないので推測ですが、エラーメッセージが「Warning: Cannot modify header information – headers already sent by」であれば、どこかで表示の出力が行われてしまっているため、リダイレクトができませんということになります。
    そのどこかについては、上記のエラーメッセージに続く、「output started at」で行番号が示されているはずです。

    トピック投稿者 taiko namino

    (@taiko-namino)

    jim912様

    出来ました!

    上記のエラーメッセージに続く、「output started at」で行番号が示されているはずです。

    <?php の前に空白が入っていました。
    一日悩んでおりましたが、jim912様のアドバイスで直ぐに解決する事が出来ました!!
    本当にありがとうございます!!

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「「wp_redirect」でのリダイレクトができません」には新たに返信することはできません。