• ベストアンサー

フォーム入力パスワードとランダム生成されたパスワードを比較

Wabisuke_Sの回答

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

フォームからの入力データにスペースが交じっている可能性も考えて、トリムをかけてから比較するといいかも? if($ran_pass == $rpass){ $kekka = "【 成功 】 パスワードが一致しました。";} else{$kekka = "【 失敗 】 パスワードが一致しませんでした。";} の前に、以下を追加で。 $ran_pass = trim($ran_pass); これでダメだった場合、とにかく変数に何が入っているのか出力して確認してみないことには。><

kz00000000
質問者

お礼

ご指摘頂いた内容はかなり勉強になりました。 ようやく解決致しました。 色々と有難うございました。

kz00000000
質問者

補足

$ran_pass = trim($ran_pass); も入れてましたし、 変数内に何が代入されているかもフィールド内部に 表示させて調べてみましたが、スペース等は 何も含まれておりませんでした。 また変数の型を調べてみたのですが 比較対照の2つの変数は共に string でした。 また更に変数を定数化して比較を行ってみましたが やはりこちらも結果は一致しませんでした。 他に原因として考えれるものがあればお教え下さいませ。 宜しくお願い致します。

関連するQ&A

  • パスワードはどこですか?

    自分でパスワードを決めると思うのですが、さっぱりです。どこに書けばいいのか教えてください 知識がある方にとっては簡単だと思いますがどうぞよろしくお願いします。 #▼入室フォーム###### sub FM{ print "Content-type: text/html\n\n"; print "<html><head><title>$TITLE</title></head><body><form method=post action=$ADMIN_CGI><input type=hidden name=M value=C>管理室<hr>\n"; print " 管理者ID<BR><input name=ID'' size=8><BR> パスワード<BR><input name=PASS'' size=8><BR> <input type=submit value=入室>\n"; print "</form></body></html>\n"; exit; }

    • ベストアンサー
    • CGI
  • PHPで生成した値をデータベースに送る方法

    題名の通りです。入力画面上で自動生成させた値(今回はパスワード)を入力したテキストと一緒にデータベースへ送りたいと思ってますが行き詰りました。テキストは無事データベースへ送信されますがパスワードが送信されません。というか送信側の記述方法が分からず何も書いていないので当然ですがさっぱりです(;;)何卒、ご指導お願いします。(なお、プログラムの一部はネット上に公開していた物を使わせていただいております。) 【入力画面側 nyuryoku.php】 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY bgcolor="#FFFFFF" text="#000000"> <FORM name="form1" method="post" action="view.php"> <?php //----------------------// // パスワードを生成する // //----------------------// // パスワードの長さ設定 define(PASSWORD_LEN, 9); // 乱数表シードを決定 srand((double)microtime() * 12345678); // パスワード配列を作成 $pwelemstr = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345679"; $pwelem = preg_split("//", $pwelemstr, 0, PREG_SPLIT_NO_EMPTY); // ランダムパスワードを生成⇒表示。 print makePassword(PASSWORD_LEN) . "\n"; // ランダムパスワードを生成する関数 function makePassword($length) { global $pwelem; $password = ""; for($i=0; $i<$length; $i++ ) { // パスワード文字列を生成 $password .= $pwelem[array_rand($pwelem, 1)]; } return $password; } ?> <BR><BR> BACK_PASS<BR> <INPUT type="text" name="back_pass"> <BR> FRONT_PASS<BR> <INPUT type="text" name="front_pass"> <BR><BR> <INPUT type="submit" value="送 信"> </FORM> </BODY> </HTML> 【送信側 view.php】 <HTML> <HEAD> <TITLE>view.php</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "USER"; // ユーザー名 $dbPass = "PASS"; // パスワード $dbHost = "LOCALHOST"; // ホスト名 $dbName = "DATABASE"; // データベース名 $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了。 if (DB::isError($conn)){ die($conn->getMessage()); } // POSTされたデータを受け取り、エスケープ。 $back_pass = addslashes($_POST['back_pass']); $front_pass = addslashes($_POST['front_pass']); $sql = <<<EOS INSERT INTO passkanri ( back_pass, front_pass ) VALUES ( '$back_pass', '$front_pass' ) EOS; if(preg_match("/Windows/", $_ENV["OS"])){ $sql = mb_convert_encoding( $sql, "SJIS", "EUC-JP"); } // SQL文を発行 $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } $count = $conn->affectedRows(); print "データを" . $count . "件、挿入しました。"; // データベースから切断します。 $conn->disconnect(); ?> </BODY> </HTML>

    • ベストアンサー
    • MySQL
  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • メールフォームにある必須入力について

    こんばんは、今メールフォームを作っています。入力画面→確認画面→完了ページという流れで作ったのですがよく必須項目に何も入れなかったり、間違った文字をいれたりするとエラーページが表示されるようにしたいと思っているのですが、なかなか上手くできません。下記のスクリプトからだとどうやってやったら良いのでしょうか?よろしくおねがいします。 <?php if (! isset($_POST[btn1]) and! isset($_POST[btn2]) and! isset($_POST[cancel])) { //入力画面 $body = "必要な項目を入力して[OK]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:<INPUT size='40' type='text' name='name'><BR><BR> フリガナ:<INPUT size='40' type='text' name='kana'><BR><BR> 電話番号:<INPUT size='40' type='text' name='tel'><BR><BR> E-Mailアドレス:<INPUT size='40' type='text' name='email'><BR><BR> お問い合わせ内容:<BR><TEXTAREA rows='6' cols='40' name='inquiry'></TEXTAREA><BR><BR> <INPUT type='submit' name='btn1' value=' OK '> </FORM>"; } elseif (isset($_POST[btn1])) { //入力画面で[OK]がクリックされたとき $name = htmlspecialchars(stripcslashes($_POST[name])); $kana = htmlspecialchars(stripcslashes($_POST[kana])); $tel = htmlspecialchars(stripcslashes($_POST[tel])); $email = htmlspecialchars(stripcslashes($_POST[email])); $inquiry = htmlspecialchars(stripcslashes($_POST[inquiry])); $body = "ご入力した内容でメッセージを送信します。<BR> よろしければ[送信]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:$name<BR><BR> フリガナ:$kana<BR><BR> 電話番号:$tel<BR><BR> E-Mailアドレス:$email<BR><BR> お問い合わせ内容:<BR>" . nl2br($inquiry) . "<BR><BR> <INPUT type='submit' name='btn2' value=' 送信 '> <INPUT type='submit' name='cancel' value='キャンセル'> <INPUT type='hidden' name='name' value=\"$name\"> <INPUT type='hidden' name='kana' value=\"$kana\"> <INPUT type='hidden' name='tel' value=\"$tel\"> <INPUT type='hidden' name='email' value=\"$email\"> <INPUT type='hidden' name='inquiry' value=\"$inquiry\"> </FORM>"; } elseif (isset($_POST[btn2])) { //確認画面で[送信]がクリックされたとき //メールの送信処理を行う $name = stripcslashes($_POST[name]); $kana = stripcslashes($_POST[kana]); $tel = stripcslashes($_POST[tel]); $email = stripcslashes($_POST[email]); $inquiry = stripcslashes($_POST[inquiry]); $mailto = "kuma202000@yahoo.co.jp"; $mailsbj = "メールフォームからの送信"; $mailbody = "$name さんからのメールが届きました。\n" . "---------------------------------------------\n" . "名前:$name \n" . "フリガナ:$kana \n" . "電話番号:$tel \n" . "E-Mailアドレス:$email \n" . "メッセージ:$inquiry \n" . "---------------------------------------------\n"; mb_language("ja"); if (mb_send_mail($mailto, $mailsbj, $mailbody, $mailheader)) { $body = "メールを送信しました。ありがとうございました。<BR><BR>"; } else { $body = "メールの送信に失敗しました。<BR><BR>"; } $body .= "<A href='$_SERVER[PHP_SELF]'>戻る</A>"; } elseif (isset($_POST[cancel])) { //確認画面で[キャンセル]がクリックされたとき header("location: $_SERVER[PHP_SELF]"); exit(); } ?> <HTML> <HEAD> </HEAD> <BODY> <?=$body?> </BODY> </HTML>

    • 締切済み
    • PHP
  • 入力フォームとファイル添付を同時に実行したい。

    PHPもhtmlもはじめたばかりの超初心者です。 入力フォームの文字と添付ファイルを同時にPOSTしたいの ですがjavascriptを使わないと無理でしょうか? ******************************** <html> <head> <title>TESTフォーム</title> </head> <body> <form action="test.php" method="post"> 名前:<br> <input type="text" name="name" size="30" value=""><br> <P> &nbsp;&nbsp;&nbsp;ジャンル:<br>  <input type="radio" name="bunrui" value="abc">あ  <input type="radio" name="bunrui" value="bbb">い  <input type="radio" name="bunrui" value="sss">う </P> &nbsp;&nbsp;&nbsp;内容:<br> <textarea name="comment" cols="50" rows="5"></textarea><br> <P> 添付:<input type="file" name="file1"> <P> <input type="submit" value="投稿する"> </form> </body> </html> ******************************** 添付の部分をどうやってtest.phpに渡せばよいかわかりません。 <form action="test2.php" method="post"> 添付:<input type="file" name="file1"> と付け加えても無駄というところまでは調べております。 個別に書いたphpで添付したファイルをsambaサーバーに保存 、入力フォームをtxtにしてsambaへ保存するところまではできました。 ただ同時実行だとどう書けばよいか悩んでおります。 こういうレベルは質問してはいけないんですかねえ・・・ どなたか教えていただけると幸いです。

  • 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でデータベースを作成しています! 登録フォームからデータを入力して新しくデータを追加したいと思います! 番号 int プライマリーキー 氏名 varchar 住所 varchar です いまのプログラムは番号が重複じゃなかったら氏名と住所空白でも登録できてしまいます! 全部しないとエラーメッセージが返ってきて入力しなおさせるにはどうしたらいいですか? if文の書き方を教えてください また番号を空白だとエラーが返ってきます。どうしたらいいですか? 入力フォームのプログラム(regist.php) <HTML> <HEAD><TITLE>新規登録</TITLE></HEAD> <BODY> <BLOCKQUOTE> <FORM ACTION = "toroku.php" METHOD = "POST"> <BR><BR>登録画面<BR><BR> 番号 <INPUT TYPE="NAMBER" NAME = "ID"><BR><BR> 氏名 <INPUT TYPE="TEXT" NAME = "NAME"><BR><BR> 住所 <INPUT TYPE="TEXT" NAME = "ADDR"><BR><BR> <A HREF="http://localhost/test5.php"> <INPUT TYPE = "SUBMIT" VALUE = "登録する"></A> <A HREF="http://localhost/test5.php">一覧に戻る</A> </BODY> </BLOCKQUOTE> </FORM> </BODY> </HTML> 追加登録のプログラム(toroku.php) <HTML> <HEAD><TITLE>登録完了</TITLE></HEAD> <BODY> <?php $con=mysqli_connect("localhost","root","パスワード","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$_POST[ID]','$_POST[NAME]','$_POST[ADDR]')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "登録完了しました"; mysqli_close($con); ?> <BR><BR> <A HREF="http://localhost/test5.php"> <INPUT TYPE = "SUBMIT" VALUE = "一覧へ戻る"></A> </BODY> </HTML> 表示のプログラム(test5.php) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","パスワード","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 見づらくってごめんなさい

    • ベストアンサー
    • PHP
  • phpでmysqlに接続してテーブルのデータを抽出

    テーブルのデータを抽出したいのですけど テーブルに idと対応するpassワードがあったとすると 入力フォームみたいのを作って 認証したいidとpassワードを入力してもらって それをテーブルにあるのか確認したい場合どうしたらいいでしょうか? 入力フォームはこうなっています <html> <head> <title>ユーザ認証</title> </head> <body> ユーザ認証<br> <form action="ninsyou.php" method="post" name="form1"> ユーザ名: <input name="id" type="text" id="fUserName"> <br> パスワード: <input name="pass" type="password" id="fPassWd"> <input type="submit" name="Submit" value="認証"> <input type="reset" name="Submit2" value="クリア"> </form> </body> </html> わかりにくい質問ですみません。

    • ベストアンサー
    • MySQL
  • メールフォームの値保持

    メールフォームを作成しているのですが、値をセッションにて保持したいのですが上手くできません。 考え方が誤っているような気がするので、指摘いただけないでしょうか。どうかよろしくお願いします。 以下のような3画面移動で、値を保持したいのです。 入力==================================================================== <html><head><title>入力</title></head> <body> <form action="confirm.php" method="post"> 魚は好きですか?<BR> はい<input type="radio" name="fish" value="yes"><BR> いいえ<input type="radio" name="fish" value="no"><BR><BR> <input type="submit" value="送信"> </body> </html> 確認==================================================================== <?php session_start(); $fish = $_POST["fish"]; $_SESSION["fish"] = $fish; ?> <html><head><title>テスト確認画面</title></head> <body> <?php print("変数fishの値は".$_SESSION["fish"]."です。"); ?> <form action="output.php" method="post"> <input type="submit" value="次ページへ値を渡す"> </body> </html> 完了==================================================================== <?php session_start(); ?> <html> <head><title>テスト完了画面</title></head> <body> <?php print("変数fishの値は".$fish."です。"); ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHP入力フォームから確認画面にいって送信する。という事がやりたいので

    PHP入力フォームから確認画面にいって送信する。という事がやりたいのですが、入力フォームと送信画面は作成できたのですが、その間の確認画面をどう作成したらよいかわからないので、質問致します。 1.入力フォーム(mail.htmlで作成) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <form action="send.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 2.確認画面・・・ここが作成したいページです。 3.送信画面(send.phpで作成) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html> という感じです。 やりたい事としては、第三者に入力フォームに入力してもらい、送信ボタンを押すと、入力内容はこれでよろしいですか?という画面が出て OKならば、そのまま送信。修正したい場合は戻るボタンでmail.htmlに戻り、修正する。その際の戻るボタンを押した場合は 入力した内容が消えていないこと。という事がやりたいのです。 「2.確認画面」のサンプルスクリプトを教えて頂けないでしょうか。 1と3も間違っているならご指摘下さい。よろしくお願い致します。

    • 締切済み
    • PHP