![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして、
PHP初心者です。今テキストを見ながら独学で勉強をしているものですが、
アンケートフォームの集計結果を(テキスト)読み込むための作業をしようとしたら
こういうメッセージがでてきました。
/log/log.txt) [function.fopen]: failed to open stream: No error in C:\xampp\htdocs\php\question2.php on line 126
ファイルがないか異常があります
何度も確認をしましたがコードのミスはないはずなんですが、サーバーなどの問題でしょうか?
どういうふうに解決をすればよいでしょうか?
アドバイス待ってます
No.3ベストアンサー
- 回答日時:
No.2の者です。
「 log.txt 」までは、「 question1.php 」から2つ階層が上がると「 log 」ディレクトリがあり、
その中に「 log.txt 」ファイルが存在していますでしょうか?
もし存在していれば、ディレクトリ及びファイルのパーミッションをご確認ください。
あと直接関係は無いかと思いますが、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
では無く、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
に書き直したほうが良いかと思います。
エラー文を拝見する限り、私からはこの様な回答しか出来ませんので、
他に可能性があると思われる節がありましたら、他の方へご教示を仰いでいただきたく存じます。
No.2
- 回答日時:
こんにちは。
ソースが見えないので、相対なのか絶対なのか分かりませんが、
「 log.txt 」までのパスは合っていますか?
又は、「 log.txt 」のパーミッションを読み込み可能になっているか
ご確認してみてください。
おくれて申し訳ございません。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>アンケートフォーム</title>
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen,tv" />
</head>
<body>
<div id="box">
<div id="header">
<h1>PHP for Web Designer</h1>
</div>
<ul id="menu" class="clearfix">
<li class="active"><a href="question1.php">アンケート</a></li>
<li><a href="form1.php">メールフォーム</a></li>
<li><a href="webapi/">グルメMAP</a></li>
</ul>
<div id="main">
<h2>アンケートフォーム</h2>
<?php
$error=0;//変数の初期化
//性別の入力チェック
if (isset($_POST['gender'])) { //入力されているか?
$gender =$_POST['gender'];
if (ctype_digit($gender)) {//入力値が数字のみか?
//性別の値から条件分岐させて一致した文字列を作成
if ($gender==1) {
$gendername='男性';
} elseif ($gender==2) {
$gendername='女性';
} else {
$error =1;
}
}else {//ctype_digit()関数で変数が数字ではなかった場合
$error=1;//入力エラー
}
}else {//isset()で変数が未定義だった場合}
$error=1;//入力エラー
}
//年齢の入力チェック
if (isset($_POST['age'])) {//入力されているか?
$age =$_POST['age'];
if (ctype_digit($age)) {//入力値が数字のみか?
// 1より小さい、または、5より大きいか?
if ($age < 1 || $age > 5) {
$error=1;//入力エラー
}
}else{//ctype_digit()関数で変数が数字ではなかった場合}
$error=1;//入力エラー
}
}else{//isset()で変数が未定義だった場合
$error=1;//入力エラー
}
//趣味の入力チェック
if (isset($_POST['hobby'])) {//入力されているか?
$hobby = $_POST['hobby'];
if (is_array($hobby)){//配列か?
foreach ($hobby as $value) {
if (ctype_digit($value)) { //入力値が数字のみか?
// 1より小さい、または、5より大きいか?
if ($value < 1 || $value > 5) {
$error =1;//入力エラー
}
}else { // ctype_digit()関数で変数が数字ではなかった場合
$error = 1;//入力エラー
}
}
}else{//is_array()関数で変数が配列ではなかった場合
$error=1;//入力エラー
}
}else {//isset()で変数が未定義だった場合
$error=1;//入力エラー
}
//入力エラーがない場合の結果表示
if ($error ==0) {
//アンケートの結果表示と結果の保存処理
echo '<dl class="clearfix">';
echo '<dt>性別は?</dt><dd>'.$gendername.'</dd>';
//年齢の値から50代以上を表示させるための条件分岐
if ($age != 5) {
echo '<dt>年齢は?</dt><dd>' .$age .'0代</dd>';
} else {
echo '<dt>年齢は?</dt><dd>50代以上</dd>';
}
echo '<dt>趣味は?</dt>';
echo '<dd>';
//foreach構文で配列の要素数分だけ繰り返し処理
//趣味の値から条件分岐させて一致した文字列を表示
foreach ($hobby as $value) {
switch ($value) {
case 1:
echo '音楽鑑賞<br />';
break;
case 2:
echo '映画鑑賞<br />';
break;
case 3:
echo 'ドライブ<br />';
break;
case 4:
echo '旅行<br />';
break;
case 5:
echo 'その他<br />';
break;
}
}
echo '</dd>';
//アンケート結果を更新するための処理
//アンケート結果を保存するテキストファイルを指定
$textfile = '../../log/log.txt';
//アンケート結果の読み込み処理
//ファイルを開く
$fp = fopen($textfile, 'f+b');
if (!$fp) { //fopen()関数の返り値の検証
exit('ファイルがないか異常があります');
}
if (!flock($fp, LOCK_EX)) { // テキストを排他的にロックとその返り値の検証
exit('ファイルをロックできませんでした');
}
while (!feof($fp)) { // ファイルの状態を確認して繰り返し処理
$writebuffer[] = trim(fgets($fp)); // fgets()関数で1行ずつ読み込む
}
//古いアンケート結果に新しいアンケート結果を加算
//性別データの加算
if ($gender == 1) $writebuffer[0]++;
if ($gender ==2 ) $writebuffer[1]++;
//年齢データの加算
$writebuffer[$age + 1]++;
//趣味データの加算
foreach ($hobby as $key => $value) {
$writebuffer[$key + 6]++;
}
//アンケートに答えた総人数の加算
$writebuffer[12]++;
echo '</dl>';
echo '<p class="app_msg">以上の内容を保存しました!</p>';
echo '<p class="app_msg"><a href="question3.php">集計結果を見る</a></p>';
} else {
// 入力エラーがある場合のエラー表示
echo '<p class="app_msg">';
echo '戻ってアンケートの項目すべてにお答えください。';
echo '</p>';
}
?>
</div>
<p class="copy">
© 2010 PHP for Web Designer. All rights reserved.
</p>
</div>
</body>
</html>
こちらがコードになります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP メールフォームのタイトルが文字化け 2 2023/06/17 12:00
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VScode文字の色の変更について
-
PHPでのindex.htmlの生成ができ...
-
HTMのファイルをPHPに変換す...
-
phpで大量のhtmlを任意の順番で...
-
ファイルの存在チェックとエン...
-
PHPでの複数ファイル出力
-
拡張子をhtmlにすることのメリ...
-
社内イントラネットのHPにアク...
-
PHP、Javascript等モジュールの...
-
PHPのアップロードについて。FF...
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
VB6にてメールを送信する方法
-
C# Excelファイルへの画像挿入。
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
別ファイルの変数を呼び出した...
-
3つ以上の論理積は利用可能なの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
index.phpって何ですか? 具体...
-
社内イントラネットのHPにアク...
-
phpで大量のhtmlを任意の順番で...
-
PHPでの複数ファイル出力
-
CGIでHTMLファイルのPHP部分を...
-
phpコードの戻り値をhtmlファイ...
-
ヒアドキュメントの中で別ファ...
-
HTMのファイルをPHPに変換す...
-
VScode文字の色の変更について
-
php excelダウンロード
-
public_htmlと同じ階層にあるフ...
-
拡張子をhtmlにすることのメリ...
-
PHPの結果をhtmlで保存する方法
-
トップページURLのみで下層ペー...
-
phpのheader関数でページ移動さ...
-
PHP プルダウンからの選択 ペ...
-
file_get_contentsでcss読み込み
-
file_get_contents()の動きが読...
-
includeで読み込んだ内容を変数...
おすすめ情報