-3

こんにちは、次の「編集」アイコンがあり、それをクリックすると、同じページ内に新しいウィンドウ (iframe) (ライトボックスのようなもの) が開きます (更新などは行われません)。新しく開いた iframe には、入力が 1 つのフォームがあります。送信をクリックしたときに、関数 (同じ .php ファイル内) を使用して、値 (数値のみである可能性があります) が 299 を超えているかどうかを確認して、google.com にリダイレクトし、それ以外の場合は yahoo にリダイレクトしたいと思います。コム。(これらのサイトは単なる例です。) これが私の「編集」アイコン コードです。

<div id="login-holder"><a href="#skinid"><img src="icons/edit.png" width="12px" height="12px" /></a></div>

スクリプトの下部にある #skinid div は次のとおりです。

<div class="hidden">
<mark id="message"></mark>
  <div id="skinid">
  <section class="container">
    <div class="form2">
                        <form action="" method="POST">
                            <!--<fieldset class="textarea-field">
                                <textarea title="Message">Message</textarea>
                            </fieldset>-->
<br>
                            <fieldset>
                                <span class="ico user-ico"></span>
                                <input name="skinid" onkeypress="return isNumberKey(event)" type="text" class="field" value="Enter new Skin ID. (-200$)" title="Enter new Skin ID. (-200$)" />
                            </fieldset>
                            <center><input type="submit" class="submit btn blue-btn" value="Update" /></center>
                        </form>
                    </div></section>
  </div></div>

私は追加してみました:

    if (isset($_POST['skinid'])) {
        if($_POST['skinid'] > 299) {header("Location:http://google.com");}
else {header("Location:http://yahoo.com");}
        return;
    }

フォームの上にあり、機能しませんでした。

4

1 に答える 1

0

私の理解が正しければ、PHP コードを HTML フォーム コードのすぐ上、つまり実際の出力が送信された後に配置しました。PHP のマニュアルに記載されているように、出力が送信されるheader("Location:...")に を呼び出す必要があります。

PHPマニュアルを引用:

実際の出力が送信される前に、通常の HTML タグ、ファイル内の空白行、または PHP から header() を呼び出す必要があることに注意してください。include 関数、require 関数、または別のファイル アクセス関数を含むコードを読み取り、header() が呼び出される前に出力されるスペースまたは空の行があることは、非常に一般的なエラーです。単一の PHP/HTML ファイルを使用する場合にも、同じ問題が存在します。

そのため、HTML 出力が送信される前 (ファイルの先頭など) に PHP コードを配置すると、うまくいくはずです。そうでない場合は、より詳細な情報が必要になります (他のコメンテーターが既に指摘しているように)。

于 2013-05-02T20:21:26.540 に答える