• 締切済み

ファイル読み込み時のエラー

PHPでファイルを読み込み、表示させるプログラムを作成しているのですが、エラーが起こります。 ソース <? session_start(); include_once('../inc/common.inc'); ?> <html> 暗号化<br> <? echo $_SESSION[user_id]; ?> <br><br> <? $place = "./dir/".$SESSION[user_id]; $fp = fopen($place/cert.pem,"r") or die("オープンエラー"); while (($line = fgets($fp))) { echo $line; } fclose($fp); ?> </html> 実行結果 暗号化 test Warning: Division by zero in /home/rkk/10/crypt.php on line 13 Certificate: Data: Version: 3 (0x2) Serial Number: 0 (0x0) Signature Algorithm: md5WithRSAEncryption Issuer: C=JP, ST=-, L=-, O=-, CN=T.Terada/emailAddress=teracci2002 at yahoo dot co dot jp Validity Not Before: Feb 18 06:52:22 2007 GMT Not After : Feb 18 06:52:22 2008 GMT Subject: C=JP, ST=-, L=-, O=-, CN=T.Terada/emailAddress=teracci2002 at yahoo dot co dot jp Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 6a:93:24:1a:5e:7b:6d:ad:9b:17:ad:9b:5a:95:e0:1c:a6:a5: a6:f1 -----BEGIN CERTIFICATE----- /2WedR2ADGqdWOn6xwB/Zmlp DzVvEQQspcL3UwJ5lDXXDvUoapMkGl57ba2bF62bWpXgHKalpvE= -----END CERTIFICATE----- エラーとあと、表示されているファイルが実際に指定したいもの違うものが出てきています。 ここの文字制限の都合上、実行結果の一部は省略させていただいています。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

>Warning: Division by zero in /home/rkk/10/crypt.php on line 13 ですね。 で13行目は、 >$fp = fopen($place/cert.pem,"r") or die("オープンエラー"); よく見ましょう。

kou6666
質問者

補足

わかりました。単純なミスでした。。。 ""ですね。 ありがとうございました!

関連するQ&A

  • ssl_error_logについて

    /var/log/httpd/ssl_error_logなんですが、 普段は何も記録されていなかったのですが、 最近、以下のような記述が頻繁に書き込まれるようになりました。 どうすれば止まるようになるでしょうか。宜しくお願いします。 [Sat Feb 15 22:36:34 2003] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Sat Feb 15 22:36:34 2003] [warn] RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?

  • サーバ証明書の申請に必要なCSRの生成がうまくできずに困っています。

    サーバ証明書の申請に必要なCSRの生成がうまくできずに困っています。 以下のサイトを参考にして、同じ手順でCSRを生成したところ http://www.rapidssl-jp.com/support/support_csr01.html 本来であれば以下のようなCSRが生成されなければいけないのですが -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDDIB53t0n    -- 以下省略 -- -----END RSA PRIVATE KEY----- 中身を確認すると以下のようになってしまいます。 Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, ST=XXX, L=XXX, O=XXX inc., OU=XXX, CN=www.XXX.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:c1:8b:06:   -- 以下省略 -- Exponent: XXXXX (0x10001) Attributes: a0:00 Signature Algorithm: sha1WithRSAEncryption 02:77:52:   -- 以下省略 -- 特にエラーは出す、コピペで間違いのないようにコマンドを入力しているはずなのですが、 理由がわからず大変困っております。 もし原因がわかる方がいらっしゃったら、ご教授頂ければと思います。 何卒、よろしくお願い致します。

  • mb_language("Japanese");でエラーが出ます

    PHP初心者です。 少し訂正があるため、それを書き直しました。 回答を頂く方には大変面倒をおかけする事になり、誠に申し訳ありませんが、2つのファイルのソースコードをまず見てもらえますか。 test.php <?php session_start(); ?> <html> <head> <title>test</title> </head> <body> <h2>メールの送信</h2> <?php if ($_SESSION["address"]=="NG") { unset($_SESSION["address"]); print("E-Mailは必須入力です。"."<br>"); } if ($_SESSION["subject"]=="NG") { unset($_SESSION["subject"]); print("タイトルは必須入力です。"."<br>"); } if ($_SESSION["message"]=="NG") { unset($_SESSION["message"]); print("コメントは必須に入力です。"."<br>"); } ?> <form action="./test1.php" method="post"> E-Mail:<br><input type="text" name="address" <?php print("value='".$_SESSION["address"]."'")?> size="50"><br> タイトル:<br><input type="text" name="subject" <?php print("value='".$_SESSION["subject"]."'")?> size="50"><br> コメント:<br><textarea name="message" rows="5" cols="35"> <?php print($_SESSION["message"])?></textarea><br><br> <input type="submit" value="送信"> </form> </body> </html> このページを表示させてどこかを空欄のままにしますが、エラー表示は出ません。 ↑の部分はソースコード抜けや誤字で正常に表示できるようになりました。 では、全ての欄に入力してtest1.phpに移ります。 test1.php <?php session_start(); if(strlen($_POST["address"])==0){ $_SESSION["address"] = "NG"; }else{ $_SESSION["address"] = $_POST["address"]; } if(strlen($_POST["subject"])==0){ $_SESSION["subject"] = "NG"; }else{ $_SESSION["subject"] = $_POST["subject"]; } if(strlen($_POST["message"])==0){ $_SESSION["message"] = "NG"; }else{ $_SESSION["message"] = $_POST["message"]; } if($_SESSION["address"]=="NG" or $_SESSION["subject"]=="NG" or $_SESSION["message"]=="NG"){ header("Location: test.php?".SID); exit; } ?> <html> <head><title>test1.php</title></head> <body> <?php $address=$_POST["address"]; $subject=$_POST["subject"]; $message=$_POST["message"]; $header="From:xxx@xxxxx.xxx\nContent-Type: text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address,$subject ,mb_convert_encoding($message,"JIS","SJIS"),$header)){ print("送信完了!"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> 問題はここです。 移動前にmb_language("Japanese");の部分でエラー表示されます。 この構文がどうしてもエラーになります。 エラー文をここで書きます。 Fatal error: Call to undefined function mb_language() in C:\Apache2\htdocs\sample18_1.php on line 42 それで、構文をググって見ましたが、こういうサイトを見つけました。 http://lib.stwing.jp/archives/2005/12/phpmb_language.html​ ここにも書かれているので構文自体にエラーが出るのはおかしいはずなんですけど。 どこに問題があるのでしょうか。 このソースコードが何故上手く通らないのか教えて頂けると大変助かります。 どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 上手くエラー表示がされないのと計算ができない

    PHP初心者です。 開発環境 apache2.0.59 PHP5.2.9 Eclipse3.3 以下のソースコードを見て下さい。 <?php session_start(); ?> <html> <head> <title>test3_2.php</title> </head> <body> <?php //kadai3_3.phpにて、氏名、商品それぞれに未入力の場合はセッション変数に「NG」が設定されます if ($_SESSION["name"]=="NG") { unset($_SESSION["name"]); print("氏名を入力して下さい。"."<br>"); } if ($_SESSION["shohin"]=="NG") { unset($_SESSION["shohin"]); print("商品の何れかをチェックして下さい。"."<br>"); } ?> <form action="./test3_3.php" method=post> 氏名:<input type="text" name="name" <?php print("value='".$_SESSION["name"]."'")?>> <br><br> 商品一覧<br> <!-- 全てのcheckboxの名称をshohin[商品名]として連想配列化する事により test3_3.phpではcheckboxが扱いやすくなります --> <input type="checkbox" name="shohin[A]" <?php print($_SESSION["shohin"]["A"]=="on" ? "checked":"") ?> >A商品  \\1,000<br> <input type="checkbox" name="shohin[B]" <?php print($_SESSION["shohin"]["B"]=="on" ? "checked":"") ?> >B商品 \\2,000<br> <input type="checkbox" name="shohin[C]" <?php print($_SESSION["shohin"]["C"]=="on" ? "checked":"") ?> >C商品 \\3,000<br> <input type="checkbox" name="shohin[D]" <?php print($_SESSION["shohin"]["D"]=="on" ? "checked":"")?> >D商品 \\4,000<br> <input type="checkbox" name="shohin[E]" <?php print($_SESSION["shohin"]["E"]=="on" ? "checked":"")?> >E商品 \\5,000<br><br> <input type="submit" value="送信"> </form> </body> </html> で次のtest3_3.phpのソースコードです。 <?php session_start(); /* * 氏名にデータが入っていない場合はセッション変数を「NG」を入っていた場合はセッション変数に氏名をセットする */ if (strlen($_POST["name"]==0)) { $_SESSION["name"] = "NG"; }else{ $_SESSION["name"] = $_POST["name"]; } if (isset($_POST["shohin"])) { $_SESSION["shohin"]=$_POST["shohin"]; }else{ $_SESSION["shohin"]="NG"; } /* * 氏名か商品の何れかが未入力(未チェック)の場合はtest3_2.phpに遷移します。 */ if ($_SESSION["name"]=="NG" or $_SESSION["shohin"]=="NG") { header("Location: test3_2.php?".SID); exit; } ?> <html> <head> <title>test3_3.php</title> </head> <body> <?php $fp = fopen("C:\Apache2\htdocs\test3_1.txt", "r"); while (!feof($fp)) { $buffer = fgets($fp); $ans = explode(",", $buffer); $shohin[$ans[0]] = $ans[1]; } fclose($fp); $sum = 0; while(list($key, $val)=each($shohin)) { if ($_POST[$key]=="on") { print($key."商品:\\".number_format($val)."<br>"); $sum += $val; $shohizei = $sum * 0.05; $goukei = $sum + $shohizei; } } print("---------------------------<br>"); print("合計金額:\\".number_format($sum)."<br>"); print("消費税  :\\".number_format($shohizei)."<br>"); print("税込金額:\\".number_format($goukei)); ?> </body> </html> 分からないのは氏名欄に何も書かない場合もしくは商品を1つも選択しない場合、それぞれエラー表示されるのですが、何故か氏名欄にはMGと言う値が入力されてリダイレクトされます。 なので、まずはその原因を探しているのですが、いくら見ても分かりません。 なので、氏名欄が空白のときにエラー表示されるのかどうかも分かりません。 もう1つは商品購入の際の計算式が表示されない事です。 その前に連想配列$_SESSION["shohin"]["A"]についても疑問点があります。 これは2次元連想配列と解釈するのでしょうか。 ちなみにtest3_1.txtには以下のような文章が書かれています。 A,1000 B,2000 C,3000 D,4000 E,5000 何か延々とソースコードを書き連ねただけみたいに見えますね。 読み辛いようでしたら、本当に申し訳ありません。 以上の疑問について回答を頂きたいと思い書き込みました。 どうぞ宜しくお願い致します。

    • 締切済み
    • PHP
  • fgetsの使い方について

    こんばんわ。phpでラジオボタンを使用して投票フォームを作っています。 投票した値をログファイルに書き込んで4項目をカウントできるように格納したいのですが、エラーも出ずにスルーして原因がわからず困っています。 イメージでは ログファイル↓ 24 もちろん 11 するかも 5  わからない 12 ない 問題のソースは以下の通りです。 $write = "$radiobutton"."\n"; $fp = fopen("../php/test1.txt","a+"); $line1=fgets($fp); $line2=fgets($fp); $line3=fgets($fp); $line4=fgets($fp); fputs($fp,$write); fclose($fp); print "fgets1回目=".$line1."<br>\n"; print "fgets2回目=".$line2."<br><br>\n"; print "fgets3回目=".$line3."<br><br><br>\n"; print "fgets4回目=".$line4."<br><br><br><br>\n"; わかる方いましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • ファイルに記憶できない。

    こんにちわお聞きしたいのですが、以下のスクリプトで、送信で引渡されたデータを先に記録し、再度ファイルから取出し表示したいのですが data.txtに書き込まれないです。サーバーに上げている、data.txtの の属性は書き込みにしています。 <?php $submit = $_post["submit"]; if($submit == "送信"){ $name = $_POST["NAME"]; $mail = $_POST["MAIL"]; $body = $_POST["BODY"]; if($name== "" or $body == ""){ echo '<font color = "#FF000">必須項目入力エラー</font><br>'; echo 'お名前と本文は必ず入力してください<br>'; echo '<a href = "javascript:history.back()">戻る</a>'; exit; } $body = str_replace("\r\n", "<br>", $body); $fp = fopen("data.txt","w"); fwrite($fp,"$name\t$mail\t$body\n"); fclose($fp); } echo ' subject03-BBS <h1>subject-BBS</h1> <form method="post" action="subject03.php" > お名前 <input type="text" size="20" maxlength="40" name="NAME"> メール <input type="text" size="30" maxlength="60" name="MAIL"> <p>本文<br></p> <textarea rows="20" cols="80" wrap="soft" name="BODY"></textarea> <p><input type="submit" name="SUBMIT" value="送信"><p/> </form> '; $data = file("data.txt"); foreach($data as $value){ $view = explode("\t".$value); $name = $view[0]; $mail = $view[1]; $body = $view[2]; if($mail== ""){ echo "お名前:$name<br>"; } else{ echo "お名前:<a href=\"mailto:$mail\">$name</a><br>";} echo "本文:$body<br>"; } ?> </body> </html>

    • ベストアンサー
    • PHP
  • openSSLで秘密鍵ファイルエラー

    はじめまして。 Solaris10で、OpenSSLとApacheを導入し、認証ファイル作成で エラーになりました。 認証局ファイル作成(CA) cd /usr/local/ssl/misc/CA.sh -newca Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: unknown option -selfsign usage: ca args -verbose - Talk alot while doing things -config file - A config file -name arg - The particular CA definition to use -gencrl - Generate a new CRL -crldays days - Days is when the next CRL is due -crlhours hours - Hours is when the next CRL is due -startdate YYMMDDHHMMSSZ - certificate validity notBefore -enddate YYMMDDHHMMSSZ - certificate validity notAfter (overrides -days) -days arg - number of days to certify the certificate for -md arg - md to use, one of md2, md5, sha or sha1 -policy arg - The CA 'policy' to support -keyfile arg - private key file -keyform arg - private key file format (PEM or ENGINE) -key arg - key to decode the private key if it is encrypted -cert file - The CA certificate -in file - The input PEM encoded certificate request(s) -out file - Where to put the output file(s) -outdir dir - Where to put output certificates -infiles .... - The last argument, requests to process -spkac file - File contains DN and signed public key and challenge -ss_cert file - File contains a self signed cert to sign -preserveDN - Don't re-order the DN -noemailDN - Don't add the EMAIL field into certificate' subject -batch - Don't ask questions -msie_hack - msie modifications to handle all those universal strings -revoke file - Revoke a certificate (given in file) -subj arg - Use arg instead of request's subject -extensions .. - Extension section (override value in config file) -extfile file - Configuration file with X509v3 extentions to add -crlexts .. - CRL extension section (override value in config file) -engine e - use engine e, possibly a hardware device. -status serial - Shows certificate status given the serial number -updatedb - Updates db for expired certificates もしかして、上記でエラーですか? 次に、証明書署名要求ファイル作成(CSR) cd /usr/local/ssl/misc/CA.sh -newreq openssl req -in newreq.pem -text →確認したらOKでした。 openssl rsa -in newreq.pem -text 確認した所、エラーになります。 unable to load Private Key 18943:error:0906D06C:PEM routines:PEM_read_bio:no start line:/on10/build-nd/F10U8B6/usr/src/common/openssl/crypto/pem/pem_lib.c:637:Expecting: ANY PRIVATE KEY Googleで、調べているんですが、よくわかりません。 ご存知の方がいたら、教えてください。 よろしくお願いします。

  • MYSQL

    <html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF8;" /> <table border="1"> <form action="for3.php" method="POST"> <tr><th>タイトル<td><input type="text" name="text" size="50"></td></tr> <tr><th>本文<td><textarea name="subject" cols="52" rows="8"></textarea> <tr><td><input type="submit" value="保存 する" /></td><tr> </table> </form> <?php $text = htmlspecialchars($_REQUEST['text']); var_dump($_REQUEST); ?> <?php $subject = (isset($_POST['subject']))&&(is_string($_POST['subject'])) ? trim($_POST['subject']) : ''; $text = (isset($_POST['text']))&&(is_string($_POST['text'])) ? trim($_POST['text']) : ''; if (($subject !== "")&&($text !== "")) { $subject = htmlspecialchars($subject); $text = str_replace(array("\r", "\n"), "", nl2br($text)); $fp = fopen('test1.txt', 'a'); flock($fp, LOCK_EX); fwrite($fp, implode('<>', array($text, $subject, date('Y-m-d h:i:s'))) . PHP_EOL); flock($fp, LOCK_UN); fclose($fp); } else { if ($_POST) { $errmsg = "入力が不足しています"; } } if (isset($errmsg)) { printf('<strong style="color:#e01;">%s</strong><br />', $errmsg); } ?> <strong style="color:#e01;">タイトルと本文を入力してください</strong><br /> <?php if (file_exists('test1.txt')) { $fp = fopen('test1.txt', 'r'); while ($line = fgets($fp)) { list($text, $subject, $date) = explode('<>', $line); printf('<div class="box"><strong style="float:left;">%s</strong><small style="float:right;">%s</small><p style="clear:both;">%s</p></div>', $text, $date, $subject); } } ?> </div> </body> </html> phpですでに作成できてる簡易掲示板を MYSQL DBに追加したいにですが参考になるサイトなどないでしょうか・

    • ベストアンサー
    • MySQL
  • Webアプリ作成

    <html> <head> <meta http-eqiv="Content-Type" content="text/html; charset=EUC-JP"> <title>車名とグレード登録ページ</title> </head> <body> <h1>車名とグレード登録ページ</h1> <?php if (empty($_POST['carname']) || empty($_POST['gradecode'])) { print("不正なアクセスです"); die(); } $carname = $_POST['carname']; $gradecode = $_POST['gradecode']; $pg_cn = pg_connect("dbname=carinfor"); if (!$pg_cn) { die("データベースに接続できませんでした"); } エラー箇所→ $sql = "update carprice set carname='$carname' where gradecode='$gradecode'"; $rt = pg_query($pg_cn, $sql); if (!$rt) { echo("データベースに登録できませんでした<br/>"); echo("もう一度やりなおしてください<br/>"); echo("<a href=\"charge-input.php\">戻る (テキスト入力)</a><br/>"); echo("<a href=\"charge-select.php\">戻る (select)</a>"); die(); } else { echo("データベースに正常に登録されました<br/>"); echo("現在の情報を確認するには<a href=\"charge-list.php\">こちら</a>"); echo("を参照してください<br/>"); } pg_close($pg_cn); ?> </body> このページへ行くと Warning: pg_query() [function.pg-query]: Query failed: ERROR: duplicate key violates unique constraint "carprice_pkey" in ~/carinfor/charge-submit.php on line 21 とエラーがでます。 この解決方法が分かりません。解決方法を教えてください。 表carpriceで、carnameは主キーであり外部キー、gradecodeは主キーです。 主キーが二つあるのが問題かなと思うのですがどうなのでしょうか?

    • 締切済み
    • PHP
  • fopenでファイルを読み込み、その取り込んだファイルを置換や修正したい。

    こんばんわ。 AというファイルにBというファイルを読みこもうと思うのですがうまくいきません。 ■a.php <?php // ファイルを読み込み専用でオープンする $fp = fopen('b.php', 'r'); // 終端に達するまでループ while (!feof($fp)) { // ファイルから一行読み込む $line = fgets($fp); // 読み込んだ行を出力する print $line; // <br>の出力 print "<br>"; } // ファイルをクローズする fclose($fp); ?> ■b.php <div class="title">コンテンツ</div> <?php $amin = 1; //最小値 $amax = 4; //最大値 $randevent = rand($amin,$amax); //値を表示 if ( $randevent == 1) echo "たちつてと"; // else if ( $randevent == 2) echo "さしすせそ"; // else if ( $randevent == 3) echo "かきくけこ"; // else if ( $randevent == 4) echo "あいうえお"; ?> と、二つのファイルはこのような内容です。 もちろんincludeやリクワイヤーで取り込めばすむのでしょうが、fopenで取り込んで表示させたいのです。 このままの文章だとPHPの構文ごとHPに表記されてしまいます。 Printにしているからでしょうか? fopenでPHPの機能ごと取り込むには方法はありませんでしょうか? includeだと取り込んだ際にPHP構文の置換や修正がきかなくて困るんです。 fopenで取り込むとPHP構文を「あいうえお」の部分を「なにぬねの」にstr_replaceで置換できると思ったのです。 a.phpの中にfopenを使いb.phpの中のPHP構文を機能させる方法はありませんか?

    • ベストアンサー
    • PHP

専門家に質問してみよう