• ベストアンサー
  • 暇なときにでも

?> で終わっているのにunexpected $end

 以下のようなスクリプトを作成したのですが、 Parse error: syntax error, unexpected $end in (アドレス) on line 61 とエラーが出てしまいます。色々といじってみましたが、ちゃんと表示されません。どこがおかしいのでしょうか? <html> <head> <title></title> <?php if(empty($_POST[sentpass])){ setcookie("pass"); print <<<_DRK_ </head><body> <p align="center"> パスワードを入力してください。<br><br> <form name="sentpass" action="index.php" method="post" target="_self"> <input></form></p> _DRK_; } else { setcookie("pass","$_POST[sentpass]"); print("<META http-equiv=\"refresh\" content=\"0; URL=index.php\"></head><body>"); } $password = "sample"; if($_COOKIE = $password){ print <<<_EOT_ <em><font size="6">Webサイトの設定</font></em><br><br> 編集する項目を選択してください。<br><br> Webサイト全体の設定(文字色など)<br><br>          (以下略) _EOT_; } else { print <<<_CDR_ パスワードが違っています。もう一度パスワードを入力してください。<br><br> <form name="sentpass" action="index.php" method="post" target="_self"> <input></form></p> _CDR_; } ?> </body></html>  ・・・よろしくお願いします。  真に申し訳ないのですが、多忙のためお礼が若干遅れると思います。すみません・・・。

noname#82539
noname#82539

共感・応援の気持ちを伝えよう!

  • PHP
  • 回答数2
  • 閲覧数14538
  • ありがとう数12

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

  • ベストアンサー
  • 回答No.2
  • php504
  • ベストアンサー率42% (926/2160)

ヒアドキュメントの終了IDの前にインデントのために空白とかタブを入れちゃってエラーになっていたという話しもよく聞きます。 _DRK_; _EOT_; _CDR_; の前に余分な空白がないかチェックしましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

 ご回答ありがとうございます。  まさにそれでした!タブが一つ・・・まさかタブや空白までが認識されるとは思いませんでした。

その他の回答 (1)

  • 回答No.1

たぶん”が足りないのですよ。 よくやります。 PRINT文などを全部 //して犯人探ししましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

 ご回答ありがとうございます。  とりあえずざっとやってみた感じでは、まだちゃんと動作しませんでした・・・。後ほどもう少し正確にやってみようと思います。

関連するQ&A

  • PHPについて質問です。

    PHPの掲示板の仕組みが知りたくてhttp://www.phpbook.jp/appli/keijiban/index1.htmlのサイトの、 <html> <head><title>PHP TEST</title></head> <body> <p>掲示板</p> <form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>"> <input type="text" name="personal_name"><br><br> <textarea name="contents" rows="8" cols="40"> </textarea><br><br> <input type="submit" name="btn1" value="投稿する"> </form> <?php $personal_name = $_POST['personal_name']; $contents = $_POST['contents']; print('<p>投稿者:'.$personal_name.'</p>'); print('<p>内容:</p>'); print('<p>'.$contents.'</p>'); ?> </body> </html> のソースをコピペしてテキストエディタに貼り付けてPHPで実行してみたら、このような画像になります。 そして投稿するをクリックするとNot Foundが表示されます。 どのようにすればテスト用の掲示板がうまくいきますか? OSはubuntu 13.10 32bit版です。 apache2導入済みです。 画像はこちらですhttp://www.dotup.org/uploda/www.dotup.org4980559.png

    • ベストアンサー
    • PHP
  • PHPについて

    PHPについて。 現在このような形でパスワードを作っております <html> <head> <title>form</title> </head> <body> パスワードを入力してください。 <form name="form" action="./sample04.php" method="POST"> <input name="pass" type="text"> <input type="submit" value="ログイン"> </form> </body> </html> ↑HTMLの文面↑ <?php // パスワードを設定する。 $pass = 1234; // form.htmlからのパスワードを受け取る $form_pass = $_REQUEST["pass"]; ?> <html> <head> <title></title> </head> <body> <?php // form.htmlからの値が$form_passと等しいか評価する if($form_pass == $pass){ echo "ログイン成功<br>", "<a href=\"./top.html\">進む</a>"; }else{ echo "ログイン失敗<br>", "<a href=\"./index.html\">戻る</a>";} ?> </body> </html> 質問はパスワードを複数作りたいのですが・・・ どうすればいいですか?PHPにはあまり詳しくないので・・・

    • 締切済み
    • PHP
  • 他ページの内容を出力するには

    PHPあまり詳しくないです。 会員登録ページなるものを作っています。 register.phpというページで入力した会員情報をconfirm.phpというページで最終確認させたいのですが、その際に入力した情報がconfirm.phpに反映されません。 regiser.php <?php $a = (!empty($_POST['name'])); $b = (!empty($_POST['email'])); $c = (!empty($_POST['password'])); $d = (!strlen($_POST['password']) < 4); if (isset($_POST['check'])) { if ($a && $b && $c && $d) { header('Location: confirm.php'); } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> </head> <body> <h3>新規登録</h3> <form method="POST" action=""> <div class="container"> <label for="name">ユーザ名(20文字以内)</label> <br /> <input type="text" id="name" name="name" maxlength="20" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['name'])) { print('※ユーザ名を入力してください'); } } ?> <br /><br /> <div class="container"> <label for="email">メールアドレス(100文字以内)</label> <br /> <input type="text" id="email" name="email" maxlength="100" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['email'])) { print('※メールアドレスを入力してください'); } } ?> <br /><br /> <div class="container"> <label for="password">パスワード(4文字以上20文字以内)</label> <br /> <input type="password" id="password" name="password" maxlength="20"/> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['password'])) { print('※パスワードを入力してください'); } elseif (strlen($_POST['password']) < 4) { print('※パスワードは4文字以上で入力してください'); } } ?> <br /><br /> <input type="submit" name="check" value="確認する" /> </form> </body> </html> confirm.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>確認画面</title> </head> <body> <h3>入力内容を確認してください</h3> <form method="POST" action=""> <br /><br /> <p>ユーザ名</p> <br /> <?php print htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'); ?> <br /> <p>メールアドレス</p> <?php print htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8'); ?> <br /> <p>パスワード</p> <?php print htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8'); ?> <br /><br /><br /> <?php print('この内容でよろしければ下の登録ボタンを押してください'); ?> <br /> <form method="POST" action="dbconnect.php"> <input type="submit" name="completion" value="登録する" /> </form> <br /><br /> <?php print('変更がある場合は下の戻るボタンを押してください'); ?> <br /> <form method="POST" action="register.php"> <input type="submit" value="戻る" /> </form> </body> </html> できればあまりこの形は変えたくありません…。 action部分をconfirm.phpに変えると、入力値が空だったりするエラー時にconfirm.phpに飛ばないようにする方法が分かりません。 回答よろしくお願いします。 色々と間違えていたのであげ直させていただきました。

    • 締切済み
    • PHP
  • コードの何が間違っているのか分からない(PHP)

    ●質問の主旨 コードの何が間違っているのかよくわからない。 (check.php)のファイルで、 print'<input type="hidden" name="nickname" value="'$nickname.'">'; の行がsyntaxerrorとして、返されるがなぜそうなるのか分からない (マニュアル本に記述して、スペルミスもチェックしているのですが) 何かお気づきのかた、ご教示願います。 ●質問の補足 添付の画像のように名前、メールアドレス、ご意見を入力してもらう フォームをとして作りました(index.html) すべてのフォームに入力がされているかどうかチェックし、 (check.php) サンクスページを返すようにしました (thanks.php) ●環境 Windows8 XAMMP(ローカル開発環境) ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> <p>あなたの名前を入力してください</p> <input name="nickname" type="text" style="width:100px"> <p>メールアドレスを入力してください</p> <input name="email" type="text" style="width:200px"> <p>ご意見をお聞かせください</p> <input name="goiken" type="text" style="width:300px"><br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; $nickname = htmlspecialchars($nickname); $email = htmlspecialchars($email); $goiken = htmlspecialchars($goiken); if ($nickname == '') { print '名前が入力されてません!<br/>'; } else { print 'ようこそ!'; print $nickname; print 'さま'; print '<br/>'; } if ($email == '') { print 'emailが入力されてません!<br/>'; } else { print 'メールアドレス'; print $email; print '<br/>'; } if ($goiken == '') { print 'ご意見が入力されてません!<br/>'; } else { print 'ご意見'; print $goiken; print '<br/>'; } if($nickname == '' || $email == '' || $goiken == '') { print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">';   print'<input type="hidden" name="nickname" value="'$nickname.'">'; print'<input type="hidden" name="email" value="'.$email.'">'; print'<input type="hidden" name="goiken" value="'.$goiken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK!">'; print'</form>'; } ?> </body> </html> (thanks.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print 'ご意見ありがとうございました!'; print $nickname; print '様<br/>'; print 'ご意見ありがとうございました<br/>'; print '頂いたご意見『'; print $goiken; print '』<br/>'; print $email; ?> </body> </html>

    • ベストアンサー
    • PHP
  • 何故unexpected ';'が出るのでしょうか

    お尋ねします。以下のスクリプトを書いてブラウザで表示しようとすると Parse error: syntax error, unexpected ';' in C:\xxx om\test.php on line 11   とエラーが出ます。 11行目は ?> と書いてあります。 <?php ~ ?> の対応関係も合っていると思います。 何故、unexpected ';' エラーが出るのでしょうか? どこが間違っているのでしょうか? 不具合修正はどのようにすれば良いか、ご教示いただければ有難いです。よろしくお願いいたします。 <html> <body> <?php if ( $_REQUEST[ "SUBMIT" ] != "" ){ $month=$_POST['month']; $day=$_POST['day']; $memo=$_POST['memo']; if( ($month=='') | ($day=='')){ echo                  ?>      ←ここでsyntax エラー <HTML><BODY> <FONT COLOR="RED"><B>空欄です</B><BR><BR> </FONT><BR></BODY></HTML> <?php exit(); } } ?> </body></html>

    • ベストアンサー
    • PHP
  • PHPについて教えてください

    以下のコードでthanks.phpにemailとgoikenが表示されません なぜでしょうか? おそらくthanks.phpが間違えてると思いますが見直してもわかりません index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <form method="POST" action="check.php"> ニックネームを入力してください<br> <input name="nickname" type="text" style="width:100px"><br> メールアドレスを入力してください<br> <input name="email" type="text" style="width:200px"><br> ご意見を一言でお聞かせください<br> <input name="goiken" type="text" style="width:300px"><br> <input type="submit" value="送信"> </form> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; if ($nickname==''){ print'ニックネームが入力されていません<br>'; } else { print'ようこそ'; print $nickname; print' 様'; print'<br>'; } if ($email==''){ print'メールアドレスが入力されていません<br>'; } else { print'メールアドレス:'; print $email; print'<br>'; } if ($goiken==''){ print'ご意見が入力されていません<br>'; } else { print'ご意見『'; print $goiken; print'』<br>'; } if($nickname=='' || $email='' || $goiken=''){ print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">'; print'<input name="nickname" type="hidden" value="'.$nickname.'">'; print'<input name="email" type="hidden" value="'.$email.'">'; print'<input name="goiken" type="hidden" value="'.$goiken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK">'; print'</form>'; } ?> </body> </html> thanks.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print $nickname; print'様<br>'; print'ご意見ありがとうございました<br>'; print'頂いたご意見『'; print $goiken; print '』<br>'; print $email; print'宛にメールを送信しました'; ?> </body> </html>

    • ベストアンサー
    • PHP
  • メールとパスワードのログイン認証

    メールとパスワードのログイン認証のプログラムがいまいちできません。 訂正すべき箇所がお分かりになる方よろしくお願いします。 尚、下記php以外に、ログイン記録用のcgiファイルがありますがそちらはちゃんと記録されます。 希望のプログラムの流れは、メールとパスワードが記録されてなかったら登録してほしい画面を出します。クッキーもしくは投稿したメールとパスワードどちらか間違っていたら、「メールアドレスかパスワードが違います」と出します。 <?php #===================================== # パスワード設定 #===================================== #エラー画面(エラー処理) #DispError(TITLE,TOPIC); function disperror($title, $topic) { ?> <html> <head> <title><?=$title?></title> </head> <body> <?=$title?> <?=$topic?> </body> </html> <?php exit; } header("Content-Type: text/html; charset=Shift_JIS"); $passfile = "passfile.cgi"; $admin_array = @file($passfile); if (!isset($admin_array[0])) $admin_array[0] = ''; $admin = rtrim($admin_array[0]); list($adminmail,$adminpass)=explode("<>",$admin); if (!isset($_COOKIE['adminpass'])) $_COOKIE['adminpass'] = ''; if (!isset($_POST['adminpass'])) $_POST['adminpass'] = ''; if (!isset($_COOKIE['adminmail'])) $_COOKIE['adminmail'] = ''; if (!isset($_POST['adminmail'])) $_POST['adminmail'] = ''; if ($adminmail and $adminpass) { if (!$_COOKIE['adminpass'] and !$_POST['adminpass']) { ?> <html><head> <title>パスワード認証</title> </head> <body> <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST"> メールアドレスを入力してください。<br> <input type="email" name="adminemail" ><br> 管理パスワードを入力してください。<br> <input type="password" name="adminpass" ><br> <input type="submit" value="送信"> </form> </body></html> <?php exit; } if ($_COOKIE['adminpass']) { if ($_COOKIE['adminmail'] !== $adminmail) { disperror("ERROR!", "メールアドレスかパスワードが違いますa"); exit; } if (crypt($_COOKIE['adminpass'],$adminpass) !== $adminpass) { disperror("ERROR!", "メールアドレスかパスワードが違いますb"); exit; } } if (!$_COOKIE['adminpass'] and $_POST['adminpass']) { if ($_POST['adminmail'] !== $adminmail) { disperror("ERROR!", "メールアドレスかパスワードが違いますc"); exit; } if (crypt($_POST['adminpass'], $adminpass) !== $adminpass) { disperror("ERROR!", "メールアドレスかパスワードが違いますd"); exit; } setcookie("adminmail",$_POST['adminmail']); setcookie("adminpass",$_POST['adminpass']); } } else{ if(!isset($_POST['setpass']) or !$_POST['setpass']) { ?> <html> <head> <title>パスワード設定</title> </head> <body> <div align="center"> パスワードが登録されていません。<br> <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST"> メールアドレスを入力してください。<br> <input type="email" name="setmail" ><br> 新しいパスワードを入力してください。<br> <input type="password" name="setpass" ><br> <input type="submit" value="登録"><br> </form> </div> </body></html> <?php exit; } else { $admin = $_POST['setmail'] . "<>" . crypt($_POST['setpass']); $fp = @fopen($passfile, "w"); fputs($fp, $admin); fclose($fp); setcookie("adminmail",$_POST['setmail']); setcookie("adminpass",$_POST['setpass']); } } ?>

    • 締切済み
    • PHP
  • PHPです。日本語はどのようにしたらつかえるのでしょうか

    英語では期待通り動くのですが、日本語では期待通り動きません。 なぜですか。 form.html <html> <head>フォーム</head> <body> <form action="henkan.php" method="post"> 文章<input type="text" name="UKETORI"><br> <input type="submit" value="送信"><br> </form> </body> </html> henkan.php <html> <body> <?php $uketori=$_POST['UKETORI']; $uketori=str_replace("です。","だよん。", $uketori); print "$uketori"; ?> </body> </html> 日本語を変換したい場合はエンコードとか必要なのでしょうか。 やり方がわかりません。宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • なぜエラーが出るのか分からない(PHP)

    ●質問の主旨 check.phpファイルの最終行(</html>のところ)で Parse error: syntax error, unexpected end of file としてエラーが表示されます。 なぜエラー表示されるのでしょうか?ご存知の方ご教示願います。 (eclipseでもエラー表示されているのは分かりますが、 何がエラーなのか分かりません) ●状況 1.index.htmlのフォームに入力し、送信ボタンを押す (添付画像) 2.check.phpに飛ばす 3.飛ばすとエラーが表示される ●環境 windows8 xammp1.8.1 ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> ニックネームを入力してください<br/> <input name="nickname" type="text" style="width:100px"><br/> メールアドレスを入力してください<br/> <input name="email" type="text" style="width:200px"><br/> ご意見を入力してください<br/> <input name="goiken" type="text" style="width:300px"><br/> <br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; if($nickname =='') { print'ニックネームが入力されてません'; } else { print'ようこそ!'; print $nickname; print'様'; print'<br/>'; } if($email =='') { print'emailが入力されてません'; } else { print'ようこそ!'; print $email; print'<br/>'; if($goiken =='') { print'ご意見が入力されてません'; } else { print'ご意見'; print $goiken; print'』<br/>'; } ?> </body> </html>

    • ベストアンサー
    • PHP
  • メールフォームの値保持

    メールフォームを作成しているのですが、値をセッションにて保持したいのですが上手くできません。 考え方が誤っているような気がするので、指摘いただけないでしょうか。どうかよろしくお願いします。 以下のような3画面移動で、値を保持したいのです。 入力==================================================================== <html><head><title>入力</title></head> <body> <form action="confirm.php" method="post"> 魚は好きですか?<BR> はい<input type="radio" name="fish" value="yes"><BR> いいえ<input type="radio" name="fish" value="no"><BR><BR> <input type="submit" value="送信"> </body> </html> 確認==================================================================== <?php session_start(); $fish = $_POST["fish"]; $_SESSION["fish"] = $fish; ?> <html><head><title>テスト確認画面</title></head> <body> <?php print("変数fishの値は".$_SESSION["fish"]."です。"); ?> <form action="output.php" method="post"> <input type="submit" value="次ページへ値を渡す"> </body> </html> 完了==================================================================== <?php session_start(); ?> <html> <head><title>テスト完了画面</title></head> <body> <?php print("変数fishの値は".$fish."です。"); ?> </body> </html>

    • ベストアンサー
    • PHP