0

私はcodeigniterで働いています。javascriptコードにエラーがあります。ログインフォームがあり、ログイン名またはユーザー名が間違っている場合にJavaScriptアラートボックスを表示したいと思います。ローカルホストでプロジェクトを完了しましたが、JavaScriptはローカルホストで正常に機能しています。しかし、ライブサーバーにプロジェクトをアップロードすると、エラーメッセージが表示されます。

PHPエラーが発生しました

重大度:警告メッセージ:ヘッダー情報を変更できません-ヘッダーは既に送信されています(出力は/home/servername/public_html/projectdemo/wms/application/controllers/login.php:36で開始されました)ファイル名:helpers / url_helper.php行番号:540

このJavaScriptコードをコントローラーに入れました

<script type='text/javascript'>
function jsfunction()
{
    window.alert("Wrong User Name or Password");
}
</script>

そしてコントローラーで、私はこの関数を呼び出しました:

echo "<script type='text/javascript'>jsfunction();</script>";

後でスクリプトをheadセクションに配置しましたが、同じエラーメッセージが表示されます。
手伝ってくれませんか。前もって感謝します。

4

3 に答える 3

0

ヘッダーは、HTML、JS、CSS などの前に解析する必要があります。

https://stackoverflow.com/users/920374/setsunaが述べたように、JavaScript をビュー ファイルに入れる必要があります。あなたのPHPエラーは、基本的に、ページのヘッダーが送信される前に出力があり、それが台無しになっていると言っています。

于 2013-01-21T07:43:34.693 に答える
0

ここで受け入れられた回答を確認してください: PHPで「ヘッダーは既に送信されました」エラーを修正する方法

ネタバレ: コントローラーで出力を開始することは許可されていません。そのため、ビューがあります。

于 2013-01-21T07:43:59.463 に答える
0

CodeIgniter は、ビュー/テンプレート レンダリング システムを使用してクライアントに公式に応答します。フレームワークの手順のその部分よりも前に何かをエコーすると、サーバーはクライアントに早く応答するため、「ヘッダーは既に送信されています」。その後、サーバーに時期尚早の応答を強制したため、CodeIgniter は意図したとおりに何もできなくなります。

あなたがすべきことは、ビューがビュー/テンプレートのHTMLのセクションを条件付きでレンダリングできるように、テンプレート/ビューデータとともにいくつかのフラグを設定することです(これはエラー警告コードになります)

于 2013-01-21T07:42:44.773 に答える