スレッド表示 | フラット表示〕 全トピック 920 件中 107 番目 次≫ ≪前

ページ切り替えについて

created: 2007-05-16 15:25 | modified: 2007-06-29 03:59 | reply: 6

[3736] ページ切り替えについて

user: kuwa ホームページ | created: 2007-05-16 15:25
ゆうじさん、先日はお世話になりました。また登録フォームでつまづいてしまったので質問させてください。
今このサイト
https://signup.davidbowie.com/
を参考にして会員登録フォームを作成しているのですが、上のサイトのように1つのページで全ての登録を完了しようと考えてます。
if文で切り替えるようプログラムを打っているのですが上手く進みません。ソースを書いておくので、どこが間違えているのか分かる方教えてください。
できれば上のサイトにできる限り近づければと思ってます。
自分のページも書いておきます。

よろしくお願いします。

<?php
//-----------------------------------------------
// □ POSTされてたら
//-----------------------------------------------

if(isset($_POST['module']) && $_POST['module'] == "Signup" && $_POST['page'] == "SignupPage2")
{
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
//フォーム処理
$first_name = $_SESSION['first_name'] = _ss($_POST['first_name']);

if (isset($_POST['nextbutton']))
{
$first_name .="";
$last_name .= "";
//省略
//-----------------------------------
// ■ 入力チェック
//-----------------------------------
//Eメール入力チェック
if ($email == "")
{
$error['require_email'] .= '<br>Eメールアドレスが未入力です!';
}
//省略

//-----------------------------------
// ■ もしエラーがない場合は確認ページに飛ぶ
//-----------------------------------
if ($error =="")
{
header("Location: index2.php?module=Signup&page=SignupPage2");
}
}
}
}
?>
//登録フォームの表示
<form method="POST" action="index2.php?module=Signup&page=SignupPage2" name="signup1" id="signup1"><div>
<input name="module" id="module" type="hidden" value="Signup">
<input name="page" id="page" type="hidden" value="SignupPage2">
<input name="wp-pc" id="wp-pc" type="hidden" value="SignupPage2">

//省略
<input type="submit" name="nextbutton" id="nextbutton" class="button" value="Create">

<?
登録確認ページ
if(isset($_POST['module']) && $_POST['module'] == "Signup" && $_POST['page'] == "SignupPage2")
{
?>

ユーザーが入力した内容を表示

<form method="POST" action="index2.php?module=Signup&page=SignupPage3" name="signup1" id="signup1"><div>
<input name="module" id="module" type="hidden" value="Signup">
<input name="page" id="page" type="hidden" value="SignupPage3">
<input name="wp-pc" id="wp-pc" type="hidden" value="SignupPage3">

//省略

<input type="submit" name="nextbutton" id="nextbutton" class="button" value="next">

<input type="submit" name="backbutton" id="backbutton" class="buttonback" value="back"></span>

//登録完了ページ
<?
}
elseif(isset($_POST['module']) && $_POST['module'] == "Signup" && $_POST['page'] == "SignupPage3")
{
?>
完了内容の表示
<?php
}
?>
reply: 3737 返信 編集 削除

[3737] Re. ページ切り替えについて

user: ゆうじ | created: 2007-05-16 17:10
まいどです。

先にコードチェック以前の問題ですみません。

期待する結果があり、アクションを起こしたけれど、
期待と違う現象がおきたので「上手くいかない」と
思われたのだろうと推測いたします。

ただ「上手く進みません」というのは
kuwaさんの頭の中だけの話で
他の誰も状況を把握できないので答えられないと思います。


1.期待した結果
2.起こしたアクション
3.実際に起きた現象

「上手くすすみません」は、これに置き換えてみてください。
Parent: 3736  reply: 3739 返信 編集 削除

[3739] Re.Re. ページ切り替えについて

user: kuwa ホームページ | created: 2007-05-16 19:06
ゆうじさん、相変わらずの説明不足ですいません・・。
まず、最初にユーザーの入力画面が表示されます。ここはまったく問題ないのですが、ここでユーザーが入力して送信された場合に、入力チェックをします。エラーがあった場合はエラー内容を表示します。ここまでも問題ないのですが、困っているのは入力チェックした時に、エラーがなかった場合は確認ページ(index.php?module=Signup&page=SignupPage2)に飛ぶようにしたいのですが、飛んでくれません。今の現状は送信したら入力内容が全て消えてしまいます。
よろしくお願いします。
Parent: 3737  reply: 3740 返信 編集 削除

[3740] 飛ばない原因の切り分け

user: ゆうじ | created: 2007-05-16 20:02
if ($error =="") {
header("Location: index2.php?module=Signup&page=SignupPage2");
}

とりあえずこれの前に

var_dump($error);
exit();

とか挿入して、変数が想定した値か確認してみました?


あと、
$first_name .="";
$last_name .= "";
if ($email == "") {
$error['require_email'] .= '<br>Eメールアドレスが未入力です!';
}

これらの追記 .= は意味があるように思えませんが、
= の間違いではありませんか。
意図して .= を使ってるならかまいませんが。


それと

> 今の現状は送信したら入力内容が全て消えてしまいます。

指定のページに飛んでない状況で
何か関係があるのでしょうか。
Parent: 3739  reply: 3742 返信 編集 削除

[3742] Re.飛ばない原因の切り分け

user: kuwa ホームページ | created: 2007-05-16 21:02
>var_dump($error);
>exit();
>とか挿入して、変数が想定した値か確認してみました?

ゆうじさん返事ありがとうございます。
var_dump($error);
exit();
を挿入したところ
NULLと返りました。

> あと、
>
> $first_name .="";
> $last_name .= "";
>

>
> if ($email == "") {
> $error['require_email'] .= '<br>Eメールアドレスが未入力です!';
> }
>

>
> これらの追記 .= は意味があるように思えませんが、
> = の間違いではありませんか。
> 意図して .= を使ってるならかまいませんが。

意味ないですね(笑)

>
> それと
>
> > 今の現状は送信したら入力内容が全て消えてしまいます。
>
> 指定のページに飛んでない状況で
> 何か関係があるのでしょうか。

すいません、間違えました。全て入力して送信を押すと真っ白になります。
Parent: 3740  reply: 3743 返信 編集 削除

[3743] 原因の切り分け

user: ゆうじ | created: 2007-05-16 23:40
var_dump($error); が null ならば次のif分は実行されますね。
ならば header の行がおかしいとわかりますよね。

header使い方で間違ってるところはありませんか。
http://jp.php.net/manual/ja/function.header.php


> すいません、間違えました。全て入力して送信を押すと真っ白になります。

ブラウザで見ると真っ白でも
ソースに何か出力されていませんか。

ブラウザの表示は
サーバが返してきた結果をブラウザが解釈した結果ですので
デバッグの際は必ずソースを見てください。
Parent: 3742  reply: 3796 返信 編集 削除

[3796] Re.原因の切り分け

user: kuwa ホームページ | created: 2007-06-29 03:59
ゆうじさん、お久しぶりです!やっとネットが繋がりました!返事が遅くなって本当にすいませんでした!
今の現状ですが、相変わらず上手くいっていません(笑)
今は入力項目を一つにして入力チェックを行ない、問題がなければ登録完了ページに飛ぶようにテストしていますが、以前も書きましたが同じページ内で条件分岐したいのですが、それがどうしても上手くいきません。
今に状態は入力チェックも問題なくページも指定したアドレスが表示されるのですが、最初の入力ページに戻ってしまいます。

ソースを書いておくので問題点を教えてください。

//入力画面
<?php
if(!isset($module) && !isset($wppc))
{
$module = $_SESSION['module'] = NewsletterSignup;
$wppc = $_SESSION['wp-pc'] = NewsletterSignupPage1;
?>

<form method="POST" action="index2.php?module=NewsletterSignup" name="signup1" id="signup1"><div>
<input name="module" id="module" type="hidden" value="<?php echo _hs($module) ?>">
<input name="wp-pc" id="wp-pc" type="hidden" value="<?php echo _hs($wppc) ?>">

<?php
//POSTされてたら

if(isset($_POST['module']) && $_POST['module'] == "NewsletterSignup" && $_POST['wp-pc'] == "NewsletterSignupPage1")
{
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
//フォーム処理
$first_name = $_SESSION['first_name'] = _ss($_POST['first_name']);

if (isset($_POST['nextbutton']))
{

//-----------------------------------
// ■ 入力チェック
//-----------------------------------

//名字チェック
if ($first_name == "")
{
$error['require_first_name'] .= '<br>名字が未入力です!';
}
if($error == "")
{
header("Location: index2.php?module=NewsletterSignup&page=NewsletterSignupPage2");
exit();
}
}
}
}

?>

<?php
}
//登録処理
elseif(isset($_GET['module']) && $_GET['module'] == 'NewsletterSignup' && $_GET['page'] == 'NewsletterSignupPage2')
{
?>

何度も申し訳ないですがよろしくお願いします。
Parent: 3743  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 107 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑