• ベストアンサー

パスワードの保存

フォームからログインした場合にブラウザにパスワードを保存するを表示する方法ってありますか? 例えばグーグルクロームだと、ブラウザの上のほうに「パスワードを保存しますか?」とでますよね? しかし、ログインしてもその表示がでません ログインページから<form action="" method="post">で同じページに送信して、ログインしたらheader('Location: index.php');でページ移動させています

  • flash0
  • お礼率97% (297/306)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

基本的にパスワード領域を保存するかどうかはブラウザの仕様なので ユーザー環境に依存するものだと理解しておいた方がよいです。 あえてjavascriptで処理するならクッキーに保存しておいて、ログイン画面が 呼び出された場合に任意に吐き出してやる手もありますが その場合クッキー上に生のパスワードが残ってしまうのであまり 頭のよい方法ではありません。 一般的にはページへのアクセスにセッションを残しておき、 一定期間はログインIDとパスワードではなくセッション情報でログイン状態を 確保するのが基本になるでしょう。 その場合パスワードを保持しておく意味がないので、あえて処理をいれなくても よいでしょう。

flash0
質問者

お礼

お答え頂きありがとうございます もう少し調べてみます

関連するQ&A

  • jQuery Moblie サイトの登録処理

    登録確認ボタンを押したら、フォーム アクションは先に自身のページのエラーの確認を行い、エラーメッセージがなければ、 if (empty($error)) { header('Location: index_insert.php');  exit(); } index_insert.phpに移動が出来ますが、$_POSTのデータが何も表示されないです。 フォームアクションはaction="index_insert.php"にしたら、エラーの確認処理はやってないので、入力したデータはindex_insert.phpで$_POSTが表示されました。 エラーの確認処理と$_POSTも表示したいですが、どうすれば良いですか? 

    • ベストアンサー
    • PHP
  • header関数でページ移動する場合の変数について

    MySQLとPHPを使ったWebシステムの勉強をしているPHP初心者です。 現在ログイン認証ページを作っており、 (1)IDとパスワードをフォームで入力     ↓ (2)action='$PHP_SELF'で同じページにリダイレクト     ↓ (3)認証を確認し次第header関数で自動的に別のページに飛ばす     ↓ (4)IDに応じてページの内容を変える。 という風にしています。(3)の部分のソースコードは(かなり省いてはいますが)以下の通りです。 if (session_is_registered($ADMSESS)) { header("location: admnew.php"); } ここで、(3)までのページで使っていた変数を(4)のページでも受け取り、そのまま使いたいと思っているのですが、どうしたらいいでしょうか。今は(4)を開いたとき、どのようなIDでログインしても同じページが表示されています。 分かりにくいですね、、HTMLベースのフォームだとaction=POSTを用いて飛ばした変数を $変数 = $_POST['変数'];として受け取ることが出来ますが、PHPで同じことをやろうとするとどうなるのか、ということです。 分かる方いましたら、どうか御回答宜しくお願いします。

    • ベストアンサー
    • PHP
  • 同一ページへのコメントの追加

    Webページに簡単なコメント欄を追加したいと思っています。 フォームの内容をpostでPHPに渡す方法でファイルに書き込んで 同じページに表示したいのですがページがphpに遷移してしまいます。 具体的にはindex.htmlにフォームを設けて、submitすると そのコメントをファイルに出力し、 その内容をphpで編集して結果をindex.html上に表示したいと思っています。 <form action="index.php" method="post"> という渡し方自体が行けない気がしているのですが方法がわからず 教えていただけないでしょうか。 php, javascript(prototype)でできるとありがたいです。

    • ベストアンサー
    • 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
  • セッション PHPとHTML

    form1.htmlのaction先にorder.phpを指定し、そのorder.phpで$_POSTを使ってform1.htmlのフォーム情報を取得します。その後、order.phpはheader(Location)でform2.htmlをブラウザ上に表示させます。 form2.htmlはaction先が同じorder.phpになっており、ifで動作を制御しています。form2.htmlのsubmitボタンを押すと、画面上にorder.phpにより、今まで2つのフォームで入力した内容が表示されます(order.phpはsessionですべての変数を保持しています)。 この時「form1の内容を訂正」「form2の内容を訂正」というリンクないしボタンを設けて、該当フォームに飛べるようにしたいのです。 このリンク/ボタンで該当フォームに飛んだ場合、入力内容がフォームに表示されるようにするには、どのようにすればいいのでしょうか? いまいちsessionの詳しい使い方が分からなくて困っています・・・。

    • ベストアンサー
    • PHP
  • パスワード認証後次のページにジャンプしない

    現在 パスワード認証→次のページにジャンプ!というプログラムを作成しています。しかしパスワードが認証されても次のページ(現在まだテストの段階ということで、移動先のページはヤフーになっております。) しかしただしいパスワードを打っても次のページに移動せず、エラーが出てしまいます。 ちなみにエラーの際 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cvptoylibrary.com.au\txtupload.php:7) in C:\xampp\htdocs\cvptoylibrary.com.au\txtupload.php on line 53 というメッセージがでます。ただ何分初心者のため、文章が理解できません。 たぶん header ("Location: http://yahoo.co.jp"); exit; のところがおかしいのだろうと思いますが、どう修正すればよいのか、お解りになるかたがいましたら、ぜひアドバイスのほうよろしくお願いいたします。 以下は私がかいたプログラムの抜粋です。 <?php $data = $_POST['data']; $pass = "1234"; $data = htmlspecialchars($data, ENT_QUOTES); if($data == "") { echo ""; } else { if($pass== $data) { header ("Location: http://yahoo.co.jp"); exit; } else { echo "パスワードが正しくありません"; } } ?> <form action="txtupload.php" method="post"> <input type="password" name="data" size="30"> <input type="submit" value="login"> </form>

    • 締切済み
    • PHP
  • フォームで送られたデータのキャッシュを消したい。

    最近phpを始めたばかりの初心者です。 簡易的なアクセス認証?のようなものを作っています。 実行すると、フォームが現れ、パスワード「12345」を入れると includeのindex.incを表示し、 パスワードが合っていなければ「パスワードが違います」と表示させるように以下のコードを書きました。(かなり稚拙なコードで見難いとは思いますが。。) <?php $pass = $_POST['pass']; if ($pass=="12345"){ include("index.inc"); exit; }elseif ($pass!="12345"){ echo 'パスワードが違います'; }else{ echo ' <form method="post" action="'; echo $PHP_SELF; echo '"> <input type="password" name="pass"></form> パスワードを入れてください'; }?> で、一応は動作するのですが、ページをリロードさせるとブラウザから「フォームのデータを再送信します」旨のアラートが出ます。 ここで困っています。 パスワードを間違った場合、ブラウザのバックで戻る事で、入力フォームには戻れますが、もしそのままリロードしてしまうと、誤ったデータがキャッシュに入ったまま再入力されてしまい、再度このphpに戻っても「パスワードが違います」という表示のままになってしま、フォームが現れません。 また、一旦ページを閉じたり、別のページに飛んでも、このphpに入ったときには再度パスワードを入力させたいと思います。 ブラウザのキャッシュに問題があると思い、 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-control" CONTENT="no-cache"> <META http-equiv="Expires" content="0"> を追加してみたのですが、うまく行きません。 どのようにしたら良いのでしょうか? なるべく簡易的なものを考えています。 が、やはりセッションなどを使う事になるのでしょうか。。

    • ベストアンサー
    • PHP
  • MD5化したパスワードを再度パスワード認証する

    説明下手かもしれませんが、MD5化したパスワードを再度パスワード認証する方法で躓いてしまいました。 test.php $passwd = 'admin'; $passwd = md5($passwd); if(!isset($password)){$password = md5($_post('password')) ;} if($password == $passwd)){ //ファイルへ書き込み、ファイル一覧表示する処理(コード省略) //★★ 処理した後に、この下でコードでパスワード認証されたPOST送信ボタンを出力 ★★ echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>"; } 問題は (1)$passwdはMD5で暗号化されている (2)POST送信された$passwdはMD5で暗号化されたものが、md5($_post('password')で更にMD5化されて認証エラーになる。 なのでフォームボタン(POST送信)を使用し、自身のスクリプトに認証されるような処理を行いたいのですが、 いい方法をアドバイス下さい。 echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>";

    • ベストアンサー
    • PHP
  • ブラウザの「戻る」ボタンを押したときの移動先

    送信フォームがあるページで、<form action="" method="post">としています。このフォームから送信した場合、送信後、同じページがもう一度読み込まれると思うのですが、そこでブラウザの「戻る」ボタンを押すと、当然送信前のページ(=同じページ)に移動して、もう一度押すとその前に表示していたページに戻ります。 送信後にブラウザの「戻る」を押したときに同じページをもう一回表示せずに、その前に表示していたページに直接移動させるようなことは、可能でしょうか? $_SERVER['HTTP_REFERER']を使って「戻るリンク」を設置することはできるのですが、今回は、ブラウザの「戻る」ボタンの動作の話です。 ページはPHPで生成しています。

    • ベストアンサー
    • PHP
  • 入力フォーム内容のDB保存について

    MySQLへの登録処理についての質問お願いします。 サイトの登録用ページを作っていていて、PHPでmySQLにデータを保存する。 というながれのプログラムを作っています。 空白のまま「送信」を押すと、空白エラー「メールアドレスを入力してください」のメッセージが出るようになっています。 その後のDB保存がどうしてもうまくいかないので間違えをご指摘いただければ幸いです。 DB接続は、 'データベースに接続しました'と表示されています。 soushin.phpの最後に記述しているheader('Location: soushin.php');が正しいのかもわかりません。 よろししくお願いします。 //index.php <html> <body> <form action="" method="POST" > <label for="mail">メールアドレス</label> <input name="mail" type="text" id="mail" size="35" maxlength="255" > <?php if($error['mail'] == 'blank'):?> <p class="error">メールアドレスを入力してください</p> <?php endif; ?> <br> <input type="submit" value="上記に同意して仮登録メールを送信"> </form> </body> </html> //soushin.php <?php session_start(); mysql_connect('localhost','my_db','') or die(mysql_error()); echo 'データベースに接続しました'; mysql_select_db('kaiin_touroku'); mysql_query('SET NAMES UTF8'); if (!isset($_SESSION['join'])) {     header('Location: index.php'); exit(); } if (!empty($_POST)){     //登録を処理する     $sql = sprintf('INSERT INTO kaiin_touroku SET mail="%s"',     mysql_real_escape_string($_SESSION['join']['mail']) ); mysql_query($sql) or die(mysql_error()); header('Location: soushin.php'); } ?> <!DOCTYPE HTML> ・ ・ ・ <form action="" method="post">  <dl>  <dd> <?php echo htmlspecialchars($_SESSION['join']['mail'], ENT_QUOTES, 'UTF-8'); ?>に送信いたしました。  </dd>  </dl>  </form>

    • 締切済み
    • PHP

専門家に質問してみよう