parse_errorについて

このQ&Aのポイント
  • parse_errorが発生している理由とは?
  • 皆が使っているparse_errorの特定方法は?
  • 認証phpプログラムの認証についての問題
回答を見る
  • ベストアンサー

parse_errorについて

お世話になっております。 下記は、認証phpのプログラムになるのですが、  $p_data = file($data_file); の部分にてparse_errorになってしまいます。 どの部分がおかしいのかご教授願えないでしょうか? また皆様がparse_errorの部分を特定する手法として用いている方法をご教授頂けたらと思います。 よろしくお願いします。 <?php $data_file = "./d_file.dat"; //データファイルの指定 if ($action == "post") {  $p_data = file($data_file);  $p_flag = 0;  for($i=0; $i<count($p_data); $i++){   list($id,$pass) = split(",", $p_data[$i]);   if($id == $u_id && $pass == $passwd){    $p_flag++;   }  }  if($p_flag > 0){   echo "<FONT COLOR='red'>おめでとうございます。あなたは正式に認証されました。</FONT>\n" ;  } else {   echo "<FONT COLOR='red'>ユーザーIDとパスワードが間違っています。やり直して下さい。</FO NT>\n";  } } ?> d_file.dat の中身 komochan,777, komo,888, micchan,999,

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

インデントに全角スペースを使っているから?

it2007
質問者

お礼

その通りでございました。 ご回答ありがとうございました。

関連するQ&A

  • ユーザー認証&リンク先振り分け

    下記のようなプログラムにてユーザー認証&リンク先の振り分けを考えているのですが、上手に出来ません。どこか問題がありましたら教えていただけないでしょうか?エラー構文などは出ないのですが、フォーム上からユーザーIDとパスワードを入力してもうまくページが切り替わらず、同じログインフォームのページが開いてしまうのです。 <?php // $data_file = "d_file.dat"; //データファイルの指定 $authlevel = 0; //権限レベル if($action == "post"){ $p_data = file($data_file); $p_flag = 0; for($i=0; $i<count($p_data); $i++){ list($id,$pass,$authlv) = split(",", $p_data[$i]); if($id == $u_id && $pass == $passwd){ $authlevel = $authlv; //権限レベルを読む $p_flag++; } } if($p_flag > 0){ switch (authlevel){ case 1: require ("http://www.dell.com"); break; case 2: require ("http://www.whitehouse.gov"); break; case 3: require ("http://www.yahoo.com"); break; case 4: require ("http://www.google.com"); break; case 5: require ("http://www.yahoo.co.jp"); break; default://上記以外 require ("http://www.kantei.go.jp"); break; //echo "<CENTER><BR><BR><BR><FONT COLOR='blue'>おめでとうございます。あなたは正式に認証されました。<BR><BR>\n"; //echo "ここにお好きなHTML表示を埋め込んで下さい。</FONT>\n"; } } else { echo "<CENTER><BR><BR><BR><FONT COLOR='red'>ユーザーIDとパスワードが間違っています。やり直して下さい。</FONT>\n"; } } ?> ちなみに、パスワードファイル(d_file.dat)には (ユーザーID),(パスワード),(権限レベル), と記述したファイルを用意しました。

    • ベストアンサー
    • PHP
  • PHPからデーターの渡し方で悩んでます

    PHP初心者です。 質問の仕方がおかしいかもしれませんが教えてください。 ウィンドウズ上で動くソフトがあります。 そのソフトで、IDとパスワードを入力してPOST送信 PHP側でデーターを受け取る。 IDとパスワードが認証されたなら ソフトに”OK”という文字列を返す。 認証されなかったら ”NG”を返すPHPを作成してほしいと頼まれました。 ”OK” ”NG"をどのようにソフトに渡したらよいかがわかりません。 一応このような感じでPHPを作成しているのですが $u_id = $_POST['u_id']; $passwd = $_POST['passwd']; $pa_data = file($data_file); $pa_flag = 0; for($i=0; $i<count($pa_data); $i++){ list($id,$pass) = split(",", $pa_data[$i]); if($id == $u_id && $pass == $passwd){ $p_flag++; } } if($pa_flag > 0){ *****"OK文字列を返す"; } else { *****"NG文字列を返す"; } ウィンドウズ上で動くソフトが何でつくられたかがわからないので答えにくいかもしれませんが *****"OK文字列を返す" *****"NG文字列を返す" の部分を具体的に教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Parse errorが表示されない

    Parse errorが表示されない いつもお世話になっております。 PHPで開発を進めております。 開発するにあたりエラーの表示をしたいのですが、下記の設定を行っても表示されません。 php_flag display_errors on php_value error_reporting 2039(4096も試しました) <?php echo "てすと" ?> のようにセミコロンを付けないなどのエラーが表示されません。 <?php if () { } ?> if文の条件文が入っていない場合のエラーは表示されます。 <環境> PHP:5.1.6 何か他に設定するところがあるのでしょうか。 ご教示お願いいたします。

    • ベストアンサー
    • PHP
  • CGI Perlでの認証について

    CGIにてログイン認証の処理を使用してみたく勉強がてら Perlにて作成しているのですが、どうもうまくいかない ので質問させてもらいます。 ID・パスワード保存用ファイルfile.datにあらかじめ 100<>p34z7 500<>332bdz といった感じで入力してまして、 ログインボタンを押したときに &login_chk($post{'id'},$post{'pwd'}); (URIデコード処理して$post{'id'},$post{'pwd'}を取得します) を実行して下記サブルーチンを呼び出します。 sub login_chk { my ($in_id, $in_pass) = @_; my ($id, $pass); my $data; if (!open (IN, "./file.dat")) { &Error("ファイルが開けません"); } while ($data = <IN>) { ($id, $pass) = split(/<>/, $data); if ($in_id eq $id){ last; } } close(IN); unless ($in_pass eq $pass) { &Error("正しいID・パスワードを入力してください"); } } ※現状ファイルロックの処理はしてません。  パスワードの暗号化もしてません。 で、IDに100、パスワードにp34z7と入力してログインしようとするのですが 「正しいID・パスワードを入力してください」とエラーが出てきます。 当然500のときも同じくエラーでした。 どこが問題なのでしょうか?昨日から考えてずっとわからないのでご回答よろしくお願いします。

    • ベストアンサー
    • Perl
  • phpのエラー(T_LNUMBER)について

    Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in /..../..../result.php on line 202 というエラーが出ます。 このエラーはresult.phpファイルの202行目に「,」もしくは「;」が足りないよという意味を示していると思うのですが、どう足りないのかというところでひっかかっています。 改行してみたりして行数を確認してみると、特定のコードの箇所に対するエラーでした。 以下が該当する202行目のコードです。 if ($p > 1) { echo "<font size=¥"1¥"><a href=¥"$_SERVER[PHP_SELF]?p=$prev1¥"><</a></font>"; } 上記コードのecho "~~~~~の行が202行目です。 これはどこが間違っているのでしょうか? もしくはそもそも違う部分で間違っている可能性があるということなのでしょうか。。。 アドバイスをいただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでログインフォーム

    PHPで簡易的なログインフォームを作成しようと思っています。 name.csvにてユーザーの名前の管理、 pw.csvにてID,パスワードの管理をしようと考えています。 $name = file('name.csv'); $pw = file('pw.csv'); foreach($pw as $val){ list($li_pw_id ,$li_id, $li_pass) = split("\t",$val); if($li_id == $id){ if($li_pass != $pass){ echo "ログイン失敗"; exit; }else{ foreach($shop as $val){ list($li_shop_id ,$li_shop_name, $info_flag) = split("\t",$val); if($li_pw_id == $li_shop_id){ echo "ログイン成功"; } } } }else{ echo "ログイン失敗"; exit; } } と、上記のようにプログラムを記述すると、 ID・パスワードがあっていてもログイン失敗になります。 echoを使用していろいろ確かめた結果、 $li_idが$idと一致しても最後まで読みこんでしまうため、 最終的に$li_id != $idと判断されてしまっているようです。 どのようにすれば、修正できるのか教えていただきたく思います。 上記以外でも、何かいい案があれば教えて下さい。

    • ベストアンサー
    • PHP
  • Parse error: parse error, unexpected $ エラーについて

    MagpieRSS-0.72を利用して、RSSをサイトに反映させるように苦戦しています。。 HTML内でRSS.PHPをインクルードさせると、以下のようなエラーがでて困っています。。 Parse error: parse error, unexpected $ in /var/www/vhosts/*********.com/httpdocs/rss/rss.php on line 21 RSS.PHPファイルの内容 <?php require_once 'rss_fetch.inc’; // ここから MagpieRSS 0.61 を入手→ http://magpierss.sourceforge.net/ $men = array ("http://japan.****.com/rss/index.rdf", "http://www.******.com/stafflog/atom.xml"); foreach ($men as $pre) { $url = $pre; $rss = fetch_rss($url); $title = $rss->channel[title]; $title = mb_convert_encoding($title, "shift_jis", "auto"); $url = $rss->channel[link]; echo "<div class=\"RSSsite\"><p class=\"tdbg\"><a href=\"$url\" target=\"_blank\">$title</a></p></div>\n"; $rss->items = array_slice($rss->items, 0, 5); // 表示件数を5にしている foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "shift_jis", "auto"); // 文字コードは適時変更 $url = $item[link]; echo "<div class=\"RSSline\"><li><a href=\"$url\" target=\"_blank\">$title</a></li></div>\n"; $description = $item[description]; //タイトルだけなら下の行とも削除 $description = mb_convert_encoding($description, "shift_jis", "auto"); // 文字コードは適時変更 echo "<p class=\"spc\">$description</p>\n"; } ?> 以下のサイトを参考にして作りました。 http://muto.wordpress.com/2006/06/28/%e8%a4%87%e6%95%b0%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%95%e3%81%9b%e3%82%8bphp/

    • 締切済み
    • PHP
  • ファイル書き込みが重複する

    こんばんわです。 以下のスクリプトで 投稿データを時系列に新しい書込み順に表示させようとしているのですが、一度実行させると同じ投稿がいくつも表示されてしまうのです。ご回答お願いいたします。一部省略しています。 <?php if($name== "" or $body == ""){ echo '<font color = "#FF000">必須項目入力エラー</font><br>'; echo 'お名前と本文は必ず入力してください<br>'; echo '<a href = "javascript:history.back()">戻る</a>'; } $body = substr($body, 0, 1000); $body = str_replace("\r\n", "<br>", $body); $dt = date("y/m/d H:i:s"); $data = file("data.txt"); $file = fopen("data.txt", "w"); fwrite($file, "$name\t$mail\t$body\t$dt\n"); $i = 1; foreach ($data as $value) { if($i < 30) { fwrite($file, "$value"); $i++; } } fclose($file); } 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); if($mail== ""){ echo "お名前:$name$view[3]<br>"; } else{ echo "お名前:<a href=\"mailto:$mail\">$name</a>$view[3]<br>";} echo "本文:$body<br>"; } ?>

    • ベストアンサー
    • PHP
  • parseとtoStringの違い

    javascriptを勉強中です。 基本的な事かもしれませんが識者の方、宜しくお願いします。 以下のようなスクリプトで parseの部分をtoStringにすることで何が違ってくるのでしょうか? データの型?が違うのでしょうか? 御存じの方がいましたらご教授下さい。 function totest(str){ this.str = "abcdefg"; this.str += str; return this.str; } function test1(str){ this.str = str; this.parse = totest } var str = "aaa”; var p1 = new test1(str); alert(p1.str); alert(p1.parse(str));

  • ラジオボタンのチェックの付け方。

    sizen.csvというファイルがあります。 中身は ----- umi,海 yama,山 mizuumi,湖 ike,池 mura,村 ----- です。 このcsvファイルをsizen.phpに読込んで ラジオボタン使用の設問を作りたいと思っております。 プログラムは・・・ <form action="area.php" method="POST"> <?php $file=file("sizen.csv"); for($i=0;$file[$i];$i++){ $data=explode(",",$file[$i]); echo"<input type='radio' name='sizen' value='".$data[0]."'>"; echo"$data[1]<br>"; } ?> <input type="submit" value="次へ"> とできたのですが、チェックがついていません。 先頭にチェックボタン(今回の場合は海の選択肢に最初からチェックを付けたい)を付けたいのですが、どういう方法があるのでしょうか? if文を使って <form action="area.php" method="POST"> <?php $file=file("sizen.csv"); for($i=0;$file[$i];$i++){ $data=explode(",",$file[$i]); if($data[0]==umi){ echo"<input type='radio' checked name='sizen' value='".$data[0]."' >"; echo"$data[1]<br>"; }else{ echo"<input type='radio' name='sizen' value='".$data[0]."'>"; echo"$data[1]<br>"; } } ?> <input type="submit" value="次へ"> とすればできるのですが、 sizen.csvファイルの中身をよく変える為、 if($data[0]==umi){・・・・ という風に、$data[0]==umiのように固定はできません。 この方法を使わずに、ラジオボタンのチェックを いつも選択肢の先頭に付けるにはどのような方法があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう