-1

データベースでチェックしている入力データに基づいて、問題の1つを解決するのに助けが必要です。値が存在する場合、私は別のページに転送しています。それ以外の場合はエラーが表示されます。値を入力しても同じように表示され、phpコードでエコーを表示できません。コード自体のテストは正常に機能しますが、htmlコードと統合すると失敗します。誰かがコードの間違いを特定できますか?問題をトラブルシューティングするにはどうすればよいですか?

<!DOCTYPE html>
<?php
if (isset($_POST["submit"])) {
    include("connect.php");

    $message = NULL;
    if(empty($_POST["empid"])) {
        $u = FALSE;
        $message .= "You have to enter your Employee ID !<br />";
    }
    else {
        $u = intval(stripslashes(trim($_POST["empid"])));
    }

    if($u) {
        $query = "SELECT Emp_ID FROM Data  WHERE Emp_ID = '$u' ";
        $result = @mysql_query($query);
        $row = mysql_fetch_array($result);
        if($row){
            session_start();
              header("Location: ModifyEmpInfo.php?empid=$u");

            exit();
        }
        else {
            $message .= "Employee ID provided does not exists. Try again!<br />";
        }
    }

}
$page_title = "FindEmpolyee";
if(empty($message)) {
    echo "<font color=red>So sorry, this page is only for Test members !</font>";
}
else {
    echo "<font color=red>";
    echo $message;
    echo "</font>";
}

?>
<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="FindEmpInfo_files/form_init.js" id="form_init_script" data-name="">
    </script><link href="FindEmpInfo_files/jquery-ui-1.css" type="text/css" rel="stylesheet"><link href="FindEmpInfo_files/normalize.css" type="text/css" rel="stylesheet"><script src="FindEmpInfo_files/jquery-1.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="FindEmpInfo_files/default.css" id="theme">
    <title>
      FindEmpolyee
    </title>
  <script src="FindEmpInfo_files/jquery-ui-1.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_002.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_004.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_003.js" type="text/javascript"></script><script src="FindEmpInfo_files/validation_data.js" type="text/javascript"></script><script src="FindEmpInfo_files/validation.js" type="text/javascript"></script></head>

  <body>
    <form action="<?php $_SERVER['PHP_SELF'] ?>"  method="post" style="WebkitTransform: " id="docContainer" class="fb-toplabel fb-100-item-column selected-object" enctype="multipart/form-data" method="post" action="" novalidate="novalidate" data-form="preview">
      <div style="BACKGROUND-COLOR: #d941d9; MIN-HEIGHT: 20px" id="fb-form-header1" class="fb-form-header">
        <a id="fb-link-logo1" class="fb-link-logo" href="" target="_blank"><img style="display: none;" id="fb-logo1" class="fb-logo" title="Alternative text" alt="Alternative text" src="FindEmpInfo_files/image_default.png"></a>
      </div>
      <div id="section1" class="section">
        <div id="column1" class="column ui-sortable">
          <div style="FILTER: " id="item1" class="fb-item fb-100-item-column">
            <div class="fb-header fb-item-alignment-center">
              <h2 style="DISPLAY: inline; FONT-FAMILY: comic sans ms; COLOR: #249ee0; FONT-SIZE: 28px">
                Find Employee Information
              </h2>
            </div>
          </div>
          <div id="item3" class="fb-item fb-100-item-column">
            <div class="fb-grouplabel">
              <label style="DISPLAY: inline" id="item3_label_0">
                Enter Employee Id
              </label>
            </div>
            <div class="fb-input-number">
              <input id="item3_number_1" name="empid" min="0" max="999999999" step="1" data-hint="" autocomplete="off" required="" type="number" value="<?php if(isset($_POST["empid"])){echo $_POST["empid"];}?>">
            </div>
          </div>
        </div>
      </div>

      <div id="fb-submit-button-div" class="fb-item-alignment-center">
        <input style="" id="fb-submit-button" class="fb-button-special" value="Submit" type="submit" name="submit">
      </div>
    </form>


</body></html>

解決策:問題は、名前がphpコードに送信されなかったことでした。

4

3 に答える 3

6

header出力がブラウザに送信される前にのみ使用できます。

PHPはあなたの<!doctype>行に遭遇するとすぐに、ブラウザに「text /html」を受信して​​いることを伝えるヘッダーから始めて、出力をブラウザに送信し始めます。headerヘッダーが送信されると、それらを変更するために使用できなくなります。

doctypeを含むすべてのHTMLを、リダイレクトするPHPコードの下に移動する必要があります。

<?php
...
?>
<!DOCTYPE html>
<html><head>
...
于 2012-05-07T14:48:03.980 に答える
0

ページにPHP以外の出力を表示する前に、リダイレクトコードを用意する必要があります。コンテンツの前にヘッダーを送信する必要があります。現在doctype、PHPの前にあります。

基本的に、が呼び出される前に、ブラウザにコンテンツを出力していないことを確認してください(php外のテキストまたはエコーテキストまたは含まれているコンテンツのいずれかによって)header()

于 2012-05-07T14:47:51.023 に答える
-1

あなたがする必要があるのは、このコードを一番上に置くことだけです (他の何よりも前に!)

ob_start();

これにより、ページが完全に作成および生成されるまで、ページを送信しないようにサーバーに指示します。ヘッダーをリアルタイムで送信できるようにするだけでなく (かなり気の利いた機能です)、いくつかのパフォーマンス上の利点があります。詳細については、PHP マニュアルを参照してください。

さらに、header() を使用して、ブラウザがリダイレクトする完全な http:// URL を、Javascript の window.location と同様に送信する必要があります。

于 2012-05-07T14:51:32.943 に答える