phpでテキストファイルに書き込もうとしてエラーが発生する理由は?

このQ&Aのポイント
  • htmlから名前などの入力情報を受け取り、phpでテキストに書き込もうとしている際にエラーが発生しています。
  • html側で入力情報チェックのプログラムを追加すると、phpでの書き込みができなくなる現象が発生しています。
  • 原因はまだ特定できていませんが、詳しい方に教えていただきたいです。
回答を見る
  • ベストアンサー

phpのテキストファイルの書き込み

htmlから名前などの入力情報を受け取り、phpでテキストに書き込もうとしていて、最初は普通にファイルオープンしてfwiteで書き込まれていたんですが、 htmlの方でjavascriptを使って、入力情報チェックのプログラム function Check_all(){ if( chktext['name']&& chktext['saiki']&& chktext['saisou']&& chktext['saiti'] )return true else{ alert('未入力項目を入力してください') return false } を付け加えると、phpのブラウザはエラーも出ずに動くんですが、 テキストに全く書き込まれなくなってしまいました。 理由が全く分かりません。誰か詳しい方がいれば教えていただきたいです。 お願いします。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • swqamy
  • ベストアンサー率37% (11/29)
回答No.1

まずjavascriptの構文が違っています function Check_all(){   if(chktext['name']&&chktext['saiki']&&chktext['saisou']&&      chktext['saiti']){     return true; }else{     alert('未入力項目を入力してください');     return false; } } と記述したほうがいいと思います。 それで本題ですが、書き込まれる直前のデータはきちんと関数に渡せていますか?

taji74
質問者

補足

phpでechoで表示しようとしてみたんですが、何も表示されませんでした。 渡せてないって事なんですかね? でもjavascriptを入れる前と、そこら辺のはつついてないんですが・・・

その他の回答 (2)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

>phpの画面は真っ白です・・・ であればエラーログを見ないことには誰も原因を突き止めることは出来ません。 エラーログは以下のような場所にありますが環境依存なので調べてください。 /var/log/httpd/error_log /var/log/apache/error_log ログが見れない場合は error_reporting(E_ALL); というのをphpの最初で呼びましょう。 エラーが「一応」すべて出るようになります。 出ない、かつエラーログも見れないというのであればお手上げです。 エラーが見れる環境を用意してくださいとしか言いようがありません。

taji74
質問者

お礼

エラーや警告が出るようになりました! ありがとうございました。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

>phpでechoで表示しようとしてみたんですが、何も表示されませんでした。 何も表示されないというのは真っ白ということでしょうか。 エラーログにはなんと出ているのでしょうか。 画面にエラーが出ないのとエラーが存在しないことは同義ではありません。 error_reportingやphp.iniの設定、@によるエラー回避など様々な方法でエラーを隠すことが出来ます。 おそらくそのphpコードは動いていません。 というよりもechoされていない、ファイルに吐かれていない時点で動いていないのは確実です。 変更していないつもりでも些細なことで止まることがあります。 ともあれ、エラーログを見ましょう。そこに動いていない原因が書いてあります。

taji74
質問者

補足

phpの画面は真っ白です・・・

関連するQ&A

  • radioボタンでも、うまくアラート処理したいのですが・・・

    <SCRIPT LANGUAGE="JavaScript"> <!-- // ヌル及び空欄のチェックを行う function isFilled(elm) { if (elm.value == "" || elm.value == null) return false; else return true; } function isReady(form) { // 名前の空欄のチェックを行う if (isFilled(form.name) == false) { alert("お名前を入力して下さい。"); form.name.focus(); return false; } return true; } //--> </SCRIPT> フォームによるアンケートページを作成しているのですが、 textボックスで回答が書かれていなく、空欄の部分があったら アラートを出し、そのtextボックス部分に戻す、というような 上記プログラムの流れにしています。 textボックスではうまくいくのですが、radioボタンのとき、 うまくいきません(アラートは出るが、フォームに戻らない)。 回避策を教えてください。

  • javascriptでのアラート表示

    javascriptで大変困っております。 ラジオボタン・テキストエリアにまたがったチェックアラートをだしたいのですが、うまくいきません。 <script> function form_check(f) { if (f.Q1.value == "") { alert("・未記入です!"); return false; } ・ ・ ・ if (f.Q6.value == "") { alert("・名前が未記入です!"); return false; } else return true; } function reset_conf() { if (confirm("フォーム内容をリセットします!\n\nよろしいですか?")) return true; else return false; } </script> -------- <FORM ACTION="hogehoge.cgi" METHOD="POST" onSubmit="return form_check(this)"> 教育:<INPUT TYPE="radio" NAME="Q1" VALUE="OK"> テスト:<INPUT TYPE="radio" NAME="Q2" VALUE="OK">  アンケート:<INPUT TYPE="radio" NAME="Q3" VALUE="OK"> AAA:<input name="Q4" type="text" /> BBB:<input name="Q5" type="text" /> CCC:<input name="Q6" type="text" /> <INPUT TYPE="hidden" NAME="number" VALUE="6"> <INPUT TYPE="submit" NAME="answer" VALUE="送信する"> <INPUT TYPE="reset" NAME="reset" VALUE="リセット"> </FORM> </form> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • 一括で入力のチェックをしたいのです!

    どなたか教えてください・・・ フツー入力チェックを行う場合 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.Name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.Email.value==""){ alert("Eメールアドレスを入力してください。"); return false; } if(document.myform.Email.value.indexOf("@")<=0){ alert("Eメールアドレスが正しくありません。"); return false; } if(document.myform.Comment.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --> </SCRIPT> こんなカンジで各フォーム毎にチェックを行い メッセージを出したりすると思うのですが、 フォーム数が多いため、入力のチェックを 一括で行いたいのですが・・・ JavaScriptを始めて間もないため とんちんかんな質問をしている様でしたら すみません。 どなたか入力チェックを一括で出来る方法を 教えて頂けないでしょうか・・・ お願いします。

  • 外部ファイルを読み込んで表示

    これが外部ファイル(CheckUtil.js)です。 //入力データ(テキストデータやテキストエリア)の必須チェック function requiredCheck(strVal,strErr) { if(strVal=="" || strVal==undefined){ return strErr + "は必須入力です \r"; }else{ return ""; } } これを読み込んで表示させたいです。 <HTML> <HEAD> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=sjis"> <TITLE>ファイル操作</TITLE> <!-- {literal} --> <script language="JavaScript" src="CheckUtil.js"></script> <script language="JavaScript"> </HEAD> <BODY> <!-- function chk(part){ strErr = ""; strErr+ = requiredCheck(part.value,"なまえ"); if(strErr == ""){ return true; }else{ window.alert(strErr); return false; } } //--> </script> <!-- {/literal} --> <BR> <FORM ACTION="<?php echo $PHP_SELF; ?>" METHOD="POST" name="fm" onsubmit="return chk()> <INPUT TYPE="text" NAME="name" SIZE="40"><BR> <INPUT TYPE="text" NAME="comment" SIZE="40"><BR><BR> <INPUT TYPE="submit" NAME="submit" VALUE="ボタン" onsubmit="return chk()"><BR> </FORM> <BR><BR> </CENTER> </BODY> </HTML>

  • phpでファイルの読み込みができません

    phpを使って掲示板のコードを書いたのですが、ファイルの読み込みができないとエラーがでます。 なぜ読み込みが出来ないのでしょうか。サーバにアップした際に、権限の変更などが必要なのでしょうか。 以下が問題のコードの部分になります。 function load_data( $file_name, &$data_array ){ global $sys_mes; if( is_readable ( $file_name ) ){ $data_array = @file( $file_name ); return true; }else{ $sys_mes = "ErrorFile open for load<br> データファイルが開けませんでした<br>\n"; return false; } } このコードを実行するとelse文を実行します。なぜでしょうか

    • 締切済み
    • PHP
  • 未入力チェック(フォームが動的に増減する場合の方法)

    未入力チェックを行ないたいのですが、チェックをかけたいフォームが動的に増減します。 このような場合、javascript以下で、どの様な処理を行なえば、実現できるか教えて頂けないでしょうか? ワイルドカードを使ってみたり、ループを使ってみたりしたのですが、うまく動きません。 出来ましたら、サンプルコードを頂けると助かります。 よろしくお願い致します。 <script language="JavaScript"> <!-- function form_check(f) { if (f.testbox?.value == "") { alert("フォーム内容が未記入です!"); return false; } else return true; } //--> </script> <form action="xxx.php" name="form1" onSubmit="return form_check(this)"> <?php $count = 0; while ($result_row = mysql_fetch_assoc($result)) {  echo "<input name=testbox$count>"; $count++; } ?> <input type=submit value=" 送 信 "> </form>

  • テキストボックスに「00000」を入力すると「0」になってしまう

    あるテキストボックスには5桁の半角数字を入力させるようにしたいと思っています。 このテキストボックスには以下の入力チェックをかけていますが、「00000」を入力すると「0」と判断されてしまい。一つ目のチェックに引っかかってしまいます。 これを文字列として判断する方法はありますか? または、以下のチェックに引っかからない方法はありますか? よろしくお願いいたします。 (codeにはvalueが入っています。) if(code == 0){ alert("入力してください。"); return false; } if(isFinite(code) == false){ alert("半角数字を入力してください。"); return false; } if(code.length != 5){ alert("5桁入力してください。"); return false; }

  • PHP内でJavaScriptの処理は可能?

    PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。 JavaScriptの処理は onClick() のタイミングで行います。 ソースの概要は以下のようになります。 1.ログインしているか見る(flagでチェック、1はログイン中…) 2.flagのデータ取得、条件処理。 3-1. flagが1以外なら、true処理 3-2. flagが1なら、false処理  ・  ・ と、こんな処理を行いたいのですが…上手く出来ません。 ソースは以下になります。PHP側の変数 "$flag" までの取得は上手く出来たのですが、 JavaScript側の処理で、つまづいてます…。 で、表題にもあるようにPHP内でJavaScriptの処理は可能でしょうか? アルゴリズム的に、アドバイスなどありましたらご教授ください。 以下が主要部分のソースになります。 <?php echo("<script Language='JavaScript'> "+ "<!-- "+ "function check(){ "+ "if($flag != '1'){ "+ "return true; "+ "} "+ "else{ "+ "header('Location: ./error.html'); "+ "exit(); "+ "return false; "+ "} "+ "} "+ "//--> "+ "</script> "); echo(" <a href='test.html'><img src='botton.gif' onClick='check()' "> アドバイスお願い致します。

    • 締切済み
    • PHP
  • 結果がfalseでもsubmitしている?

    チェックボックスにチェックが入ったら テキストエリアに入力ができて、その入力チェックをする というスクリプトを書いていたのですが、 一番目のチェックボックスにチェックが入ったら 入力可能というところは出来るのですが 入力チェックで結果がfalseになっているのに submitされてしまいます。 どこか間違っているのでしょうか。 <html> <SCRIPT language="javascript"> <!-- function Yuukou(){ if(document.DOWN.A_CK.checked == true) { document.DOWN.A_SEL.disabled = false; } else{ document.DOWN.A_SEL.disabled = true; } } function check(){ if(document.DOWN.A_CK.checked == true) { if(document.DOWN.A_SEL.value =="") { alert("シリアル番号を入力してください") return false; } (略) } } //--> </SCRIPT> <FORM name="DOWN" action="A.cgi" onSubmit="check()" method="POST"> <INPUT type="checkbox" name="A_CK" id="A_CK" onClick="Yuukou()"> <INPUT size="20" type="text" disabled="disabled" name="A_SEL"> <input type="submit"> </form> </html>

  • 3つテキストボックスすべてが未入力の場合アラートを出す方法(SUBMITボタンが3つある場合)

    3個あるテキストボックスの内、 すべてが未入力の状態でいずれかのボタンをクリックすると アラートを出すプログラムを作りたいと思うのですが、 上手くいきません。 (ボタンが一つの場合は上手くいくのですが、3つに増やすと反応がおかしくなります) 別処理として、半角数字以外の文字を入れてもアラートが出る様にも 作りたく思っております。 以下に製作中の内容を記します。 どなたか教えていただければ大変助かります。 ======================= <hmtl> <script language="JavaScript" type="text/JavaScript"> function ChkFormVal(theForm) { var num=0; var tempnum,temp,i; var no_of_items=theForm.elements.length-1; for(i=0;i<no_of_items;i++) { temp=theForm.elements[i].value; tempnum=parseInt(temp); if(isNaN(tempnum)==true) { if(temp!="") { theForm.elements[i].value=""; alert("ご注文数量を入力してください(1)。なお、数量は半角数字で入力してください。"); //alert("debug"); return false; } else tempnum=0; } num+=tempnum; } if(num==0) { alert("ご注文数量を入力してください。なお、数量は半角数字で入力してください。"); return false; } else return true; } //--> </script> <body> <form name="hirano" method="post" action="online.asp" onSubmit="return ChkFormVal(this)"> ■ご注文数量1 <input type="text" name="a1" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> ■ご注文数量2 <input type="text" name="a3" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> ■ご注文数量2 <input type="text" name="a4" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> </form> </body> </hmtl> ======================= ※実際作ろうとしているモノはテキストボックス・ボタンが100個程あります。 以上です 宜しくお願いします。

専門家に質問してみよう