• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpのプログラムに関する質問です。)

PHPのログインシステムでパスワードが違うエラーが発生する理由と改善方法

このQ&Aのポイント
  • PHPのログインシステムで、パスワードが違うエラーが発生する理由と改善方法について質問があります。
  • ログインシステムのプログラムで、登録してある名前とパスワードを入力すると、最初は「パスワードが違います。」と表示されますが、もう一度同じ情報を入力するとログインできるようになります。
  • 現在のログインシステムのプログラムに問題があり、一度目のログイン時にパスワードが違うエラーが発生してしまう理由を教えてください。また、改良点やアドバイスもあれば教えてください。

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

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

一回目はcookieに登録されていないからだろうと思います。 setcookie("name2", $_POST["name"]); $name=$_COOKIE['name2'];//名前 としていますが、 setcookieでは $_COOKIEという配列には登録されないので、 2回目にならないと名前が取れないのだと思います。 $name=$_POST["name"] で良いのでは無いでしょうか

add0804
質問者

お礼

ありがとうございます。 ご指摘通り直したところ、即効解決しました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ログイン パスワード変更のプログラム

    ログインのプログラムをこんな感じで書いたのですが、 パスワードを変更できるようにするには、どういったプログラムを 追加すればいいのでしょうか? <? $fl='<name>xxx</name><pass>abcde</pass><name>yyy</name><pass>abcde</pass><name>zzz</name><pass>abcde</pass><name>ddd</name><pass>abcde</pass><name>guest</name><pass>guest</pass>';//ファイルから読み込んだ文字列 $name=$_POST['username'];//名前 if(ereg('<name>'.$name.'</name><pass>[a-z0-9]+</pass>',$fl,$a)){ $pass=ereg_replace('[^ ]+<pass>','',$a[0]); $pass=ereg_replace('</pass>','',$pass); if($pass==$_POST['pass']){ echo 'ログインしました。'; }else{ echo 'パスワードが違います。'; } }else{ echo '登録されていません。'; } ?> <form method="POST"> name<input name="username"><br> pass<input type="password" name="pass"><br> <input type="submit" value="ログイン"> </form> 宜しくお願い致します。

    • 締切済み
    • PHP
  • PHPのログイン処理について

    PHPのログイン処理について教えてください。 「login_auth.phpファイル」 <?php //session開始 session_start(); session_regenerate_id(true); //エラーメッセージを格納する変数を初期化 $error_message=""; //ログインボタンが押されたかを確認 if(isset($_post["sub"])){ if($_post["auth_id"] == "auth" && $_post["auth_pass"] == "1234"){ //ログインが成功した証拠をセッションに保持する $_session["login_name"] = $_post["auth_id"]; //管理者トップへWebブラウザをリダイレクトさせる $login_url = "http://{$_server["http_host"]}/reservation/auth_top.php"; header("Location: {$login_url}"); exit; } $error_message = "IDかPASSが間違えています"; } ?> <html> <body> <?php if($error_message){ print '<font color="red">'.$error_message.'</font>'; } ?> <center> <hr size="2" color="blue" width="50%"><br><br> <font size="4"><b>管理者認証画面</b></font> <br><br><hr size="2" color="blue" width="50%"><br><br> ユーザID/パスワードを入力してください。 <form action="login_auth.php" method="post"> <table border="2"> <tr> <td bgcolor="cyan">ユーザID</td> <td><input type="text" name="auth_id" value=""></td> </tr> <tr> <td bgcolor="cyan">パスワード</td> <td><input type="password" name="auth_pass" value=""></td> </tr> </table> <input type="submit" name="sub" value="ログイン"> </form> <a href="javascript:window.close();" target=_parent>閉じる</a> </center> </body> </html> 「auth_top.phpファイル」 <?php //セッションを開始する session_start(); //ログインが成功した証拠である変数のチェックを行なう if (!isset($_SESSION["login_name"])) { //変数に値がセットされていない場合は不正な処理とみなし、ブラウザをログイン画面へリダイレクトさせます $no_login_url ="http://{$_server["http_host"]}/reservation/login_auth.php"; header("Location: {$no_login_url}"); exit; } ?> 管理者画面です。 この簡単なプログラムなんですが、IDとPASSを入力しても画面が切り替わりません。 今、そこで行き詰っています。 どなたか教えていただけないでしょうか??

    • 締切済み
    • PHP
  • POST GET HTTP 404 未検出

    POSTメソッドとGETメソッドの混在したFORMで404エラーとなります。 具体的には、次のようなFORMを考えています。 <form action="login.php?hoge=hogehoge" method="POST"> <table border="0"> <tr><td>ユーザ名</td><td><input type="text" name="name"></td></tr> <tr><td>パスワード</td><td><input type="password" name="pass"></td></tr> <tr><td colspan="2"><input type="submit" value="ログイン"></td></tr> </table> </form> Windows XPではうまく機能するのですが、 Vineではうまくいきません。「HTTP 404 未検出」となります。 どうしたらいいのかさっぱり分からない状態です。 エラーの原因を教えていただければと思います。 詳しい環境: OS:Vine PHP:5.2.8 Apache:2.0

    • 締切済み
    • PHP
  • 【フォーム】PHPで確認画面をだした後にボタンを

    ほぼ初心者のものです 下記のようなフォームをつくりました <form action="regist.php" method="post"> <input type="radio" name="08241" value="A11"/> <input type="radio" name="08241" value="B11"/> <input type="radio" name="08241" value="C11"/> <input type="radio" name="08241" value="D11"/> <input type="radio" name="08241" value="E11"/> <input type="radio" name="08241" value="F11"/> <input type="submit" value="登録する" /> そしてこれらを確認するためにregist.phpを作成し <table width="250" border="1"> <tr> <td width="250">選択したもの</td> </tr> <tr> <td><?php echo $_POST["08241"] ?></td> </tr> <tr> <td>●●●</td> と記載し、選んだものを表示できるようにしました ここからが皆様にお力を借りたいところなのですが フォームから「A11」が選択されて確認画面に「A11」と表示されたとき ●●●のところに下記のような情報を含んだボタンを表示させたいんです <form name="a11" action="/products/detail.php" method="post" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="137" /> <input type="hidden" name="product_class_id" value="634" /> <input type="hidden" name="quantity" value="1" /><br /> <input type="submit" value="決定する" onClick="alert('選択しました')" /> </form> このボタン情報はA11~F11まであって、product_idやproduct_class_idは それぞれ異なっています どこかに一覧を作成しておいて form nameで一致したものを表示させるといった やり方なのかなとは思うのですが、その方法がわかりません PHPを使えばいいのかJavascriptがよいのかもあわせ、記述方法などをご教授いただけませんでしょうか? どうかよろしくお願いいたします

    • 締切済み
    • PHP
  • PHPコード表示について

    PHPコードが下記になっています。 文字バケを正常に表示させる方法を教えてください。 <!-- login-box[start] --> <div id="login"> <?php if (isset($_SESSION['sLoginID'])) { ?> <form action="mem_logout.php" method="post"> <table> <tr> <td>。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td>。。<?php echo htmlspecialchars($_SESSION['sNickname']); ?>、オ、・/td> </tr> <tr> <td class="sp02"><div id="login_right">・愠ー・、・鹵讀ヌ、ケ。」</div></td> </tr> <tr> <td class="sp02"><div id="login_right"><input type="submit" value="・愠ー・「・ヲ・ネ" /></div></td> </tr> </table> <input type="hidden" name="fLoginID" value="dummy" /> <input type="hidden" name="fPassword" value="dummy" /> </form> <?php } else { ?> <form name="login" action="http://www.haradagr-dp.co.jp/test/mem_check.php" method="post" onsubmit="return loginCheck()"> <input type="hidden" name="fTarget" value="<?php echo $ftarget; ?>"> <table> <tr> <td colspan="2">。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td colspan="2" align="center">、ェサ釥キエ・ヨテ讀ヌ、ケ。」<br> ID。ァtestid<br> ・ム・ケ・・シ・ノ。ァtest1234</td> </tr> <tr> <td width="80" valign="bottom" class="login_bold"> ID </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="text" name="fLoginID" size="16" maxlength="16"></div></td> </tr> <tr> <td width="80" valign="bottom" class="login_bold">・ム・ケ・・シ・ノ </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="password" name="fPassword" size="16" maxlength="16"></div></td> </tr> <tr> <td colspan="2" class="sp02"><div id="login_right"><input type="image" src="image/log_in.gif" alt="・愠ー・、・・ width="100" height="20" border="0"></div></td> </tr> <tr> <td colspan="2"><div id="login_right"><font size="1" color="#ea5550">「ィ・ッ・テ・ュ。シ、鰺ュク妤ヒ、キ、ニ、ッ、タ、オ、、。」</font></div></td> </tr> </table> </form> <?php } ?> </div> <!-- login-box[end] --> <br> <div class="links" align="center"> <a href="http://www.haradagr-dp.co.jp/okusuri-navi/sodan.html" target="_blank"><img src="image/bullet250.gif" width="133" height="46" border="0"></a><br> 「ャ「ャ「ャ<br> 、ェフ・フ、マ、ウ、チ、鬢ォ、・/div> <br>

    • ベストアンサー
    • PHP
  • PHPの構文

    名前と年齢をフォームページから入力して 名前・年齢、そして成人・未成年の表示をするPHPのサンプルがあります。 初学者で無駄な部分が多く複雑になってしまったのですが ここをもっとこうしたほうが良いなど もっとシンプルで分かりやすい構文にできるのでしょうか? よろしくお願いいたします。 in.php ----------------------------------------------- <html> <body> <form action="out.php" method="post"> <table><tr><td>名前入力: <input type="text" name="name"></td></tr> <tr><td>年齢入力: <input type="text" name="age"></td></tr> </table> <input type="submit" value="ボタン"> </form> </body> </html> ----------------------------------------------- out.php ----------------------------------------------- <html> <body> <?php $name = htmlspecialchars($_POST["name"], ENT_QUOTES); $agen = mb_convert_kana($_POST["age"], "a"); $age = htmlspecialchars($agen, ENT_QUOTES); If($name == ""){ if($age == ""){ echo "名前、年齢の入力がありません。"; }else{ echo "名前を入力してください。"; } }else{ if($age == ""){ echo "年齢を入力してください。"; }else{ echo "あなたの名前は{$name}、年齢は{$age}です。"; if($age<20){ echo "あなたは未成年です。"; }else{ echo "あなたは成人です。"; } } } echo "<p><a href='in.php'>フォームに戻る</a>"; ?> </body> </html> -----------------------------------------------

    • ベストアンサー
    • PHP
  • PHPについて

    PHPについて。 現在このような形でパスワードを作っております <html> <head> <title>form</title> </head> <body> パスワードを入力してください。 <form name="form" action="./sample04.php" method="POST"> <input name="pass" type="text"> <input type="submit" value="ログイン"> </form> </body> </html> ↑HTMLの文面↑ <?php // パスワードを設定する。 $pass = 1234; // form.htmlからのパスワードを受け取る $form_pass = $_REQUEST["pass"]; ?> <html> <head> <title></title> </head> <body> <?php // form.htmlからの値が$form_passと等しいか評価する if($form_pass == $pass){ echo "ログイン成功<br>", "<a href=\"./top.html\">進む</a>"; }else{ echo "ログイン失敗<br>", "<a href=\"./index.html\">戻る</a>";} ?> </body> </html> 質問はパスワードを複数作りたいのですが・・・ どうすればいいですか?PHPにはあまり詳しくないので・・・

    • 締切済み
    • PHP
  • PHPのお問い合わせフォームについて

    こんにちは、セレクトボックスの選択部分を変更するとフォームの内容が変わるというフォームを作っているんですが色々試しても何がどうおかしいのかわからないので質問させていただきます。 PHP初心者で触り始めて間もないのでわかりやすく教えてもらえると嬉しいです。 多分色々とおかしいことになってると思いますがよろしくお願いいたします。 【index.html】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> fieldset{ border: none; } </style> <script type="text/javascript"> function setForm(ex) { var target = ex.value; var group = ex.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } </script> </head> <body> <form action="form.php" method="post"> <table> <tr> <td>用件</td> <td> <select name="select1" onchange="setForm(this)"> <option value="">選択してください</option> <option value="A">ご質問</option> <option value="B">資料請求</option> <option value="A">その他</option> </select></td> </tr> </table> <fieldset id="A"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>サイトを知ったきっかけ</td> <td><input type="checkbox" name="chance[0]" value="friend">知り合い <input type="checkbox" name="chance[1]" value="serch">検索エンジン<td> </tr> <tr> <td>ご質問内容</td> <td><textarea name="message" cols="60" rows="5"></textarea></td> </tr> </table> </fieldset> <fieldset id="B"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>性別</td> <td><input type="radio" name="gender" value="man">男 <input type="radio" name="gender" vakue="woman">女</td> </tr> <tr> <td>住所</td> <td><input type="text" name="address" value=""></td> </tr> </table> </fieldset> <input type="submit" value="送信する" /> </form> </body> </html> </html> 【form.php】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php mb_language("japanese"); mb_internal_encoding("utf-8"); if(!empty($_POST['mail'])){ $to=$_POST['mail']; $name=$_POST['name']; $chance=$_POST['chance']; $message=$_POST['message']; $gender=$_POST['gender']; $address=$_POST['address']; $form=mb_encode_mimeheader(mb_convert_encoding("自分の名前","JIS","UTF-8"))."<aaa@aaa.com>"; $success=mb_send_mail($to,"名前:".$name."サイトを知ったきっかけ:".$chance."お問い合せ内容:".$messagge."性別:".$gender."住所:".$address,"from:".$from); } ?> <?php if ($success) { print('送信しました。'); } else { print('送信に失敗しました。'); } ?> </body> </html> よろしくお願いします!!!!

    • 締切済み
    • PHP
  • [PHP初心者] フォームのエラーチェック

    PHPやデータベースに全く疎い者です。 皆様にご指導頂きたく投稿致します。質問内容もレベルが低いですがどうが宜しくお願いします。 メールフォームにてフォームのボタンを押下し、 エラーチェックをして、エラー項目を同一画面上の上の辺りに表示させたいのですが、、参考書を読んだり、過去スレを拝見しても、どうもわかりません。 <body> //↓この辺をどう書けばいいのか、さっぱりなんです。 <?php if(isset($_POST['mailform'])) { if($_POST['name'] == "") { echo("名前を入力して下さい。<br>"); }} ?> //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ <form method="POST" action="kakunin.php"> <table border="0" cellpadding="5"> <tr> <td colspan="2"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input name="mail" type="text" id="mail" size="20"></td> </tr> <tr> <td>項目</td> <td>     <input type="checkbox" name="check[]" value="PHP">PHP <input type="checkbox" name="check[]" value="Perl">Perl <input type="checkbox" name="check[]" value="ASP">ASP <input type="checkbox" name="check[]" value="JSP">JSP</td> </tr> <tr> <td>お問い合わせ内容</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input name="mailform" type="submit" id="mailform" value="::入力内容を確認::">  <input type="reset" name="Submit" value="リセット"></td> </tr> </table> </form> </body>

    • 締切済み
    • PHP
  • PHPのセッションについて

    PHPのセッションについて 現在ログインフォームを作成しているのですが、 ログインフォームからIDとパスワードを送信して、合っていれば セッションを発行してロケーションで飛ばそうと思っているのですが、 初回時にIDとパスワードを入力して送信しても、セッションが引き継がれず 2回目以降だとセッションが引き継がれる症状に悩んでおります。 どなたかご教授ください。 宜しくお願いいたします。 【login.php】-------------------------------- <?php session_name("stock"); session_start(); $error_flag = 0; if(isset($_POST["login"])){ $id = htmlentities($_POST["id"],ENT_COMPAT); $password = trim(htmlentities($_POST["password"],ENT_COMPAT)); if($login_id == $id && $login_pass == $password){ $_SESSION["id"] = $id; $_SESSION["password"] = $password; header("Location:stock.php"); exit; }else{ $error_flag = 1; } } echo <<<EOD <form method="post" action="login.php" id="login"> <input type="text" name="id" id="id" > <input type="password" name="password" id="password"> <input type="submit" name="login" value="ログイン" /> </form> EOD; 【stock.php】--------------------------------- <?php session_name("stock"); session_start(); echo $_SESSION["id"]; echo $_SESSION["password"]; ?>

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • プリンターにエラーメッセージはないが、コピー印刷やPCからの印刷ができず、全て白紙で排出される。
  • Windows11を使用しており、無線LANで接続されている。
  • 関連するソフトやアプリは特にない。ひかり回線が使用されている。
回答を見る

専門家に質問してみよう