電子書籍の厳選無料作品が豊富!

427. fclose($handle); // ファイルハンドルをクローズ
428. ftpclose($ftp); // ftpサーバーへの接続をクローズ
429.//header("Location:tanks.html");
430.} // エラーフラグがオフの場合のカッコ
431.?>
432.</body>
433.</html>

上記のようなスクリプトの最終部分で、
PHPシンタックスチェッカーで、
上記の434行目でエラーが出ます。
エラー内容は「Parse error: syntax error, unexpected end of file in CODE on line 434 Errors parsing CODE 」と、表示されます。

どこがいけないのか教えていただきたいのですが。

A 回答 (3件)

まだソースが書かれていないといけない状態(閉じていない括弧があるなど)でソースファイルが終わってしまっています。



∴ 「どこがいけないのか」を指摘するためには、ソースを全部読まないとわかりません

全部の括弧の対応を再確認してください。

この回答への補足

なぜか動かないので、全スクリプトを書かせていただきます。

<html>
<head>
<?php
header('Content-Type: text/html; charset=utf-8*');
?>
<!--<meta http-equiv="Content-Type" content="text/html; charset=utf-8*">-->
<meta http-equiv="refresh" content="60; URL=http://shinji-nemorin-7.la.coocan.jp/formmail/th …
<!--<meta http-equiv="refresh" content="60; URL=http://loaclhost/formmail/thanks.html">-->
<title>アンケートメール</title>
</head>
<body>
<?php
// エラーフラグの初期化
$errflag = 0; // 全体としてのエラーフラグ
$errname = 0;
$errage = 0;
$erryuubinup = 0;
$erryuubindown = 0;
$errjyuusyo = 0;
$erremail = 0;
$errkaisuu = 0;
$errkansou = 0;

$date = date(DATE_RSS); // フォーマット文字列 'D, d M Y H:i:s' と同じ意味(第2引数を省略すると現在時刻を取得)
$furigana = $_POST['furigana'];

$name = $_POST['name'];
if($name=="") $errname = 1; // 個別エラーフラグ

$age = $_POST['age'];
if($age=="") $errage = 1;
else if($age<0 || $age>100) $errage = 2;

$yuubin_up = $_POST['yuubin_up'];
if($yuubin_up=="") $erryuubinup = 1;

$yuubin_down = $_POST['yuubin_down'];
if($yuubin_down=="") $erryuubindown = 1;

$jyuusyo = $_POST['jyuusyo'];
if($jyuusyo=="") $errjyuusyo = 1;

$tel = $_POST['tel'];
if($tel=="") $errtel = 1;

$email = $_POST['email'];
if($email=="") $erremail = 1;

$kaisuu = $_POST['kaisuu'];
if($kaisuu=="") $errkaisuu = 1;
else if($kaisuu<0 || $kaisuu>999) $errkaisuu = 2;

$check1 = $_POST['check1'];

$check2 = $_POST['check2'];

$check3 = $_POST['check3'];

$check4 = $_POST['check4'];

$check5 = $_POST['check5'];

$kansou = $_POST['kansou'];
if($kansou=="") $errkansou = 1;

echo("end");
exit;
/////////////////////////////
// どれもエラーがない場合 //
/////////////////////////////
if($errname == 0 && $errage == 0 && $erryuubinup == 0 && $erryuubindown == 0 && $errjyuusyo == 0 && $erremail == 0 && $errkaisuu == 0 && $errkansou == 0){
$errflag=0; // エラーフラグを降ろす。
print($date);
print("<br>");
print($furigana);
print("<br>");
print($name);
print("<br>");
$RadioGroup = $_POST['RadioGroup']; // RadioGroup0:男 RadioGroup1:女
if($RadioGroup==0){
print("男性");
}else if($RadioGroup==1){
print("女性");
}
print("<br>");
print($age);
print("<br>");
print($yuubin_up);
print("<br>");
print($yuubin_down);
print("<br>");

$select = $_POST['select']; // 都道府県
switch($select){
case 1:
print "北海道";
break;
case 2:
print "青森県";
break;
case 3:
print "秋田県";
break;
case 4:
print "岩手県";
break;
case 5:
print "山形県";
break;
case 6:
print "福島県";
break;
case 7:
print "茨城県";
break;
case 8:
print "新潟県";
break;
case 9:
print "石川県";
barek;
case 10:
print "群馬県";
break;
case 11:
print "栃木県";
break;
case 12:
print "千葉県";
break;
case 13:
print "東京都";
break;
case 14:
print "埼玉県";
break;
case 15:
print "神奈川県";
break;
case 16:
print "山梨県";
break;
case 17:
print "長野県";
break;
case 18:
print "静岡県";
break;
case 19:
print "福井県";
break;
case 20:
print "富山県";
break;
case 21:
print "愛知県";
break;
case 22:
print "和歌山県";
break;
case 23:
print "三重県";
break;
case 24:
print "大阪府";
break;
case 25:
print "京都府";
break;
case 26:
print "兵庫県";
break;
case 27:
print "広島県";
break;
case 28:
print "岡山県";
break;
case 29:
print "山口県";
break;
case 30:
print "島根県";
break;
case 31:
print "鳥取県";
break;
case 32:
print "高知県";
break;
case 33:
print "香川県";
break;
case 34:
print "愛媛県";
break;
case 35:
print "徳島県";
break;
case 36:
print "福岡県";
break;
case 37:
print "長崎県";
break;
case 38:
print "佐賀県";
break;
case 39:
print "大分県";
break;
case 40:
print "熊本県";
break;
case 41:
print "宮崎県";
break;
case 42:
print "鹿児島県";
break;
case 43:
print "岐阜県";
break;
case 44:
print "奈良県";
break;
case 45:
print "沖縄県";
break;
}

補足日時:2013/12/09 21:28
    • good
    • 0
この回答へのお礼

ありがとうございました。自分でも
()の対応は確認したのですが、一応掲載させていただきます。

お礼日時:2013/12/08 23:29

全ソースが書ききれていないので、どこが問題なのかはわかりません。

括弧や引用符を追っていけば確実に「おかしな部分」はあります(なのでエラーになるわけで・・・)。

あと、他の方からも指摘があるとおりツッコミどころ満載ですが・・・

<html>
<head>
<?php
header('Content-Type: text/html; charset=utf-8*');
?>

これは絶対にやめましょう。出力バッファリングが無効だと(phpのデフォルトは無効です)意味を為しません。ローカルテストだと(xamppなどは出力バッファリング on になっているので)たまたま動いているかもしれませんが・・・

そもそもutf-8*って文字セットなんかないです(汗

<?php
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>

RTFM.
http://php.net/manual/ja/function.header.php


あと、都道府県番号→都道府県名なんかでswicthを使うのはソースが無駄に長くなるだけです。配列を使ってください。もしそれが出来なくてもfunctionにして元の流れと別にしてください(ベストはfunctionにして、function内で配列を使って都道府県名を返す)。意味も無く長いソースを追うのは慣れていても疲れます。初心者が追いかけられる範疇ではないです。

この回答への補足

ただ、サイト上にあった、PHPシンタックスチェッカーで、
前回記載したエラーが表示され、Dream WeaverCS3の
バリデートチェックでは、エラーはありませんと表示される
のです。確かにXAMPPを利用しております。

別の話題になりますが、XAMPPで利用されている、https://
と、普通のhttp:// の違いは何でしょうか。

お教えいただけますか?ネットで調べようとしていたところなのですが。
セキュリティに関して疎いもので、すみませんが、よろしくお願いします。

補足日時:2013/12/10 16:39
    • good
    • 0
この回答へのお礼

再度ご返事いただきありがとうございました。

お礼日時:2013/12/10 16:35

字数制限で、ここでは全プログラムは入らないでしょう。


途中で切れています。

括弧の他にも、文字列の引用符等の不対応も考えられます。

エディタは何を使っているのでしょうか?
ある程度高機能なエディタには、文法に合せて色を付けたり、対応する括弧を太字で表示したり、対応する括弧へカーソルを移動させたり、といった機能があります。
これらを使えば、不対応の確認が楽になります。

コメントから判断すると
> if($errname == 0 && $errage == 0 && $erryuubinup == 0 && $erryuubindown == 0 && $errjyuusyo == 0 && $erremail == 0 && $errkaisuu == 0 && $errkansou == 0){

> 430.} // エラーフラグがオフの場合のカッコ
が対応する括弧ではないでしょうか?
「対応する括弧へカーソルを移動」機能を使うと、本来なら、この2つの行を往復することになるはずです。



根本的な対策としては、プログラムの構造そのものを変えることです。
提示された部分から予想すると、function等を使わずに、上から下までダラダラと書いているのでは?
このような書き方だと、どこで何が影響するか、よくわからなくなります。

「一つの機能は1画面以内に」という格言があります。
括弧の対応をいちいちスクロールしないと確認できないようでは、間違いがあってもわかりずらい、ということです。

「構造化プログラミング」「オブジェクト指向プログラミング」といったものを学ぶのがよいでしょう。


その他、ツッコミどころ満載のプログラムですが、本題では無いのでやめておきます。

この回答への補足

エディタは、秀丸ですが、
ローカル(イントラネット環境)として、XAMPPというものを
使っていて、(メールサーバー、FTPサーバー、MySQLサーバーなどが一体となっています)、アンケートフォーム自体のHTML
は手書きだとめんどいので、Adobe DreamWeaverCS3
を使っています。構造化プログラムはC,C++で、
オブジェクト指向プログラムはVC++で一応学んだつもりなのですが、PHPもオブジェクト指向を取り入れたスクリプト言語だった
ことを忘れていました。function()などを利用して、ブロックに分けてみようと思います。ご丁寧に指摘していただき、どうもありがとうございました。

※ちなみに、根本的な対策の意味がおぼろげながらわかったようなわかってないような感じではありますが^^;

補足日時:2013/12/10 16:29
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。長文返していただき、どうも
有難うございました。

お礼日時:2013/12/10 16:32

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