ご利用前に必ずお読みください。
フォーラムTOP > Xfree(旧無料レンタルサーバー) > PHPがサーバ上で正しく動作しない

PHPがサーバ上で正しく動作しない

by NO_NAME (d2cf2483)
投稿数:0回
(ベストアンサー:0回)
2019/03/25 23:01
現在、「入力画面(HTML)→入力確認画面(PHP)」のWebページを作成し、
レンタルサーバ(XFREE)上で動かそうとしたところ、ブラウザ上にソース
コードが表示されて動作せずに困っています。
ネット上でいろいろ調べ、下記の2行を.htaccessへ追加したところ、
今度はphpを開いたときにソースがダウンロードされてしまいました。
(php.iniの設定画面からMIME設定の追加をしても、同様にソースの
ダウンロードが行われてしまいます。)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

自分のPCにMAMPを入れて動作を確認した時は意図した通りに動作した為、
サーバの設定もしくはHTML側でのPHPファイルの指定に問題があるのでは
ないかと考えています。
(HTML内でのPHPファイル指定
 ローカル : http://localhost:(ポート番号)/xxxxx.php,
 サーバ上 : xxxx.php (HTMLとPHPは同一ディレクトリにあります。))

勉強してまだ日も浅いため、初歩的な質問で申し訳ありませんが、
解決法を教えていただけると嬉しいです。
このトピックへの回答は締め切られました。
by .さん (4b9b203e)
投稿数:257回
(ベストアンサー:32回)
2019/03/26 07:21
この回答がベストアンサーです!
どうもありがとうございます。
formでpostですね。

こちらでも試してみたのですが、期待通りに動きました。

index.html:

<html>
<body>
<form action="sub.php" method="post" name="form" onsubmit="return validate()">
<input type="text" name="text" size="40"><br>
<input type="submit" value="Go"><br>
</form>
</body>
</html>

sub.php:

<?php
$text = isset($_POST['text']) ? $_POST['text'] : "(empty)";
?>

<html><body><pre>
<?php
echo $text,"\n";
?>
</pre></body></html>

試したサーバーは sv4.php.xdomain.ne.jp(PHPSQLサーバー) と sv9.wp.xdomain.ne.jp(Wordpressサーバー)。
PHPはどちらも7.1.xです。

.htaccessなどは特にいじっておりません。
php.iniはinclude_pathだけはいじっています。

なにが違うんでしょうね…
トピック作成者からの返信 2019/03/26 07:38 posted(d2cf2483)

さっそく検証いただき、ありがとうございます。

php.iniのinclude_pathは変えていないので、
原因はそこのような気がします。

自分でも調べてみますが、もしよろしければ、
include_path の変更内容を教えていただけますか?

by .さん (4b9b203e)
投稿数:257回
(ベストアンサー:32回)
2019/03/26 04:51
これだけではなんとも。
短いサンプルコードを示していただけないでしょうか?
HTML側でボタンを押したら、PHP側の画面に変わる、くらいの超簡単なものでよいので。
トピック作成者からの返信 2019/03/26 06:09 posted(d2cf2483)

情報が足りず、申し訳ありません。
コードの一部は以下の通りです。
(html)
<form action="xxxxx.php" method="post" name="form" onsubmit="return validate()">
<div>
<label for="form__name">お名前    : <span class="is__require--true">必須</span></label>
<input id="form__name" type="texr" name="name" required placeholder="例) 山田 太郎" value="">
</div>
.
.
.
<button type="submit">確認画面へ</button>
<button type="reset">リセット</button>
</form>

(php)
<?php
//フォームのボタン押下時、入力内容を変更に格納
if ($_SERVER["REQUEST_METHOD"]=="POST") {
$name=$_POST["name"];
}
?>
.
.
.
<h1>お問合せ内容</h1>
<form action="xxxxx.php" method="post">
<input type="hidden" name="name" value="<?php echo $name; ?>">
<h2>お問合せ 内容確認</h2>
<p>
以下の内容でお問合せを承りました。<br>
お間違えがなければ「送信」ボタンを押して下さい。</p>
<div>
<div>
<label>お名前</label>
<p><?php echo $name; ?></p>
</div>
</div>
<input type="button" value="内容を修正する" onclick="history.back(-1)">
<button type="submit" name="submit">送信する</button>
</form>

よろしくお願い致します。

by .さん (4b9b203e)
投稿数:257回
(ベストアンサー:32回)
2019/03/26 20:49
include_pathですが

".:/usr/share/pear53:/home/XXX/XXX.php.xdomain.jp/public_html/php" 

としております。
PHPのライブラリー(JpGraph)のファイルを設置していて、それを参照できるようにしているだけです。
トピック作成者からの返信 2019/03/27 00:19 posted(d2cf2483)

html, phpファイル共にhtmlサーバに置いていたのが
原因のようです。
初歩的なミスでおさわがせしてしまい、申し訳ありませんでした。

また、いろいろご丁寧に教えていただきありがとうございます。
今回のつまずきを元に、もっとwebの勉強を頑張ります。