• 締切済み

”output_buffering=On”とは

 xampp-win32-1.7.7-VC9-installer.exe  をインストールしました。  PHPの動作環境設定で  「php.iniの編集項目と編集内容」とあります。  その 編集内容の項目に output_buffering=On とあります。  それらしき項目も検索したら、以下のプログラムがヒットしました。 output_buffering ; Default Value: Off ; Development Value: 4096 ; Production Value: 4096   以上のですが ”output_buffering=On”とは  Default Value: OffのOffをOnに変えろとの意味でしょうか!?  それとも、  output_bufferingに=Onを追加して  output_buffering=On  と、するだけでいいのでしょうか!?  よくわかりません!?、ご教授をよろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

php.iniへの記述につきましては、 output_buffering = On の書き方で問題ないかと思います!

javascriptphp
質問者

お礼

御回答ありがとございます。  現在御解答の通り変更しました。 解決までには、しばらくお待ちくださいませ^^

関連するQ&A

  • output_buffering Onの意味

    こんにちは。 phpの設定についての質問です。 phpソースをEUCで書き、出力をSJISに設定するような場合に、以下のような設定をphp.iniにするようphpのマニュアルページにあります。 ------------------------- ;; 出力のバッファリングを有効に output_buffering = On ;; 出力の変換を有効にするために mb_output_handler を設定 output_handler = mb_output_handler ;; HTTPヘッダ charset を設定 default_charset = Shift_JIS (以下省略) ------------------------- このうち、出力のバッファリングを有効にしなければいけない意味がわかりません。EUCで出力する場合は、無効のままでよいとあります。 出力の文字コードとバッファリングにあまり関係はなさそうに思えるのですが。。。 何か釈然としないので、質問させていただきました。 情報お持ちの方、宜しくお願いします。

    • ベストアンサー
    • PHP
  • さくらインターネットでphp.iniが変更できない

    さくらインターネットのスタンダードプランに2009年1月から契約している、現在PHP勉強中の者です。 本日初めてphp.iniの内容を変更してみようとしたのですが、変更しようとした内容のうち一部が変わりませんでした。 どなたか原因がお分かりになる方がいらしたら教えて頂きたく思います。 【詳細】 さくらインターネットのphp.ini設定ファイル編集画面で下記のように保存しました。 output_buffering = Off default_charset = EUC-JP mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.script_encoding = EUC-JP mbstring.substitute_character = none display_errors = On そして保存後にphpinfoで確認したところ、 output_buffering が no value 、 mbstring.substitute_character が no value 、 display_errors が STDOUT と表示されており、 mbstring.script_encoding はそもそも項目がありませんでした。 その他のものはちゃんと設定したとおりに変更されましたが、上記4点が何度設定しても変わってくれません。 いろいろ自分で調べてみたのですが解決方法がわからないため、どなたか解決方法をご存知の方がいらっしゃいましたら、何卒教えて頂きたく存じます。 よろしくお願いします。

    • 締切済み
    • PHP
  • 質問をした後に気づいたのですが

    数日前、以下のリンクタグのOKWaveで質問させていただきました。 http://okwave.jp/qa/q8186478.html  以上の質問の対象ファイルである、php.iniを以下のアドレスから 見ることができます。 http://homepage3.nifty.com/mtaiyo/php.ini   GoogleChromで開いて、  output_bufferingを検索をかけると、 (1) output_buffering       134行目 (2) output_buffering = 4096   264行目 (3) output_buffering       287行目  の、”3件”がヒットしました。 URLからphp.ini開いて、  全てコピーして、MKEditorにエデタに張り付けて開いて、output_bufferingを検索を かけたら、以上の134行目、264行目、287行目のoutput_bufferingがヒットしました。  教本には、271行目のoutput_bufferingとは説明してあるのですが、残念ながら、 そこのにはありませんでした。  output_bufferingは教本の271行目に一番近い順からして、264行目の”output_buffering = 4096” のを「output_buffering =On」へ変更しなさい」と思うのですが、定かではございませ!?  どなたか、分かられる方、ご教授をよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • output_bufferingについて

    phpでログイン認証画面システムを作成しました。 1.base.php、認証画面の表示。 2.lform.phpで、ログインフォームの呼び出し。 3.LoginUserCheck.phpで、DBに接続し、ユーザーが存在するならSESSION["flag"]に値を入力し   ページ内容の切り替え。 という内容を作りました。 ユーザーID または、パスワードを未入力で、「ログイン」ボタンを押したところ、  【ユーザーIDが入力されていません。  Warning: Cannot modify header information - headers already sent by ~~】と、 ユーザーに未入力を促すメッセージ + Warningメッセージが出るという事象が発生しました。 色々検索してみたところ、 【header関数の前に、何か出力しているとよく発生するエラー】 ということまでわかりました。 ただ、今回使用した3つのphpファイルには、【header関数は使用しておりません】。  色々対応していくと、 php.iniの【output_buffering = Off】から【output_buffering = On】に変更すると 【ユーザーIDが入力されていません。】のメッセージ出力のみで Warningメッセージ が出なくなりました。 ■質問 【output_buffering = Off】から【output_buffering = On】 にして、なぜWarningメッセージが出なくなったのでしょうか。 output_bufferingは、出力をバッファにためる? ぐらいの認識なのですが、これによる効果のものなのでしょうか。 ご教授よろしくお願いします。 =======================*base.php*ここから================= *base.php* <?php require_once("lform.php"); require_once("LoginUserCheck.php"); session_start();    if(isset($_POST['username'])){     $login = new LoginUserCheck($_POST['username'], $_POST['password']);     $login->usercheck();    }    if(!isset($_SESSION["flag"])){     //ログインできていなければログインページ表示     lform();    }else{     //ログインできていれば普通のページを表示     print("<html><head><title>セッション開始ページ</title></head><body>");     print("ログインしました<br>");     print("<a href='pageb.php'>PageBへのリンク</a>");    } ?> ====*lform.php*ここより==== <?php function lform() {     //ログインフォーム表示     print("<html><head><title>ログインページ</title></head><body>");     print("<form method='POST' action=' " . $_SERVER['PHP_SELF'] . " '> ");     print("userID:<input type='text' name='username' size='15' maxlength='20'><br>");     print("pass:<input type='password' name='password' size='15' maxlength='20'><br>");     print("<input type='submit' value='ログイン' /></form>"); } ?> ====*LoginUserCheck.php*ここより==== <?php class LoginUserCheck {  public function usercheck(){   //エラー処理   if($_POST['username']が未入力なら){    print("ユーザーIDが空白です<br>");   }   if($_POST['password']が未入力なら){    print("パスワードが空白です<br>");   }   //userとpassが入力済みなら接続し、SESSION[flag]を設定する。   if(!($_POST['username'] == "") && !($_POST['password']"")){    try {      ~DB接続し、ログインができたなら、$_SESSION["flag"]に、値を代入~    } catch (PDOException $e) {      print("接続エラーー: " . $e->getMessage());    }  } } ?> ==========================ソースここまで==============

    • ベストアンサー
    • PHP
  • FORMからの文字入力文字化け

    「.htaccess」で設定した場合、正常に動作するのですが、「自作スクリプト内」でPHP環境を設定すると文字化けします。 フリーの掲示板が「.htaccess」で設定した場合、文字化けしますので、自作スクリプトも今回からスクリプト内部からPHP環境を設定し動作確認をしています。 FORMからの文字入力だけが文字化けしてしまうのですが、解決方法が見出せずに困っています。 また、「mbstring.encoding_translation」の設定方法がわからずに設定していないため、入力文字化けするのでしょうか。 表示だけは、文字化けせずに表示されます。FORMからの入力文字だけが文字化けします。 解決方法をご存知の方がいらっしゃいましたらご教授のほど宜しくお願いします。 # .htaccessで設定する場合 php_flag output_buffering "On" php_value output_handler "mb_output_handler" php_value default_charset "Shift_JIS" php_value mbstring.language "Japanese" php_value mbstring.internal_encoding "EUC-JP" php_value mbstring.http_input "auto" php_value mbstring.http_output "SJIS" php_value mbstring.detect_order "auto" php_flag mbstring.substitute_character "none" php_flag mbstring.encoding_translation "On" # 自作スクリプト内で設定する場合 ini_set("output_buffering", "On"); ini_set("output_handler", "mb_output_handler"); ini_set("default_charset", "Shift_JIS"); mb_language("Japanese"); mb_internal_encoding ("EUC-JP"); mb_http_input("auto"); mb_http_output("SJIS"); mb_detect_order("auto"); mb_substitute_character("none"); ob_start("mb_output_handler");

    • 締切済み
    • PHP
  • xamppのMySQLの文字化け

    いつもお世話になっております。 xamppをインストールし、開発を行っております。 formでsubmitし、DBに登録すると文字化けを起こします。 MySQLは下記項目を追加しました。 C:\xampp\mysql\bin\my.ini -------------------------------------------------- [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake character_set_server=utf8 init-connect=SET NAMES utf8 (ここに default-character-set = utf8 を追加するとMySQLが起動しなくなります。) [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 php.iniは下記のように設定してあります。 php.ini -------------------------------------------------- mbstring.detect_order auto mbstring.encoding_translation Off mbstring.func_overload 0 mbstring.http_input UTF-8 mbstring.http_output UTF-8 mbstring.http_output_conv_mimetypes ^(text/|application/xhtml\+xml) mbstring.internal_encoding UTF-8 mbstring.language Japanese mbstring.strict_detection Off mbstring.substitute_character no value 日本語が正しく登録されていれば、表示は正しくされます。 おかしな部分、足りない部分等ありましたら、ご教示ください。 よろしくお願いいたします。 [環境]  MySQL:5.5.8  PHP:5.3.5  xampp:1.7.4

    • ベストアンサー
    • MySQL
  • さくらインターネットでphp.iniの設定が反映されない

    いつもお世話になっています。 さくらインターネットの共用サーバにPHP5,PEARをインストールし、 PHPプログラムにて、mb_convert_encoding()を実行すると、 Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in ・・・ と表示されました。 php.iniの設定内容を疑って、内容を確認したところ、 さくらインターネットのコントロールパネルからphp.iniを更新しているのですが、 phpinfo()で見るとmbstringの設定項目が反映されていないのです。 ■phpinfo()の表示内容: Multibyte Support enabled Multibyte string engine libmbfl Multibyte (japanese) regex support enabled Multibyte regex (oniguruma) version 4.4.4 Multibyte regex (oniguruma) backtrack check On Directive Local Value Master Value ------------------------------------------------------------- mbstring.detect_order no value no value mbstring.encoding_translation Off Off mbstring.func_overload 0 0 mbstring.http_input pass pass mbstring.http_output pass pass mbstring.internal_encoding ISO-8859-1 no value mbstring.language neutral neutral mbstring.strict_detection Off Off mbstring.substitute_character no value no value ■php.iniの中の下記の設定項目が反映されていることは確認できました。 cgi.fix_pathinfo=1 register_long_arrays = on ■mbstringのphp.iniでの設定は下記の通りです。 mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translastion = On mbstring.detect_order = auto mbstring.substitute_character = none; ■phpinfo()で表示したその他の項目 ・PHP Version 5.2.1 ・FreeBSD ・Configuration File (php.ini) Path /home/example/www/php.ini -------------------------------------------------------------- さくらインターネットのコントロールパネルからphp.iniを更新すると通常は実行時に反映されるのですが、 なぜ、mbstringに関しての設定が反映されないのか、どうすれば反映されるようになるか、わかる方がいらしたら教えてください。

    • 締切済み
    • PHP
  • 文字化けの原因を教えてください。

    WindowsでスクリプトをEUCで保存し、シフトJISでブラウザへ出力ときの 設定として以下のようにphp.iniを設定しています。 ~php.ini~ output_buffering = On output_handler = mb_output_handler magic_quotes_gpc = Off default_charset = Shift_JIS extension_dir = C:/php/ext extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none ~php.ini~ mb_detect_encodingでDBから取得した値の文字コードは、SJISでした。 mb_convert_encoding($dbdata,"EUC-JP","SJIS")で正しく表示されます。 iniファイルの設定のみで正しく表示するにはどのように設定するのがいいのでしょうか?それとも、このような文字コード変換は必須なのでしょうか? よろしくお願いします。 [PHP使用環境] PHP=5.1.6 OS=Windows2000 PRO webserver=apatch2.0 [DB環境(リモートサーバ)] DB=MS SQL Server2000 OS=Windows2003 server R2

    • 締切済み
    • PHP
  • 初歩的な質問ですが、文字化けについて

    PHP初心者です。環境はRedHatLinux8.0とphp4.2.2を使用しています。10日で覚えるPHPを参考に環境設定をapache,phpはインストール完了し、おなじみの ハローHello,PHP! 練習用のフォルダ usr/local/apache/htdocs に作成。表示を確認したら文字化けが起こっていました。 *結果* KK ello, PHP! 環境設定の部分で /usr/local/lib/php.iniファイルの [mbstring] ・・・ mbstring.substitute_character = none; output_buffering = On output_handler = mb_output_handler default_charset = Shift_JIS ←この部分が気になるのですがこれでよろしいのでしょうか? アドバイスお願いします。

    • 締切済み
    • PHP
  • PHPの文字化け

    PHP4.3、Apache2.0.46を利用しています。 htmlタグ内でのテキストは正しく表示されるのですが returnやechoなどで表示させると文字化けしてしまいます。 PHPのスクリプトは全てEUCで記述されています。 化け方は、例を挙げると ※入力されたID、パスワードが正しくありません。 ↓ ※ュID鴻・若罩c障 のようになります。 php.iniの文字コードまわりの設定は output_buffering = Off magic_quotes_gpc = Off mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none となっています。 どうかお知恵をお貸しくださいませ。

    • 締切済み
    • PHP

専門家に質問してみよう