HTMLとphpについて質問です。

<form action = "">でphpスクリプトを組み込もうと思ったのですが、実行してみるとスクリプトを読み込む段階で「~.phpを開くか、または保存しますか?」と聞かれて、スクリプトが実行に移されません。
xampp1.8.1-0をCの真下に入れて使っています。Apacheは2.4です。
Apacheは設定のたびにちゃんと再起動しています。
他に変更するべき場所を教えてください。

httpd.conf
141行目に
LoadModule php5_module c:/php/php5apache2_4.dll
390行目に
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加

php.ini
124行目 output_bufferingから4行分;を外し,125行目のDefault ValueをOnに
707、708行目の;を外し,708行目を
include_path = ".;c:\xampp\php\PEAR;c:\xampp\php\includes"
1724,1730,1734,1739,1747行目の;を外した

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/06/02 16:45:03

回答0件)

回答はまだありません

  • id:rouge_2008
    「LoadModule php5_module c:/php/php5apache2_4.dll」ではなく「LoadModule php5_module c:/xampp/php/php5apache2_4.dll」ではないですか?
    設定を変更しないでそのまま使ってはいかがでしょう?
    Xamppはインストールするだけでそのまま利用できるようになっています。
    ※ちなみに「LoadModule php5_module "~/php/php5apache2_4.dll"」は「apache/conf/httpd-xampp.conf」で設定されています。
    ※php.iniも設定を変更しないでそのまま使ってみてください。
    「124行目 output_bufferingから4行分;を外し,125行目のDefault ValueをOnに」とありますが、次の箇所のコメントアウトを解除したのでしょうか?

    ; output_buffering
    ; Default Value: Off
    ; Development Value: 4096
    ; Production Value: 4096


    上記は設定値の説明ですので、そのままにしておく必要があります。(「output_buffering」のデフォルト値は「Off」ですが、開発用および運用として「4096」に設定する事を推奨しています。)
    少し上の方までスクロールして確認してみてください。次の記述があって、各種項目の説明が続いているはずです。

    ;;;;;;;;;;;;;;;;;;;
    ; Quick Reference ;
    ;;;;;;;;;;;;;;;;;;;
    ; The following are all the settings which are different in either the production
    ; or development versions of the INIs with respect to PHP's default behavior.
    ; Please see the actual settings later in the document for more details as to why
    ; we recommend these changes in PHP's behavior.
  • id:KTK12
    回答ありがとうございます。
    コメントアウトを解除したのはその行です。

    httpd.confとphp.iniを何も手の加わっていない状態に戻して試してみましたが、まだうまくいきません。
  • id:rouge_2008
    どのように上手くいかないのでしょう?
    Xamppのデフォルト画面(※以下公式ページにあるような「http://localhost」で表示される「XAMPP for Windows」という画面)は表示されますか?
    http://www.apachefriends.org/jp/xampp-windows.html

    「XAMPP for Windows」画面が表示される場合、左側のメニューから「phpinfo()」や「phpMyAdmin」を選択するとどうなりますか?
    また、formタグを記述したHTMLファイルの場所とソース(※コードの内容)、呼び出すPHPファイルの場所とソースはどのようになっていますか?
  • id:KTK12
    phpinfoは開けますが、phpMyAdminは設定が無効としてアクセスが拒否されてしまいました。
    Apacheのポートは8080番で設定していますが、PHP CreditsのところでHostname:Portが80番になっていますが、これは関係ありますか?

    HTMLとphpのソースを貼っておきます。本にあったプログラムを打ち込んだものです。

    calc1.html
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <meta charset="utf-8">
    <title>サンプル</title>
    </head>
    <body>
    <h3>合計金額を計算します</h3>
    <form action="calc1.php" method="post">
    <table>
    <tr><td>価格:<input type = "text" size="10" name="price"/>円</td></tr>
    <tr><td>数量:<input type = "text" size="10" name="num"/>個</td></tr>
    </table>
    <div><input type="submit" value="送信"/></div>
    </form>
    </body>
    </html>

    calc1.php
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <meta charset="utf-8">
    <title>合計額計算</title>
    </head>
    <body>
    <?php
    $price = $_POST['price'];
    $num = $_POST['num'];
    $total = $price * $num;
    ?>
    <div>合計額は<?php echo $total; ?>円です。</div>
    </body>
    </html>
  • id:rouge_2008
    > Apacheのポートは8080番で設定していますが、PHP CreditsのところでHostname:Portが80番になっていますが、これは関係ありますか?

    関係ないと思います。
    80番ポートでは不都合があるのでしょうか?
    特に理由がないのでしたら、80番に戻してみてはいかがでしょう?

    「calc1.html」と「calc1.php」は同じ階層に設置してあるのでしょうか?
    場所は「C:\xampp\htdocs\foldername」で、「http://localhost:8080/foldername/calc1.html」でアクセスしているのでしょうか?
    具体的にどのように上手くいかないのですか?
    こちらでは上記のソースで問題なく動作しました。
    確認に使用しているブラウザとバージョンは何ですか?
    違うブラウザで試すとどうなるでしょう?

    ※関係ないようですが、文字コードセットの指定が重複して記述されています。
    HTML5の記述は「<meta charset="~">」ですので、「<meta http-equiv="Content-Type" ~>」の方を削除してみてください。
  • id:KTK12
    ファイルは両方ともxamppのhtdocsに直接入っていて、サブフォルダには入れていません。
    今までは直接htmlファイルをクリックしてアクセスしていました。
    上手くいかないというのは、上記のソースで送信ボタンをクリックすると画面下に「OWNER-VAIOからcalc1.phpを開くか、または保存しますか?」が出て、phpスクリプトが実行に移されず、合計額を出すページに飛ばないということです。
    ブラウザはIE9です。

    htmlをクリックして開くとphp以外の部分はちゃんと動作しますが、http://localhost:8080/calc1.htmlでアクセスすると「Object not found!」と表示されてしまいます。

    Google Chormeで試してみたら合計額を表示するページに行けましたが、「合計額は円です」となって、数値を計算した結果が表示されません。
  • id:rouge_2008
    ファイルを直接クリックして開いても、サーバー上のファイルにアクセスした事にはなりません。
    インターネットを閲覧する時と同じように、アドレスを入力してアクセスしてください。
    アドレス入力が面倒な場合は、お気に入りに登録しておくといいと思います。

    Google Chromeでアクセスできたのでしたら、IEでもアクセスできるはずです。
    404エラーになるという事は、アドレスの入力を間違えたのだと思います。
    間違いのないように入力して再度アクセスしてみてください。

    上記コメントに転載したソースのように「<?php echo $total; ?>」になっていますか?
    「<? echo $total; ?>」になっているとPHPは動作せず「合計額は円です」と表示されます。

    http://au1.php.net/manual/ja/ini.core.php#ini.short-open-tag
    ※Xamppでは「short_open_tag」は「Off」に設定されています。
  • id:KTK12
    ソースに関してはミスはありません。
    少し誤解させてしまったようですいませんが、Chromeで金額を表示する画面に行けたというのは、直接htmlをクリックしてページに行った時の話(右クリックでプログラムから開くを使用)でした。アドレス直打ちではIEと同じくObject not found!になります。

    Hello,worldプログラム(アドレスはお気に入りに入れてあります)
    <?php
    echo "Hello World!";
    ?>
    さえも同じ状態になります。
    Apacheは問題なく起動・停止できます。
  • id:rouge_2008
    Apacheのポート以外は、(Xampp付属のApache以外のプログラムに関しても)何も設定を変更していないのですよね?
    「http://localhost:8080」でアクセスした場合、どのような表示になりますか?
    ページが表示された時のアドレス欄は「http://localhost:8080」のままですか?
    Xamppで起動しているのはApacheだけでしょうか?
    Apache以外のプログラムを起動している場合は、すべて停止させて確認してみてください。

    ※それから、ウェブサーバー関連で、Xampp以外にも何かインストールした事はありますか?
  • id:KTK12
    Aoacheのポート以外で変更した場所はありません。
    http://localhost:8080でアクセスすると、自動的にURLがhttp://localhost:8080/xampp/になって、XAMPPウィンドウズ版のトップページに飛ばされます。
    XAMPPでMySQLも起動していたので、停止させてからファイルにアクセスしましたがだめでした。
    サーバー関係のソフトはほかにインストールしたことはありません。
  • id:rouge_2008
    利用しているXamppの場所は「C:\xampp」で、「C:\xampp\htdocs」以下にファイルを直接入れているのですね?
    ファイル名はそれぞれ「calc1.html」「calc1.php」で間違いありませんか?
    他の場所にあるXamppのhtdocs内にファイルを作成していませんか?
    入力しているアドレス(※お気に入りのURL)に間違いはありませんか?(「http://localhost:8080/calc1.html」になっていますか?)

    上記に問題が見つからない場合、普通とは違う動作をしているようです。
    KTK12さんのPC環境に問題があるかもしれませんので、OSのクリーンインストール(※メーカー製の場合はリカバリー)を行ってから、Xamppを試す方がいいかもしれません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません