ezwebのformタグの動きについて

このQ&Aのポイント
  • ezwebのformタグの動きについてについて調査しています。PCやi-mobileでは正常に動作しているが、au携帯では予期しない挙動が発生します。
  • フォーム関係のトラブルはHTMLの記述に問題がある場合が多いことが分かりました。auでのフォーム作成時に注意すべき点は具体的にどこなのか知りたいです。
  • プロフィール入力ページでのフォームの送信後、外部テキストファイルに書き込みがされない問題も発生しています。
回答を見る
  • ベストアンサー

ezwebのformタグの動きについて

よろしくお願いします。 現在、Web上に公開した社員のプロフィールを、社員自身が携帯電話から更新することができるというシステムを作成中です。 (1)「認証ページ」でID・パスワードを入力 (2)認証がOKならば、「プロフィール入力ページ」へ遷移 (3)プロフィールを入力・修正してボタンを押す→外部ファイルへ書き込み (4)「更新の完了報告ページ」へ遷移 というものです。現在、PCとi-modeでは、意図したとおりの動作が得られることを確認しています。 しかし、au携帯でテストしたところ、 (3)で、プロフィールを入力・修正してボタンを押すと、(4)の動作が無く、「認証ページ」へ戻ってしまいます。 また、「プロフィール入力ページ」でボタンを押すことで、外部ファイルに記録しているデータが書き変わるはずなのですが、ファイルにアクセスする前に「認証ページ」へ戻っているようです。 そこでご質問したいのですが、 PCやi-modoと異なるこの挙動には、どのような原因が考えられるでしょうか? 今回、PHPではなくHTMLのカテゴリに投稿させていただいたのは、htmlの記述に問題があると考えたからです。 どこかのサイトで、auのフォーム関係のトラブルにはhtmlの記述等に問題がある場合が多いらしいという文面を見たことがあったので・・・しかし、auでhtmlフォームの記述をする際に注意すべき点は具体的にどこなのでしょうか?(そのサイトには具体的なことは書かれていませんでした) ご回答、参考URL、予想、推測など、何でも良いのでヒントをいただければと思います。 ためしてみたこと: (1).「プロフィール入力ページ」へ直アクセスしたユーザーを認証ページへheader(Location:---)で飛ばすようにしていたので、ためしにこの一文をコメントアウトして動作確認しました。が、やはり認証ページへ戻ってしまいます。 (2).(1)の状態(header locationをコメントアウト)でも「認証ページ」へ戻ってしまうのは、コメントアウト前のページのキャッシュが残っているためかと考え、他の機種でテストを行いましたが、結果は同じでした。 (3).「プロフィール入力ページ」でボタンを押し、認証ページへ戻った場合、プロフィールのデータは書き換えられていませんでした(外部テキストファイルに記録しています) 以下はプロフィール入力ページのソースです。 <?php session_start(); (中略) if (!isset($_SESSION["SESSVAR"])) { header (認証ページのURL); //←これをコメントアウトしても動作内容に変化はありませんでした } $action = $_POST['action']; if ($action == "post"){ (中略) $fh = fopen($プロフィール保存用ファイル, "wb+"); fwrite($fh, $入力されたプロフィール); fclose($fh); header (更新の完了報告ページ); } <form action="<?php Print $_SERVER['PHP_SELF'] . '?' . SID; ?>" method="post" enctype="application/x-www-form-urlencoded"> <input ---> 名前:<br> <input ---> <input ---> <input ---> <input ---> <br> 生年月日:<br> <input ---> <input ---> <input ---> <br> 趣味:<br> <input ---><br> 特技:<br> <input ---><br> 仕事に対するこだわり・信念:<br> <<input ---><br> お客様へ一言:<br> <textarea></textarea><br> <input type="submit" name="submit" id="submit" value="送信"> ソースの掲示が中途半端で大変失礼いたします。 時間は残されているのですが、実機が手元に無く、動作テストが満足にできないため、すこし焦っております・・・。よろしくお願いします。

  • jbas
  • お礼率100% (1/1)
  • HTML
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#100277
noname#100277
回答No.1

action="<?php Print $_SERVER['PHP_SELF'] . '?' . SID; ?>" 此処が問題の可能性が高いかも?

jbas
質問者

お礼

ご回答ありがとうございました。お返事が遅れまして申し訳ありません。 aidesさまの意見もふまえ、もう一度ソースを見渡してみましたが、 解決には至らなかったため、auに関しては 実機テストが充分に行える環境が手に入るまで保留とすることにしました。 質問を一旦締めさせていただきます。どうもありがとうございました。

関連するQ&A

  • formタグのactionについて

    PHPを勉強している初心者ですが、 HTMLでつまづいています。 formタグのactionでは通常、送信先のファイルを指定すると思いますが、 action="?"と記載されています。 この場合どのような動きになるのでしょうか。 <form action="?" method="POST"> <img src="image.php?time=<?=$time?>&key=<?=$key?>"> <br> 画像の文字列:<input type=text name=image_key></td> <br> <br> <input type=hidden name=time value="<?=$time?>"> <input type=hidden name=key value="<?=$key?>"> <input type=submit value="ログイン"> <br> <hr> copyright(C) <a href="http://php.to/">http://php.to/</a> </form>

    • ベストアンサー
    • HTML
  • 2つのFormタグの動作について

    同じページに2つのFormタグを設置したいと考えています。ページが長いため、上部と下部それぞれにFormタグを設置したいと考えています。 <form name="upForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> --------------- 他の処理 --------------- --------------- 他の処理 --------------- --------------- 他の処理 --------------- <form name="downForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> 下のFormの送信ボタンを押すと、上のFormが動作しているようで、下のFormの入力値が反映されません。それぞれのFormをそれぞれの送信ボタンで動作させる方法につきまして、ご存知の方がいましたらぜひ教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • FORMタグについて教えてください

    HPへの訪問者からメッセージを送ってもらおうと以下のHTMLを挿入して みたのですが、うまく行きません。名前を入力して、送信ボタンを押す とメールソフトは起動するのですが、メールの中身は空っぽです。私の 環境はWinXP+IE6.0+Beckey2.0です。HTMLの問題でしょうか?それとも、 環境(ブラウザーとメールソフトの相性の問題?)のせいでしょうか? <FORM ACTION="mailto:私のメルアド" METHOD="POST"> お名前<BR> <INPUT type="text" size="39" name="namae"> <BR> <INPUT type="submit" name="送信ボタン" value="送信ボタン"><BR> </FORM> よろしくお願いします。

  • 二度目のForm表示

    こんにちは。 例えば一行で下記のように○○.htmlとすると、 <html><body> <form action="display.php" method="POST"> <input type="text" name="fName" size="30"><br> <input type="submit" value="submit"> </form> </body></html> 次のdisplay.phpにて下記で呼び出せますが、 print $_POST['fName']; その後更に別ページで上記を呼び出す場合は どうしたら良いのでしょう? わかる方、ご教授ください。

    • ベストアンサー
    • PHP
  • FORMタグの中の2つのボタンの処理について

    PHPの勉強を始めたばかりのものです。 よろしくお願いします。 以下のようなページを作りたいと考えています。 フレームで上下に分けられたページで、上側を「upper.php」、下側を「lower.php」とします。 下側(lower.php)に3つの入力欄〔入力欄(1)〕〔入力欄(2)〕〔入力欄(3)〕と2つのボタン【ボタン(1)】【ボタン(2)】があります。 【ボタン(1)】は、〔入力欄(1)〕のデータをもとに、フレームの下側の内容を書き換えます。 【ボタン(2)】は、〔入力欄(1)〕〔入力欄(2)〕〔入力欄(3)〕の情報をもとに、フレームの上側の内容を書き換えます。 自分なりに勉強して、とりあえず、下記のようにしたのですが、上のページを更新する部分をどのようにすればいいのか分かりません。 ご教授、よろしくお願いします。 <「lower.php」の中の記述> <?php if ($_POST[Button_1]) { 下側のフレームの更新処理に関わる部分 (この部分はうまく機能しています) } elseif ($_POST[Button_2) { 上側のフレームを更新する処理 (★★この部分をどのように記述すればいいのかわかりません★★) } ?> <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <INPUT TYPE="text" NAME="INPUT_1"> <input type="submit" name="Button_1" value="登録"> // 「INPUT_1」のデータを使って、下側のフレームの内容を更新 <INPUT TYPE="text" NAME="INPUT_2"> <INPUT TYPE="text" NAME="INPUT_3"> <input type="submit" name="Button_2" value="登録"> // 「INPUT_1~3」のデータを使って、上側のフレームの内容を更新 </form> よろしくお願いします。

    • ベストアンサー
    • PHP
  • 認証した後の画面遷移

    こんにちわ。現在、管理者名とパスワードを入力し、空白時、半角英数以外の入力がされたとき、管理者名もしくパスワードが違うときにそれぞれのページに飛ばそうと思っているのですが、どうしても空白字のページ(header( "Location: masterfalse01-01.php" );にしか行かず悩んでいます。ちなみに、あらかじめ決めた管理者とパスではきちんと次の画面に飛ぶことはできました。 <html> <head><title>認証</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <center><br>管理者名</br> <form method = "post" action = "shoppingmaster.php" > <input type = "text" name = "MASTERNAME"><br> <center><br>パスワード</br></center> <input type = "password" name = "PASS"> <p><input type = "submit" name = "submit" value = "ログイン"></p> </center> </form> <?php $MasterName = mb_convert_kana($str,"rna"); $Password = mb_convert_kana($str,"rna"); if($_POST["submit"] == "ログイン"){ if($_POST["MASTERNAME"] == "abc" && $_POST["PASS"] == "efg") { header("Location: shoppingform.php"); }else if( $MasterName == "" || $Password == ""){ header( "Location: masterfalse01-01.php" ); }else if(!ereg("^[A-Za-z0-9\-]",$MasterName, $Password )){ header( "Location: masterfalse01-02.php" ); }else { header( "Location: masterfalse01-03.php" ); } } ?> </body> </html> ご回答お願いできますでしょうか?

    • ベストアンサー
    • PHP
  • Formを使ったPHP間での受け渡しについて

    いつもお世話になっています。 PHP間での変数の受け渡しで・・ <form action="<?= test.php ?>" method="POST">   <input type="hidden" name="id" value="aaa"/>   <input type="submit" name="submit" value="送信"> </form> と記述するとtest.phpには渡したいaaaが渡されるのですが、 これだとsubmitを押さないと渡せないため困っています。 したいことをまとめると、submitを使わずにページが表示されたら スグに変数が渡されるようにしたいです。 いろいろ試してみましたが、力不足で出来ませんでした。 宜しくお願いします!

    • ベストアンサー
    • PHP
  • formで複数のボタンを使いたい

    htmlの問題なので、カテゴリがhtmlかphpか迷いましたがphpで質問します。 htmlにおいて、form中にsubmitボタンを2個置きたいのです(例、修正ボタンと削除ボタン)。普通ならnameで区別しろということになり、飛び先(例えばaction=judge.php)中でnameで分岐させることになると思います。 ところが、現在phpフレームワークベースで開発しており、上記2つの処理を行うphpがすでにあるため、htmlからは、ボタンのactionによりそれぞれ別のphpを呼び出したいのです。以下に擬似コードを示しますが、以下のようにformが2つだと商品コード入力が2つになり、なんともおかしいので困っています。 form method=post action=edit.php input type=text 商品コード, input type=submit 修正 form method=post action=delete.php input type=text 商品コード, input type=submit 削除 質問のように1つのformに対して複数のsubmitを置くか、あるいは2つのformでも上記商品コードが1つであれば問題ないので、もしそのような方法があればご教示をよろしくお願いします。

    • ベストアンサー
    • PHP
  • メール送信時の不具合

    以下a.html→b.html→c.phpのフローでテキストエリアに入力された文章がc.php内で一行しか表示されませんでした。 全文表示したいのですが、どうすれば良いのでしょうか?ちなみにhtmlファイル内でもphpは使える環境になっています。サーバはロリポップです。 どなたか助けて下さい。よろしくお願い致します。 ■a.htmlファイル <form method=post action="b.html"> 内容:<br> <textarea name="comment" rows="5" cols="70"></textarea> <br> <input type="submit" value="確認"> <input type="reset" value="リセット"> </form> ■b.htmlファイル 内容:<?php echo $comment;?><br> で送信致します。<br> 宜しいですか?<br><br> <form method="POST" action="c.php"> <input type="hidden" name="comment" value=<?php print($comment);?>> <input type="submit" value="送信" /> </form> ■c.php <?php $comment=$_POST['comment']; echo $comment; ?>

    • ベストアンサー
    • PHP
  • form入力数字 をphpでurlの後ろ反映させる方法

    html の <form method="GET" action="post.php"> <input name="u_id" type="text" size="10"> <input type="submit" value="login"> </form> に入力された数字を以下のurlの後ろの●●に反映させhttp://localhost/schuler/php/pic/detail.php?num=●● ページを表示させたいのですが、どのように構文を作成すればよろしいでしょうか。 post.php ファイルを以下のように作成いたしましたが、全く反映されません。アドバイスをよろしくお願いいたします。 <?php $strKey = urlencode($_POST['u_id']); header("Location: http://localhost/schuler/php/pic/detail.php?num=$strKey"); ?>

    • 締切済み
    • PHP

専門家に質問してみよう