Gizport
1 回答
0
Share (facebook)
178
view
全般

phpでつくるログインメール確証の件 エラーの解決法がわかりません ...

phpでつくるログインメール確証の件 エラーの解決法がわかりません

誰か教えてください

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:********************.php on line 123というエラーです。


phpの内容は

<?php
session_start();

//mysqlに接続-------

mysql_connect('localhost','root','*****') or die(mysql_error());

mysql_select_db('login') or die(mysql_error());

mysql_query('SET NAMES UTF8');

//-----------------

if(!isset($_SESSION['join'])){
header('Location:admission.php');
}

//登録処理---------

if(!empty($_POST)){
//登録処理をする
$sql=sprintf('INSERT INTO members SET name="%s",email="%s",password="%s",created="%s"',
mysql_real_escape_string($_SESSION['join']['name']),
mysql_real_escape_string($_SESSION['join']['email']),
sha1(mysql_real_escape_string($_SESSION['join']['password'])),
date('Y-m-d H:i:s')
);
mysql_query($sql) or die(mysql_error());

unset($_SESSION['join']);

// メールアドレスを確認するためのランダムなトークンを生成
$token = sprintf("%04d", rand(0, 9999));
$stmt = $db->prepare($sql);
$stmt->execute(array(
$_POST['name'], $_POST['email'], $_POST['password'],$token, time()
));
$user_id = $db->lastInsertId(); // 今挿入したuser_idを取得する★
// メールアドレスを確認する
$host = $_SERVER["HTTP_HOST"];
$self = $_SERVER["SCRIPT_NAME"];
//確証メールの設定
mb_language("japanese");
mb_internal_encoding("UTF8");

if(isset($_POST['email'])){
$to=$_POST['email'];
$subject="メール認証";
$body = <<< __MAIL__
{$_POST['name']} さん、シッカリストへのご登録ありがとうございます。
以下のURLにアクセスすれば、メールアドレスの認証が完了します。

http://{$host}{$self}?m=emailcheck&user_id=$user_id&token=$token
__MAIL__;

$from="****@yahoo.co.jp";

//確証メールの送信

$success=mb_send_mail($to,$subject,$body,$from);

if($success){
show_html_header();
echo "<h3>仮登録が完了しました。</h3>";
echo "<p>メール認証用のメールを[$email]へ送信しました。</p>";
echo "<p>メールにある認証用URLをクリックしてください。<p>";
show_html_footer();
}else{
echo "送信に失敗しました";
}
}



}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
<title>*****</title>
</head>
<body>
<div id="top">
<div id="header">
<h1><a href="index.php"><img src="images/logo.jpg" alt="" /></a></h1>
<div id="pr">
<p>****************</p>
</div><!-- /#pr -->
</div><!-- /#header -->
<div id="menu">
<ul>
・・・
・・・
・・・
・・・
</ul>
</div><!-- /#menu -->
<div id="icatchIndexWrap">
<div id="icatch">
<p><img src="images/top.jpg" alt="" /></p>
</div><!-- /#icatch -->
</div><!-- /#icatchWrap -->
<div id="contents">
<div id="main">
<h3>アカウント確認</h3>
<form action=""method="post">
<input type="hidden"name="action"value="submit">
<dl>
<dt>ニックネーム</dt>
<dd>
<?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES,'UTF-8');?>
</dd>
<dt>メールアドレス</dt>
<dd>
<?php echo htmlspecialchars($_SESSION['join']['email'],ENT_QUOTES,'UTF-8');?>
</dd>
<dt>パスワード</dt>
<dd>
【表示されません】
</dd>
</dl>
<div><a href="admission.php?action=rewrite">&laquo;&nbsp;書き直す</a>|<input type="submit"value="登録する"></div>
</form>
</div><!-- /#main -->
<div id="sub">
<div class="section">
・・・・・・・・・


という感じで

ニックネーム確認欄の

<?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES,'UTF-8');?>

でエラーが出ます

実はphp独学なもので知識が足りない部分が多々あります

どなたかわかる方ご教授お願いします
Yahoo!知恵袋 4212日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
(カテゴリPHPのほうが良くないですか?)

そのまんまコピペしましたけど、Parseエラーは起こりませんでしたよ?
http://ideone.com/u7G4a9

Parseエラーはもう修正済みなんじゃないですかね?

<?php echo htmlspecialchars($_SESSION'join''name',ENT_QUOTES,'UTF-8');?>

でエラーが出るとすれば、恐らくNoticeエラーかな?
Notice: Undefined index
の可能性が高いかと。

<?php echo isset($_SESSION'join''name') ? htmlspecialchars($_SESSION'join''name',ENT_QUOTES,'UTF-8') : '' ; ?>

にすれば出ません。
ようはセッションに変数がちゃんとセットされていないときにそのエラーが出てるわけです。
issetとemptyにはNoticeを抑制しつつ実行できる特性(つまり関数ではなく言語構造)があるので覚えておいてください。
http://php.net/manual/ja/function.isset.php


【追記】

エラー出ませんでしたが…
http://ideone.com/HPo5iO

いろいろ謎ですね・・・

ヒアドキュメントに対してインデントは使用されては無いですよね?
インデントは使えないので。
そうでないならちょっと原因分かりません…
Yahoo!知恵袋 4212日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
29
Views
質問者が納得(カテゴリPHPのほうが良くないですか?) そのまんまコピペしましたけど、Parseエラーは起こりませんでしたよ? http://ideone.com/u7G4a9 Parseエラーはもう修正済みなんじゃないですかね? <?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES,'UTF-8');?> でエラーが出るとすれば、恐らくNoticeエラーかな? Notice: Undefined index の可能性が高い...
4212日前view29
全般
25
Views
質問者が納得ニコンのD70、キャノンのIXY910IS を愛用しています。D70が600万画素、IXYが1000万画素あります。 うちの機種の場合、画素数はIXYの方が上になりますが、大事な場面(子供の入学式や運動会、七五三、冠婚葬祭など)では必ず一眼レフを使います。 画素数が下回っても、やはり写真の奥行きとかナチュラル感、仕上がりが違います。レンズの違いは大きいです。 ただ、一眼レフは重たくてかさばるので、身軽に動きまわりたい時などは、コンパクトデジカメ愛用です。スキー旅行とか、子供の保育参観とか。 写真を記念...
5110日前view25

取扱説明書・マニュアル

680view
http://fujifilm.jp/.../ff_finepixreal3dw1_mn_j100.pdf
140 ページ3.14 MB
もっと見る

関連製品のQ&A