ホーム > フォーラム > 質問箱 > 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に..

新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に..
投稿者: amago | 投稿日時: 2006-5-15 17:55 | 閲覧: 10517回
amago
新規ユーザ登録の際、「当サイトの新着情報などをメールで受け取る」ラジオボタンがデフォルトで「いいえ」なっているのを「はい」にしたいのですがどうしたら良いでしょうか?

registerform.php

に書かれてるのでしょうか?

どなたかご教授ください...

コメント(11)

Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: monsuke | 投稿日時: 2006-5-15 20:56
monsuke
registerform.phpで合っていると思います。

引用:
$reg_form->addElement(new XoopsFormRadioYN(_US_MAILOK, 'user_mailok', $user_mailok));

という行の変数$user_mailokの値が
"0"の場合、「いいえ」に、
"1"の場合、「はい」にチェックされるようです。

コアに手を入れるのはあまりお勧めできませんが・・・。
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: amago | 投稿日時: 2006-5-17 1:32
amago
monsukeさん早速のお返事有難うございます。
お返事が遅れてすみません。

引用:
という行の変数$user_mailokの値が
"0"の場合、「いいえ」に、
"1"の場合、「はい」にチェックされるようです。


ここで決まるのですね。ありがとうございます。
そうすると最初からいいえに設定されているという事は変数$user_mailokの値が"0"にどこかで設定されているんですね。一度調べてみます。もし分からなかったら質問させて頂きます!

引用:
コアに手を入れるのはあまりお勧めできませんが・・・。


うっ。そうなんですか...急に不安になりました。やはり素人が触るような事ではないでしょうか....
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: monsuke | 投稿日時: 2006-5-17 1:53
monsuke
引用:
そうすると最初からいいえに設定されているという事は変数$user_mailokの値が"0"にどこかで設定されているんですね。

register.phpの
$user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0;
という行で変数$user_mailokの値を初期化しています。

引用:
うっ。そうなんですか...急に不安になりました。やはり素人が触るような事ではないでしょうか....

いえいえ、そういう意味ではありません。
本体に手を入れるとバージョンアップの時にソースをマージするのが大変なんです。
1箇所だけならまだしも、複数箇所になるともう最悪です。
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: amago | 投稿日時: 2006-5-17 16:11
amago
monsukeさん
訂正箇所まで探して頂きありがとうございました。

引用:
register.phpの
$user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0;
という行で変数$user_mailokの値を初期化しています。


この最後の所の「1 : 0」を「0 : 1」に変更しましたら見事に「はい」がデフォルトになりました。本当にありがとうございました。

引用:
本体に手を入れるとバージョンアップの時にソースをマージするのが大変なんです。
1箇所だけならまだしも、複数箇所になるともう最悪です。


なるほど。そうですよね。バージョンアップの時の事まで考えていませんでした。XOOPSは情報が沢山あるためつい自分も触れるんではないかと思ってしまいますが、将来的な維持管理などの事も考えないといけないんですね。

勉強になりました。ありがとうございました!
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: monsuke | 投稿日時: 2006-5-17 21:15
monsuke
惜しい!
0と1を入れ替えただけだと、入力値チェック(パスワード間違いや入力必須の未入力)ではじかれた場合に、「はい」と「いいえ」の選択値が逆転してしまいませんか?

intval($_POST['user_mailok'])の真偽も逆転させる必要があります。
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: amago | 投稿日時: 2006-5-18 10:40
amago
引用:
0と1を入れ替えただけだと、入力値チェック(パスワード間違いや入力必須の未入力)ではじかれた場合に、「はい」と「いいえ」の選択値が逆転してしまいませんか?


見事に選択値が逆転しました....

引用:
intval($_POST['user_mailok'])の真偽も逆転させる必要があります。


うぐっ。すみません...どうやったら真偽が逆転するのか方法が分かりません。やはりPHPの勉強しないといけませんね。聞いてばかりいるのは失礼かと思いますが、宜しければヒントを教えて頂けますか?
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: monsuke | 投稿日時: 2006-5-19 1:08
monsuke
phpの否定は「!」です。

よって
intval($_POST['user_mailok'])
の先頭に!を付ければ正常に動作すると思います。

Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: domifara | 投稿日時: 2006-5-19 8:27
domifara
横からちょっとだけ
初期値関しては、言われて気が付きましたが、xoopd objectの初期値とかも利用していないですね・・。
引用:
register.phpの
$user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0;
という行で変数$user_mailokの値を初期化しています。

たしかに初期値の変わり代用にはなっていますが、
チェックボックスは、off のときにポスト値を送信しない(するとはかぎらない)から、offの値を送信したのか、初期表示なのか
区別がつかないので
この行はこのままの変更しない方が良いです。

このチェックボックスの初期値は
下記が他に影響でないので良いと思います
line 267から

default:
    include 'header.php';
    include 'include/registerform.php';
    $reg_form->display();
    include 'footer.php';
    break;

とあるところを

default:
    include 'header.php';
	//------------------ ついでに他のチェックボックスも明示
	$user_viewemail = 0; //メールアドレスを公開するか
	$user_mailok = 1; //メールを受け取るか
	$agree_disc = 0; //同意するか 0 最初はしないにしておいて、必ず指定するのが正論
	//------------------
    include 'include/registerform.php';
    $reg_form->display();
    include 'footer.php';
    break;

Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: wintermute | 投稿日時: 2006-5-19 19:02
wintermute
ちょーっと出来るか出来ないか書く前に・・・オプトアウトについて調べて貰いたかったですが。

怪しいサイト等でよく使われる方法なので気をつけて下さいね。

(人が多く見るんだから、もちっとWEBについてのモラルとか考える人が居ないと)
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: monsuke | 投稿日時: 2006-5-19 19:50
monsuke
引用:
チェックボックスは、off のときにポスト値を送信しない(するとはかぎらない)から、offの値を送信したのか、初期表示なのか区別がつかないので
おっ、それ知りませんでした。メモメモ。
今回はラジオボタンなので動作しているのかもしれませんね。

引用:
ちょーっと出来るか出来ないか書く前に・・・オプトアウトについて調べて貰いたかったですが。
それも知りませんでした。メモメモ。
そして反省
Re: 新規ユーザ登録で「当サイトの新着情報などをメールで受け取る」を「はい」に.. 
投稿者: amago | 投稿日時: 2006-5-20 9:02
amago
monsukeさん、domifaraさん、wintermuteさん
皆さんありがとうございます。

domifaraさんの方法できちんと動作しました。助かりました。

引用:
オプトアウトについて調べて貰いたかったですが。


オプトアウトは知らなかったです。勉強になりました。
最初からメールのチェックをはいにしておくと問題があるんですね....

私が利用方法を書かなかったのがいけなかったのですが、
実はXOOPSの「ユーザ宛メール送信機能」を使って
福祉関係のNPO団体のメルマガとして使おうとしたんです...
(もちろん他の多くの機能も利用します)
バックナンバーはフォーラムに掲載。
送信するときは「サイトからのメール配信を希望しているユーザのみ」
にする予定です。そうしておけば、配信を中止して欲しい人はアカウント編集で
「当サイトの新着情報などをメールで受け取る」のチェックを外せば
メールは届かず、過去ログは読めると言う使い方です。

今回はメルマガの登録が前提なので
XOOPSに登録するとき「新着情報を受け取る」が「はい」になっていれば
パソコン初心者にも登録ミスがないかと思いましたが
浅はかだったですね...「いいえ」にしておいた方が良いのかな...

ネット上のルールは奥が広いですね。
そして説明不足すみませんでした。

    投票(0)

    新しいものから | 古いものから | RSS feed
     

    概要 | ダウンロード | ニュース | フォーラム | 開発情報 | ツール | テーマ | モジュール
    お問い合わせ | プライバシーポリシー
    Copyright © 2001-2012 XOOPS Cube日本サイト