ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Let's PHPコミュのクッキーを有効にする場合

  • mixiチェック
  • このエントリーをはてなブックマークに追加
PHP:5.0.1
OS:Windows XP
サーバ:XREA.COM

とあるサイトの作成を引き継ぎました。
以下のURLを見て頂けますでしょうか↓
http://www.e-love.jp/login.php
「次回からログインを省略する」っていうのを有効にしたいのです。
クッキーを有効にすればいいということは、わかるのでとりあえず本を見て以下のコードを入れてみました。(今は入っていない状態です。)↓
if ($_COOKIE['loginID'] != '') {
$_POST['loginID'] = $_COOKIE['loginID'];
$_POST['password'] = $_COOKIE['password'];
$_POST['keepLogin'] = 'on';

if ($_POST['KeepLogin'] == 'on' {
setcookie('loginID', $_POST['loginID'], time()+15*60);
setcookie('password', $_POST['password'],time()+15*60);

入れる場所が悪いのか、なぜなのかエラーになってしまいます。
この辺でエラーになってしまうんです。↓
$DBpas = mysql_fetch_array($ret);
わかる方助言をお願い致します。

間違っているとことかビシバシ言ってもらえると助かります。



<?php
//コンフィグファイル読込
require("config.php");
?>
<?php
if($_POST['keepLogin'] != '')
{
//クッキーの有効期限=1時間
session_set_cookie_params( 3600, '/', '.e-love.jp');
//session_set_cookie_params( 365 * 24 * 3600, '/', '.e-love.jp',0,1);
}
else
{
session_set_cookie_params( 0, '/', '.e-love.jp');
//session_set_cookie_params( 0, '/', '.e-love.jp',0,1);
}

//セッションID発行
session_start();

//DBに接続
$link = mysql_connect($dbHost,$dbUser,$dbPassword);
mysql_selectdb($dbName);
//$result = mysql_set_charset('utf8');
//////////////////////////////////////////////////////////////
$result = mysql_query('set names SJIS', $link);
//////////////////////////////////////////////////////////////

//ログインIDとパスワードに空欄を入力された場合、パスワード確認のときに真になってしまうので
//テキトウに値を入れておく
if( $_POST['password'] == '' )
{
$_POST['password'] = time();
}


if( $_POST['action'] == "login" )
{
//状態が、仮登録を終え 2:通常 か
$sql = "select * from USER_INFO where LOGIN_ID = ' " . mysql_real_escape_string( $_POST['loginID'] ) . " ' and USER_CONDITION = '2'";

$result = mysql_query($sql);

//取得した行に対応する配列を返す
$users = mysql_fetch_array($result);

//DBに数字いれたことで前後にスペースがはいってしまうので調整
$DBpas = "select trim(USER_INFO.PASSWORD) as PASSWORD from USER_INFO where LOGIN_ID = ' " . mysql_real_escape_string( $_POST['loginID'] ) . " ' and USER_CONDITION = '2'";
$ret = mysql_query($DBpas);
$DBpas = mysql_fetch_array($ret);


print "DBパス[" . $DBpas['PASSWORD'] . "]";
print "入力パス[" . md5($_POST['password']) . "]";
// $postPassword = " " . md5($_POST['password']) . " ";

if( $DBpas['PASSWORD'] == md5($_POST['password']) )
{
print "ううううううううううう";

//ログインチケット発行。認証するたびにBDに問い合わせにいくのは不可がかかるので・・・セッションでもっておく。
$_SESSION["loginID"] = $_POST['loginID'];
$_SESSION["authCode"] = md5( $magicCode . $_POST['loginID'] );
$_SESSION["name1"] = $users['NEAM1'];

/**********************/
//ログイン時刻DBに増設したら入れたらコメント外す
/*
$sql = "update USER_INFO set LOGIN_DATE = ' " . date(Y-m-d H:i:s) . " ' where LOGIN_ID = ' " . mysql_real_escape_string( $_POST['loginID'] ) . " ' and USER_CONDITION = '2'";
$result = mysql_query($sql);
*/
/**********************/

//ログインが成功しリダイレクトページが指定されていればそこにリダイレクトし
//違ければトップページにリダイレクトします。


if( $_GET['redirect'] != '' )
{
header( 'Location:' . $_GET[ 'redirect' ] );
exit;
}
else
{
////////////////////////////////////////////////////////////////////////////////////
// header( 'Location:' . $siteUrl );
//まだhtmlに飛ぶようになっているのでTEST用!!に代入環境整えたら削除
header( 'Location: http://www.e-love.jp/index.php' );
exit;
///////////////////////////////////////////////////////////////////////////////////////
}
}
else
{
//ログイン失敗
$message = '<br><br><font color = "red">  ログイン出来ませんでした。</font><br>';

}
}

?>

<!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" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta name="keywords" content="カップリング,お見合い,婚活,恋活,パーティー">
<meta name="description" content="e-Loveの新規会員登録フォームです。個人情報の入力は任意ですが、お客様がメールアドレス等の必要項目を入力しない場合、e-Loveサービスのご提供ができません。ご登録いただいた情報は弊社のセキュリティポリシーに従い厳重に管理いたしますので、ご安心ください。">
<meta name="robots" content="index,follow">
<title>カップリング・お見合いパーティーで婚活・恋活のe-Love-ログイン</title>
<link rel="stylesheet" href="css/base.css" type="text/css" media="screen,print" />
</head>

<body>

<div id="wrapper">
<div id="e-love"><h1>カップリング・お見合いパーティーで婚活・恋活のe-Love</h1></div>
<div id="header">

<ul id="subnav">
<li><a href="company/company.php" title="会社概要">会社概要</a></li>
<li><a href="message/message.php" title="代表挨拶">代表挨拶</a></li>
<li><a href="contact/contact.php" title="お問い合わせ">お問い合わせ</a></li>
<li><a href="privacy/privacy.php" title="個人情報保護方針">個人情報保護方針</a></li>
<li><a href="map/map.php" title="サイトマップ">サイトマップ</a></li>
</ul>
<div class="logo"><a href="index.php" title="e-Love" ><img src="images/logo.gif" alt="e-Love" /></a></div>
<div class="home"><a href="index.php" title="ホーム" ><img src="images/home.gif" alt="ホーム" /></a></div>


</div><!-- /header-->

<div id="globalnavi">
<ul>
<li id="menu1"><a href="ideal/ideal.php" title="理想の相手が見つかる方法とは">理想の相手が見つかる方法とは</a></li>
<li id="menu2"><a href="plan/plan.php" title="各種パーティープラン">各種パーティープラン</a></li>
<li id="menu3"><a href="schedule/schedule.php" title="開催スケジュール">開催スケジュール</a></li>
<li id="menu4"><a href="report/report.php" title="パーティー報告">パーティー報告</a></li>
<li id="menu5"><a href="order/order.php" title="お申込み方法">お申込み方法</a></li>
<li id="menu6"><a href="q&a/q&a.php" title="Q&A">Q&A</a></li>
</ul>
</div><!-- /#globalnavi -->

<div id="content">
<div id="main">

<h2>ログインフォーム</h2>

<p class="plan">
e-Loveのログインフォームです。<br />
個人情報の入力は任意ですが、お客様がメールアドレス等の必要項目を入力しない場合、e-Loveサービスのご提供ができません。<br />
ご登録いただいた情報は弊社のセキュリティポリシーに従い厳重に管理いたしますので、ご安心ください。<br />
</p>
<p class="line"><img src="images/line.gif" alt="line" /></p>

<!------------------------ /ログインフォーム ---------------------->


<?= $message ?>


<!--引数がついているリダイレクト先が渡されてもよいように、URLエンコードしておきます -->
<form action="login.php?redirect=<?= urlencode($_GET['redirect']) ?>" method="POST">
<input type="hidden" name="action" value="login">

<table border="0" cellspacing="0" cellpadding="0" class="login">
<tr>
<td clospan=2><?= $system_message ?></td>
</tr>
<tr>
<th>ログインID<p>メールアドレス</p></th>
<td><input type="text" name="loginID" class="loginform" /></td>
</tr>
<tr>
<th>パスワード</th>
<td><input type="password" name="password" class="loginform" /></td>
</tr>
<tr>
<th></th>
<td><input type = "checkbox" name="keepLogin">次回からログインを省略する</td>
</tr>
</table>




<p class="plan"><input type="submit" name="Submit" value="ログインする"></p>

</form>

<!------------------------ /ログインフォーム ---------------------->

<p class="plan"><a href="getpass.php">パスワードを忘れた方はこちら</a></p>

<p class="line"><img src="images/line.gif" alt="line" /></p>



</div><!-- /main -->

<div id="side">

</div><!-- /side -->
<div class="clear"><hr /></div>

</div><!-- /content -->


<div id="footer">
Copyright ©2009 e-Community,lnc. All Rights Reserved.
</div><!-- /footer -->

</div><!-- /wrapper-->

</body>
</html>

コメント(11)

間違ってるところ
・ソースばっか長々書いてエラーメッセージを一文字も書いてない
・仕事なのに自力でやらない
・情報漏えい
・単発トピ

株式会社e-Communityもかわいそうに…
>>1
情報漏洩については、トピ主の中の人みずから、当該企業の取締役でらっしゃるようなので
そこはきっとたぶん、いいんじゃないですかwww
そのほかはすべて同意。
>皆様
失礼しました。エラー載せてなかったですね冷や汗 以下のエラーが出ております。
Parse error: syntax error, unexpected '{' in /virtual/taityou3/public_html/login.php on line 56

line 56というのが以下の文の付近になります。
$ret = mysql_query($DBpas);
$DBpas = mysql_fetch_array($ret);


print "DBパス[" . $DBpas['PASSWORD'] . "]";
print "入力パス[" . md5($_POST['password']) . "]";

>abinko様
ありがとうございます。
やってみます!!
> 間違っているとことかビシバシ言ってもらえると助かります。

まともなプロに金払って外注しないところ。
実際問題、質問者がいじったところが、特大のセキュリティホールになるだろうね。
>名前考え中様
ありがとうございます!!
見てみます。
がると申します。

まず

>>
<?php
//コンフィグファイル読込
require("config.php");
?>
<?php
if($_POST['keepLogin'] != '')
{
//クッキーの有効期限=1時間
session_set_cookie_params( 3600, '/', '.e-love.jp');
//session_set_cookie_params( 365 * 24 * 3600, '/', '.e-love.jp',0,1);
}
else
{
session_set_cookie_params( 0, '/', '.e-love.jp');
//session_set_cookie_params( 0, '/', '.e-love.jp',0,1);
}
<<
これ、とある「問題」がありますので、おそらくCookieが有効にならないです。
ヒント。想起しているのはこのWarning「Warning: Cannot modify header information - headers already sent by 」。

その他、いわゆるInjection系を含む、セキュリティホールなどが散在しています。

きちんと今後もビジネスを続けるのであれば、雇用外注はともかくとして、真っ当なエンジニアを一枚かませるほうが安全そうに、私にも見えました。
>がる様
>abinko様

ありがとうございます。
さっそくやってみます!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Let's PHP 更新情報

Let's PHPのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング