ママのスキンケアのお悩みにおすすめアイテム

教えてください、困っています。

コードを走らせると、以下のようなコメントが出ます。
「Parse error: syntax error, unexpected $end in C:\Program Files・・・・・.php on line 500」
最後の終わり方が文法エラーといってるようなのですが、</body></html>で終わっており、{ }の書き方も問題ありません、
他に考えられる原因はどのようなものがあるのでしょうか。
Editorは秀丸を使っています。
いくら考えても分かりません。
最後には[EOF]がついていますが何か関係しているのでしょうか。
[EOF]がついての設定ミスとかが原因でしょうか。

途中に書いている表示のコードは正常にブラウザからみれますが、このコードのところに来ると上記のようなエラーメッセージがブラウズされます。
また、[EOF]の表示等の設定はどのように設定しておけばよいのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

過去に、似たような話題がありました。


参考URLでの話と同じかどうか、確認してみてください。

なお、秀丸の[EOF]の件は、そのままでよいと思います。
どうしても[EOF]の印を表示させたくなければ、
秀丸の[その他]-[ファイルタイプ別の設定]で
「表示とカラー」を選択し、[EOF](ファイルの末尾)欄の
チェックを外せばよいです(バージョン6.10での操作手順)。

参考URL:http://okwave.jp/qa2516204.html
    • good
    • 0
この回答へのお礼

asuncionさん有難うございました、余分なスペースを削除したら走りました。

お礼日時:2007/05/24 22:46

<?php


で始まったPHPスクリプトの部分が
?>
で終わっていない、ということはありませんか?
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QParse error: syntax error, unexpected T_STRING in・・・118と出るのですが

Parse error: syntax error, unexpected T_STRING in 。。。 on line 118
とでるのですが対処はどうすればよろしいでしょうか?

Aベストアンサー

118行目をみてみてください。
ダブルクォーテーションのなかでダブルクォーテーションを使ったり
してませんか?
基本的な文法ミスなので、自己解決できないと今後きびしいですよ。

Qなぜ、unexpected T_VARIABLEになるのでしょうか? 

WindowsXP機に、PHP5とPEARを入れています。
あるWebサイトに記述されている下記のサンプルスクリプトをコピペして(PEARは絶対パスに書き換えて)実行しましたが、次のエラーが出ます。全角スペースは入っていませんし、原因が分かりません。
なぜ、unexpected T_VARIABLEになるのでしょうか? どのようにすれば解決できるでしょうか?
エラー
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Group\Apache2\htdocs\HQuickForm_test\QfrmSmpl.php on line 14

サンプルスクリプト一部抜粋:
<?php
require_once("C:\php\PEAR\HTML\QuickForm.php");
class QfrmSmpl{
var $_form;
function QfrmSmpl($sbmtAct){
$this -> _form = new HTML_QuickForm("frmSmpl","post",$sbmtAct); }
function setForm(){
$this -> _form -> addElement("text","txtName","名前(全角日本字):");
$this -> _form -> addElement("text","txtEname","名前(半角英字):");
$this -> _form -> addElement("text","txtEmail","E-mail:");
$this -> _form -> addElement("text","txtEmail2","E-mail(確認用):");
$this -> _form -> addElement("textarea","txtrComment","コメント:");
}
$this -> _form -> applyFilter(__ALL__,"trim");
$this -> _form -> addRule("txtName","名前を入力!","required", null, "client");
$this -> _form -> addRule("txtEname","半角英字で入力!","alphanumeric", null, "client");
$this -> _form -> addRule(array("txtEmail","txtEmail2"),"メールアドレス不一致!","compare", null, "client");
$this -> _form -> addRule("txtEmail","無効なメールアドレス!","email", null, "client");
$this -> _form -> addRule("txtrComment","コメントを入力!","required", null, "client");
$this -> _form -> setRequiredNote("<font color='red'>*</font>必須入力");
}
以下略

WindowsXP機に、PHP5とPEARを入れています。
あるWebサイトに記述されている下記のサンプルスクリプトをコピペして(PEARは絶対パスに書き換えて)実行しましたが、次のエラーが出ます。全角スペースは入っていませんし、原因が分かりません。
なぜ、unexpected T_VARIABLEになるのでしょうか? どのようにすれば解決できるでしょうか?
エラー
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Group\Apache2\htdocs\HQuickForm_test\QfrmSmpl.php...続きを読む

Aベストアンサー

検索したら似たようなスクリプトがあったんですが
http://digit-01.com/ownpage/ownpage_quickform.html
これの
//フォーム入力チェックの定義(, null, "client")で、クライアント側でチェック function checForm(){
は function checForm(){ の前で改行が必要なようです

Q投稿記事を論理削除

PHPで掲示板の機能の一つである論理削除機能を作成しようと思っています。削除キーに削除パスワードを入力して、削除ボタンを入力(または投稿番号を指示)したときに投稿者の記事を削除(物理削除ではありません)するようにしたいのです。投稿番号や削除キー、削除ボタンは作成したのですが、hiddenやif文を使用することまではわかったのですが、肝心のスクリプト部分がどうしてわからないのです。なにか例のようなものでも記述していただけないでしょうか?
よろしくお願いいたします。

Aベストアンサー

>moon_nightさん
フォロー感謝です。

>msnxlさん
#1 のソースで、1つ勘違いされそうなところを見つけましたので、注釈を。

view_item(); // 記事表示関数の呼び出し

これはPHPに用意された関数ではなく、ユーザー定義関数としています。
記事表示部のロジックを省略したかったので、便宜上、ユーザー定義関数として記述しました。
view_item という関数は存在しませんので、ご注意ください。

Q自動で番号を振りたい

phpでメールフォームを作っています。
注文用のフォームなのですが注文番号を自動で割り当て
メール送信時に表示させたいと思っております。

全5桁位で重複させない番号をランダムで振れればいいのですが
mysqlと連動などしていないのでこれは無理でしょうか?

00001~99999まで通し番号で振り99999になったら00001に戻ると
いう形式でも構わないのですがいずれは重複してしまうのかと
悩んでおります。

phpには知識がないもので伝わりづらい質問かと思いますが
方法を具体的に教えて頂けますと幸いです。

アドバイスや参考サイトでも構いませんので宜しくお願い致します。

Aベストアンサー

 追記ですが、お詫びに、そのdata_order.plを簡易的に見るphpを作りましたので必要でしたら使ってやってください。

・show_list.php ---------------------------------------------

<html><body>
<?php
$temp = $new_no = '';
$temp_ar = $new_ar = $new_list = array();
$data_mail = './data_order.pl';

$DATA_LIST = fopen( $data_mail , 'r');
flock($DATA_LIST, LOCK_SH);

while(!feof($DATA_LIST)){
$temp = trim(fgets($DATA_LIST));
$temp_ar = explode("+", $temp);
array_push($new_ar, $temp);
}

flock($DATA_LIST, LOCK_UN);
fclose($DATA_LIST);

foreach($new_ar as $value){
$new_list = explode('+', $value);
if(!empty($new_list[0])) print "<li>" . $new_list[0] . " = " . $new_list[1];
}

?>
</body></html>

----------------------------------------------------------------

 追記ですが、お詫びに、そのdata_order.plを簡易的に見るphpを作りましたので必要でしたら使ってやってください。

・show_list.php ---------------------------------------------

<html><body>
<?php
$temp = $new_no = '';
$temp_ar = $new_ar = $new_list = array();
$data_mail = './data_order.pl';

$DATA_LIST = fopen( $data_mail , 'r');
flock($DATA_LIST, LOCK_SH);

while(!feof($DATA_LIST)){
$temp = trim(fgets($DATA_LIST));
$temp_ar = explode("+", $temp);
array_push($...続きを読む

QPHP ボタンが押されたら処理を実行する

PHPプログラミングをしています。
「はい」というボタンが押されたらこの処理を行い、
「いいえ」というボタンが押されたらこの処理を行う
ということはどうすれば実装できるのでしょうか?

Aベストアンサー

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="0">
<input type="submit" value="いいえ">
</form>


送信先
$answer = $_POST["answer"];

if($answer == 1){
// 「はい」の時の処理
}else{
// 「いいえ」の時の処理
}


ちなみに、自分から自分へPOSTすればPHPスクリプトも2つに分けずにできると思います。
また、POSTじゃなくGETでも同様のことはできると思います。

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" ...続きを読む

Qシェルでsyntax errorがでてしまう

温度管理をするため、CentOS4.4上で下記のようなスクリプトを動かしています。

---スクリプト始まり---
#!/bin/bash
date=$(date '+%Y/%m/%d(%a)/%R')
rh=$(/var/usbrh/usbrh -1 2>&1)
limit=35
rh_judge=$(echo $rh | cut -c14-15)
if (( ${rh_judge} >= ${limit} )) ;then
alert=alert
else
unset alert
fi
echo ${date} ${rh} ${alert} >> /var/usbrh/usbrh_tes2.log
---スクリプト終わり---
このスクリプトで、ログを出力し、limit以上の数値になった場合、alertがログに書き込まれるようにできました。
そこでコレを少し改良してalert時にメールを飛ばせる様にしたいと思い下記のようにif文を差し替えました。

---if文始まり---
if (( ${rh_judge} >= ${limit} )) ;then
alert=alert
address="xxx@hogehoge.com"
subject="TemperatureAlert"

mail -s $subject $address << END
`$rh`
END
else
unset alert
fi
---if文終わり---

ところが、
echo ${date} ${rh} ${alert} >> /var/usbrh/usbrh_tes2.log
のあとの行(line23)で
line 23: syntax error: unexpected end of fileというのが出て
スクリプトが動かなくなってしまいました。

ログの書き込み部分は問題ないと思うのですが、原因がわかる方いらっしゃいますでしょうか。
ご指摘頂ければ幸いです。
宜しくお願いいたします。

温度管理をするため、CentOS4.4上で下記のようなスクリプトを動かしています。

---スクリプト始まり---
#!/bin/bash
date=$(date '+%Y/%m/%d(%a)/%R')
rh=$(/var/usbrh/usbrh -1 2>&1)
limit=35
rh_judge=$(echo $rh | cut -c14-15)
if (( ${rh_judge} >= ${limit} )) ;then
alert=alert
else
unset alert
fi
echo ${date} ${rh} ${alert} >> /var/usbrh/usbrh_tes2.log
---スクリプト終わり---
このスクリプトで、ログを出力し、limit以上の数値になった場合、alertがログに書き込まれるように...続きを読む

Aベストアンサー

気になるのは `$rh` かなぁ?
$rh に入っている文字列を, コマンドとして実行したいの? もしそうだとしても,
$rh | mail ...
の方が素直じゃないかなぁ.
あと, ヒアドキュメントを終わらせる END の前後に空白がないことも確認してください.

Qデータ検索のエラーについて

http://oshiete1.goo.ne.jp/qa3583661.htmlの質問の続きなのですが、条件分岐による検索のプログラムを書きたいのですが、
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\iiko.php on line 61
というエラーが起こってしまいました。
いろいろとPHPのサイトを見て回って考えたのですが、解決策がわかりません。


フォームの構造は
<html>
<head>
<title>abcde</title>
</head>
<body>
<FONT size="4">abcde</FONT>
<form action="iiko.php" method="post">
a<br>
<br>
ある<INPUT type="radio" name="a" value="ある"><br>
ない<INPUT type="radio" name="a" value="ない"><br>
<br>

b<br>
<br>
ある<INPUT type="radio" name="b" value="ある"><br>
少しある<INPUT type="radio" name="b" value="すこしある"><br>
ない<INPUT type="radio" name="b" value="ない"><br>
<br>
c<BR>
ある<INPUT type="radio" name="c" value="ある"><BR>
ない<INPUT type="radio" name="c" value="ない"><BR>
<BR>


d<br>

ある<INPUT type="radio" name="d" value="ある"><br>
ない<INPUT type="radio" name="d" value="ない"><br>
<br>

e<br>
ある<INPUT type="radio" name="e" value="ある"><br>
ない<INPUT type="radio" name="e" value="ない"><br>
<br>


<input type="submit" name="bottun1" value="送信">
</form>
</body>
</html>


検索リストのiiko.phpは、条件を選択すれば、デーブルのデータのID2~4番の人を表示させ様としています。

<html>
<body>
<?php
$a_1 = $_POST["a"];
$b_1 = $_POST["b"];
$c_1 = $_POST["c"];
$d_1 = $_POST["d"];
$e_1 = $_POST["e"];

require_once("DB.php");

$dbUser = "sample";
$dbPass = "password";
$dbHost = "localhost";
$dbName = "sampledb";
$dbType = "mysql";

$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";


$conn = DB::connect($dsn);

//接続にしっぱいしたらメッセージを表示して終了します。

if (DB::isError($conn)) {
die($conn->getMessage());
}

$sql = <<<EOS
SELECT * FROM member


if($a_1 == "ある"and $b_1 == "ある"and $c_1 == "ない"and $d_1 == "ある" $e_1== "ある")
{
$sql = $sql . " WHERE id BETWEEN 2 AND 4;";

}
$result = $conn->query($sql);
if (DB::isError($result)) {
die($result->getMessage());
}

$count = $result->numRows();
print "検索結果は".$count."件です。<BR>";


if($count>0){
?>


<TABLE width="450" border="1" cellspacing="0" cellpadding="8">
<TBODY>
<TR><TH>番号</TH><TH>氏</TH><TH>名</TH><TH>年齢</TH></TR>


<?php
while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC))
{

?>
<TR><TD align="center"><?=$rs['id']?></TD>
<TD><?=$rs['last_name']?></TD>
<TD><?=$rs['first_name']?></TD>
<TD align="center"><?=$rs['age']?></TD></TR>
<?php
}
?>
</TBODY></TABLE>
<?php
}
$result->free();
$conn->disconnect();
?>

</body>
</html>
です。

解決策を教えて下さい。
よろしくお願いします。

http://oshiete1.goo.ne.jp/qa3583661.htmlの質問の続きなのですが、条件分岐による検索のプログラムを書きたいのですが、
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\iiko.php on line 61
というエラーが起こってしまいました。
いろいろとPHPのサイトを見て回って考えたのですが、解決策がわかりません。


フォームの構造は
<html>
<head>
<title>abcde</title>
</head>
<body>
<FONT size="4">a...続きを読む

Aベストアンサー

exit;の処理はご存知の通り、そこで処理を終了するということです。
つまり、処理を終了させた場所までのソースに画面表示系のものがない場合、画面は真っ白になります。
しかし、画面が真っ白=エラーも出ていない、ということになるので、そこまでのソースに問題はないということにもなりますね。

> DB Error: syntax error

このエラーはSQLの文法ミスの場合に出ます。
SQLの作成が終わったら、

echo $sql;
exit;

を書いてSQL文の表示をして確認をしてみると、何か解決につながるかもしれませんよ。

Qファイル書込みで一行もしくは部分的に上書きする

教えて下さい。
下のようなテキストデータがあります(sample01.txtとします)
(内容)
1111000000000000
1111000000000000
1111000000000000
これを
1111000000000000
1111001111110000
1111000000000000
と言うふうに2行目もしくは部分的に上書きして保存したいです。
よろしくお願いします。

Aベストアンサー

この問題に対するよくある解決策です。下に行くほど手間ですが大きなデータが扱えるようになります。

1.ファイルが小さければ、全部配列に読み込んで、必要な操作を行ったあと同じファイル名で書き出す

2.ファイル名を変更してバックアップファイルとする作る。
バックアップを読み込み専用で開き、元のファイル名で新しいファイルを書き込みモードwで開く。

1行ずつfgetsで読み込み、ファイルにfputsで書き出す。
操作したい行が来たらその操作を行って同様にファイルに書き出す。
残りを全部書き出しす。
全部成功したらバックアップを削除する。エラーが起きたら編集中のファイルは削除してバックアップを元のファイル名にする

3.1行の長さを決まった長さにして(いわゆる固定長レコード)r+モードでfopenし、レコード長xレコード数で目的の場所にfseekして特定のレコードをfread/fwriteで上書きする。レコードの修正かレコードの末尾の追加の操作は効率がいい。レコードの挿入・削除が発生するときは全部fread/fwriteする。

4.ファイルが巨大で全部fread/fwriteするが重い処理になるなら、別途索引ファイル(インデックス)をつくり、レコードの追加はファイル末尾に追記し、インデックスファイルに検索キーとレコードの番号かファイルポインタの位置を記録する。これで目的のレコードがファイル中のどこにあるかを知ることができる。レコードの削除はインデックスに目印をつけるだけにして、実際にディスクから消去するのは負荷の低いときにガベージコレクションで行う。

5.4までやるくらいなら出来合いのデータベースを使うほうがよい。MySQLとかPostgresqlなど。

この問題に対するよくある解決策です。下に行くほど手間ですが大きなデータが扱えるようになります。

1.ファイルが小さければ、全部配列に読み込んで、必要な操作を行ったあと同じファイル名で書き出す

2.ファイル名を変更してバックアップファイルとする作る。
バックアップを読み込み専用で開き、元のファイル名で新しいファイルを書き込みモードwで開く。

1行ずつfgetsで読み込み、ファイルにfputsで書き出す。
操作したい行が来たらその操作を行って同様にファイルに書き出す。
残りを全部書き出しす...続きを読む

Q会員登録したらメールが送られてきて仮登録、その後、本登録

会員登録したらメールが送られてきて仮登録状態となり、そのメールのURLにアクセスすると本登録となるシステムをphp+mysqlで作りたいです。何か手本となる情報はありませんでしょうか?

Aベストアンサー

こんな感じになると思います。
但し、以下の例はわかりやすさを優先するため、エラー処理やサニタイズ処理などを全く行っていませんので注意してください。
また、実際に動かしてみていないコードなので、エラーがあるかもしれません(笑) 適当に修正しながら使ってください。


以下の仮登録用テーブルを作成しておく。

| CREATE TABLE interim_registration (
|  username varchar(32) NOT NULL,
|  password varchar(32) NOT NULL,
|  mailadr varchar(64) NOT NULL,
|  reg_key varchar(64) NOT NULL
| );

----

<html><!-- register.html -->
<body>

<form action="http://www.example.com/path/to/register.php" method="post">
希望ID:<input type="text" name="username"><br>
パスワード:<input type="password" name="password"><br>
メアド:<input type="text" name="mailadr"><br>
<input type="subimit" value="仮登録">
</form>

</body>
</html>

----

<?php // http://www.example.com/path/to/register.php

mysql_connect($host, $user, $password);
mysql_select_db($database);

$reg_username = $_POST['username'];
$reg_password = $_POST['password'];
$reg_mailadr = $_POST['mailadr'];
$reg_key = sha1(uniqid(rand(),1)); // ランダム文字列の生成

$sql = 'INSERT INTO interim_registration '.
    '(username, password, mailadr, reg_key) '.
    "VALUES ('$reg_username', '$reg_password', '$reg_mailadr', '$reg_key');";
mysql_query($sql);

$to = $reg_mailadr;
$subject = 'e-mail confirm';
$message = "http://www.example.com/path/to/confirm.php?username=$username&reg;_key=$reg_key";
$headers = 'From: webmaster@example.com';

mail($to, $subject, $message, $headers);

echo "$mailadr宛に確認メールを送信しました。";

?>

----

<?php // http://www.example.com/path/to/confirm.php

mysql_connect($host, $user, $password);
mysql_select_db($database);

$username = $_GET['username'];
$reg_key = $_GET['reg_key'];

$sql = 'SELECT * FROM interim_registration '.
    "WHERE username = '$username' AND reg_key = '$reg_key';";
$sql_result = mysql_query($sql);

if(($userdata = mysql_fetch_assoc($sql_result) == NULL)
{
 echo "キーが一致しません。";
}
else
{
 // $userdata['username'], $userdata['password'], $userdata['mailadr'] を使って、正規ユーザー登録処理を行う
}

----

あと、interim_registrationテーブルに、仮登録日時を記録して、本登録時に古すぎる仮登録を除外し、また、本登録が済んだら仮登録のデータを消して無効にする、等の処理があれば良いと思います。

こんな感じになると思います。
但し、以下の例はわかりやすさを優先するため、エラー処理やサニタイズ処理などを全く行っていませんので注意してください。
また、実際に動かしてみていないコードなので、エラーがあるかもしれません(笑) 適当に修正しながら使ってください。


以下の仮登録用テーブルを作成しておく。

| CREATE TABLE interim_registration (
|  username varchar(32) NOT NULL,
|  password varchar(32) NOT NULL,
|  mailadr varchar(64) NOT NULL,
|  reg_key varchar(64) NO...続きを読む


人気Q&Aランキング