質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

547閲覧

アクセスカウンターが出来ません

usausa

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/01/25 06:24

編集2019/01/25 11:32
<!DOCTYPE html> <?php ini_set('display_errors', "On"); $filename = 'index.dat'; $fp =fopen($filename, "r+"); $count = fgets($fp,32); $count ++; fseek($fp, 0); fputs($fp, $count); flock($fp, LOCK_UN); fclose($fp); echo $count; ?> ```index.datには0を入れています。 ブラウザで実行しましたが何も出ません どうしたらいいのか教えてください ・環境 php version 5.4.16 ・エラー 5.$fp =fopen($filename, "r+"); fopen(index.dat): failed to open stream: Permission denied in ・追加 phpのバージョンが古いのは学校のパソコンを 使っているからです。授業の一環でプログラム を組んでいます。 ・参考 https://sole-color-blog.com/blog/49/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/25 06:33

コードはマークダウンのcode機能を利用してご提示ください。 難しければコード部分を選択して<code>ボタンを押してください。 あと、PHP5.4というかなり古いバージョンを利用されているのは何故でしょうか。 サーバーOS含めて環境情報をご提示いただけますか?
m.ts10806

2019/01/25 09:33

ini_set()コードの冒頭に書かないと意味ないですよ。
m.ts10806

2019/01/25 09:37

回答にも書きましたがデバッグしてください。コードがどこまで通っているか途中でecho書いて確認するだけでも違います。
m.ts10806

2019/01/25 09:38

こちらの環境で同コードで動く以上は質問者さんの環境でデバッグしてもらうしかないので
guest

回答2

0

ベストアンサー

index.datがない状態で実行すると、
Warning: fopen(index.dat): failed to open stream: No such file or directory in~
とか盛大に出る。

じゃぁindex.datをファイルサイズゼロで作っとくと、
webブラウザには「1」と表示されるものの
index.datには何も書き出されない。
何度やっても変わらない。

index.datに「0」とだけ書いておくと、
とりあえず機能するように見える。

じゃ、そういうことで。

php

1<?php 2 3$filename = 'index.dat'; 4 5 6 7$fp =fopen($filename, "r+"); 8 9$count = fgets($fp,32); 10 11$count ++; 12 13fseek($fp, 0); 14 15fputs($fp, $count); 16 17flock($fp, LOCK_UN); 18 19fclose($fp); 20 21echo $count;

投稿2019/01/25 09:08

編集2019/01/25 10:30
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usausa

2019/01/25 09:32 編集

index.datに0しか入れていないのですが 何も表示されませんでした。
退会済みユーザー

退会済みユーザー

2019/01/25 10:28

示されたソースコードを動かして、とりあえず動いたんだけど? 質問者さん、どうやってるの?
usausa

2019/01/25 10:41

$filename = 'index.dat'; でパーミッションエラーがでました。 どのパーミッションを変えばいいですか
退会済みユーザー

退会済みユーザー

2019/01/25 10:44

レンタルサーバーで動かしてる? ならば、644とか664とか。
m.ts10806

2019/01/25 11:07

Windowsって・・・。 「サーバー環境」って聞けば良かった。
退会済みユーザー

退会済みユーザー

2019/01/25 11:12

index.datに読み取り専用になっていないか確認を。
usausa

2019/01/25 11:32

どうやって確認したらいいですか?
退会済みユーザー

退会済みユーザー

2019/01/25 11:34

エクスプローラでindex.datに対してプロパティ、読み取り専用にチェックが付いているなら外すこと
usausa

2019/01/25 11:41

外せました。
退会済みユーザー

退会済みユーザー

2019/01/25 11:46

なら、動くのでは?
usausa

2019/01/25 12:10

動きました。
guest

0

考えられる理由は2つ
0. index.datが存在しない
0. index.datに何も書かれていないor数字以外が書かれている

上記2つ正しく解消すれば同コードでも動きました(PHP7.2での確認です。PHP5.4は分かりません)

1.に関してはエラー表示Onにしていれば分かります。
エラーが表示されるのであとはそのエラーの意味を調べて、解決方法を探ること。
2.に関してはデバッグと検証です。

いずれもPHPプログラミングしていく上では基本です。必ず覚えてください(それだけで解決する問題は非常に多いので)

蛇足:
PHP5.4とのことですが、最終バージョンリリースから3年以上経っていますしサポートも同じくらい前に終わっています
保守案件などでどうしてもそのバージョンで対応しなければならないときを除いて
学習シーンでも使うメリットは全くありません。
最低でも7.1以上で対応してください。

投稿2019/01/25 06:38

編集2019/01/25 08:59
m.ts10806

総合スコア80852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問