バージョン選択

フォーラム

メニュー

オンライン状況

93 人のユーザが現在オンラインです。 (82 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 93
もっと...

サイト内検索

質問 > フロント機能 > 【会員登録(入力ページ)】へデータを引き継ぎたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hihi
投稿日時: 2012/8/28 20:46
対応状況: −−−
一人前
登録日: 2012/8/14
居住地:
投稿: 72
【会員登録(入力ページ)】へデータを引き継ぎたい
[EC-CUBE]2.12.1
[PHP]5.3.1
[データベース]MySQL 5.1.43
________________

男性なら http://ドメイン名/index.php?sex=1 を、
女性なら http://ドメイン名/index.php?sex=2 を
踏んで、サイトに来訪。

       ↓↓↓

男性ならsex=1のデータを
女性ならsex=2のデータを

       ↓↓↓

http://ドメイン名/entry/index.php
【会員登録(入力ページ)】へ

引き継げるかたちにして、これから会員になる人自身が
男女を選ばなくても、データベースに男女の登録が出来ているようにしたいのですが、どのように実現したら良いのでしょうか?
どのファイルを変更したらなど出来るだけ詳しく教えて頂けると助かります。よろしくお願いします。
marugizmo
投稿日時: 2012/8/28 23:45
対応状況: −−−
一人前
登録日: 2012/4/6
居住地:
投稿: 147
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
こんばんは。

2.121で簡単にやってみました。

data/class/LC_Page_Index.phpでaction部分に

if($_GET["sex"]) {
$_SESSION["sex_check"] = $_GET["sex"];

と入れる。
GETでもらったsexの値を"sex_checkでセッションに格納。


data/class/pages/entry/LC_Page_Entry.phpの
switch ($this->getMode()) { の上に

if($_SESSION["sex_check"]) {
$this->sex_check = $_SESSION["sex_check"];
//unset($_SESSION["sex_check"]); }
}

といれる。
セッションのsec_checkをテンプレートに渡す。
セッションの値は消してないので、このフォーム以降必要がなければ、unset($_SESSION["sex_check"]);のコメントをはずしてください。


data/Smarty/templates/default/frontparts/form_personal_input.tpl で性別入力のところ

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

を下記に変更

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1 || $sex_check eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2 || $sex_check eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

$arrForm[$key1]か$sex_checkの値でcheckedをコントロール。


簡単にやるとこんな感じでしょうか。


----------------
Norihiro Maruoka
Wear Net

hihi
投稿日時: 2012/8/31 11:45
対応状況: −−−
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
ありがとうございます。
助かります。
form_personal_input.tplなのですが、valueの値をSESSIONデータから取り込む方法はないのでしょうか?職業などで応用し、職種が増えた時に、input typeで増やさなくても良い方法があれば知りたいのですが、よろしくお願いします。
marugizmo
投稿日時: 2012/8/31 14:40
対応状況: −−−
一人前
登録日: 2012/4/6
居住地:
投稿: 147
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
こんにちは。

SESSIONデータから取り込む = 予めSESSIONに格納するデータを取得しておく。

ということになるので、前後の流れなどを考える必要がありませんか?

また、メルマガ管理>配信内容設定 などで職業をフィルタ条件に使っています。
ご希望の方法で職業を増やすとこれらに問題が生じます。


----------------
Norihiro Maruoka
Wear Net

hihi
投稿日時: 2012/8/31 17:16
対応状況: −−−
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
わかりました。
ありがとうございます。
ちょっと考えてみます。
また、何かあった際にはよろしくお願いします。
hihi
投稿日時: 2012/9/3 13:06
対応状況: −−−
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
お世話になっております。

SESSIONに格納したデータ(この場合はsexの値【1】)をinputを使わずに直接データベースに入れる方法を試みているのですが、うまく行きません。ご教授願いします。

よろしくお願いします。


やりたい事としては、会員に見えない形でデータを保存出来ればと思っています。
hihi
投稿日時: 2012/9/3 15:24
対応状況: 解決済
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
無事に解決できました。
有難う御座いました。
hihi
投稿日時: 2012/10/29 21:53
対応状況: −−−
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
marugizmoさんに教えて頂いた通りにやってみたのですが携帯の方がうまく行きません。セッションからデータが引き出せない状態です。なぜ、パソコンでは出来て携帯では出来ないのでしょうか?
ご教授下さい。

以下のとおりにやってみました。


data/class/LC_Page_Index.phpでaction部分に

if($_GET["sex"]) {
$_SESSION["sex_check"] = $_GET["sex"];

と入れる。
GETでもらったsexの値を"sex_checkでセッションに格納。


data/class/pages/entry/LC_Page_Entry.phpの
switch ($this->getMode()) { の上に

if($_SESSION["sex_check"]) {
$this->sex_check = $_SESSION["sex_check"];
//unset($_SESSION["sex_check"]); }
}

といれる。
セッションのsec_checkをテンプレートに渡す。
セッションの値は消してないので、このフォーム以降必要がなければ、unset($_SESSION["sex_check"]);のコメントをはずしてください。


data/Smarty/templates/default/frontparts/form_personal_input.tpl で性別入力のところ

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

を下記に変更

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1 || $sex_check eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2 || $sex_check eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

$arrForm[$key1]か$sex_checkの値でcheckedをコントロール。
hihi
投稿日時: 2012/10/29 21:57
対応状況: 開発中
一人前
登録日: 2012/8/14
居住地:
投稿: 72
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
marugizmoさんに教えて頂いた通りにやってみたのですが携帯の方がうまく行きません。セッションからデータが引き出せない状態です。なぜ、パソコンでは出来て携帯では出来ないのでしょうか?
ご教授下さい。

以下のとおりにやってみました。


data/class/LC_Page_Index.phpでaction部分に

if($_GET["sex"]) {
$_SESSION["sex_check"] = $_GET["sex"];

と入れる。
GETでもらったsexの値を"sex_checkでセッションに格納。


data/class/pages/entry/LC_Page_Entry.phpの
switch ($this->getMode()) { の上に

if($_SESSION["sex_check"]) {
$this->sex_check = $_SESSION["sex_check"];
//unset($_SESSION["sex_check"]); }
}

といれる。
セッションのsec_checkをテンプレートに渡す。
セッションの値は消してないので、このフォーム以降必要がなければ、unset($_SESSION["sex_check"]);のコメントをはずしてください。


data/Smarty/templates/default/frontparts/form_personal_input.tpl で性別入力のところ

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

を下記に変更

<input type="radio" id="man" name="<!--{$key1}-->" value="1" <!--{if $arrForm[$key1] eq 1 || $sex_check eq 1}--> checked="checked" <!--{/if}--> /><label for="man">男性</label>
<input type="radio" id="woman" name="<!--{$key1}-->" value="2" <!--{if $arrForm[$key1] eq 2 || $sex_check eq 2}--> checked="checked" <!--{/if}--> /><label for="woman">女性</label>

$arrForm[$key1]か$sex_checkの値でcheckedをコントロール。
marugizmo
投稿日時: 2012/11/1 16:57
対応状況: −−−
一人前
登録日: 2012/4/6
居住地:
投稿: 147
Re: 【会員登録(入力ページ)】へデータを引き継ぎたい
こんにちは

引用:
携帯ではセッションが使えない場合があります。


具体的にはdocomoはNGでSoftbankとauの最近の機種はOKです。
その場合、LC_Page_Index.phpで受け取った値をdata/class/pages/entry/LC_Page_Entry.phpに対してGETかPOSTで引き渡す必要がありますが、セッションハイジャックの脆弱性があります。

まずは
http://www.plusmb.jp/2008/11/06/1137.html
など確認いただき理解された方が良いと思います。

「携帯 PHP セッション」で検索すると、いろいろ出てきます。


----------------
Norihiro Maruoka
Wear Net

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,856名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.