• 締切済み

ifの処理について。

初めて投稿させていただきます。諸先輩方よろしくお願いします。 現在PHP5、MYSQLを使ってポイントで買い物が出来るサイトを作成中です。 本人確認のためセッションされているメールアドレスとパスワードと 入力されたメアド、パスワードが同じなら ポイントを使って買い物出来き、残りのポイントを他のテーブルに返す様にしたいのですが、 1、メールアドレスが違います。再度メールアドレスをご確認下さい。 というエラーが返ってきてしまい、欲しい実行結果(残りのポイント数を表示する。)になりません。 どこが間違っているかわからないので教えてください。 <?php $se_EMAIL="a"; $se_PWD = A; $se_POINT = 25000; $P_EMAIL="a"; $P_PWD = A; $Pay1 =1; $q_array=array(1=>"200000","500000","1000000"); //未入力項目がないか確認 if($P_EMAIL="" || $P_PWD="" ) { echo ("未入力項目があります。戻るボタンで戻り、再度入力項目をご確認下さい。"); } else { //入力したメアドとパスワードがセッションしてる物と同じか確認 if($se_EMAIL != $P_EMAIL) {echo ("メールアドレスが違います。再度メールアドレスをご確認下さい。");} elseif($se_PWD != $P_PWD) {echo ("パスワードが違います。再度パスワードをご確認下さい。");} //同じなら換金したいポイントをse_POINTからを引き$NEWPOINへ。 //最低変更のポイントが200000ポイントなので・・・ else{ if($se_POINT >= 200000) {$NEWPOINT = $se_POINT-$q_array[$Pay1];} else{echo ("ポイントが不足しています。再度ポイントをご確認下さい。");} } ?> <html> <head> </head> <body> <br> <br> 残りは<?= $NEWPOINT ?>ポイントです。 <br> </body> </html>

みんなの回答

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 if ( $se_EMAIL != $P_EMAIL ) { の直前で$se_EMAILと$P_EMAILを表示してみるとわかると思いますが、 $P_EMAILが空になってしまっています。 それが何故かというと、 if($P_EMAIL="" || $P_PWD="" ) の部分が間違えています。 if($P_EMAIL=="" || $P_PWD=="") になります。比較は==を使用します。 現在の処理だと$P_EMAILに空文字を代入する記述になります。 単純で何かよくわからない動きの場合はechoはprintを使用して 変数の中身を表示すると原因がつかみやすいですよ。

senbee555
質問者

お礼

テストした結果思惑通りになりました。 ありがとうございました。 今後とも活用させていただきます。 LancerVII様 本当にありがとうございました。

関連するQ&A