ハッシュの要素を別ファイルに渡す方法とは?

このQ&Aのポイント
  • Perlのプログラムでハッシュの要素を別のファイルに渡す方法を知りたいです。
  • 具体的には、$USERS{$xy}の要素を別のファイルに保存する方法を教えてください。
  • また、そのような操作が可能な場合、どのように実装すれば良いでしょうか。
回答を見る
  • ベストアンサー

ハッシュの要素を別ファイルに渡すことができますか

perlで次のようなプログラムがあります。 sub { 中略 $USERS{$xy}       #$xyは変数  中略 } <form name="user" action="$ENV{'SCRIPT_NAME" method="POST"> ユーザー名:<input type="text" name="username"><br> パスワード:<input type="password" name="pass" value=""><br> <input type="submit" value="ログイン"> ------------- このとき$USERS{$xy} の要素を別ファイルに渡すことができますか。可能ならばどのようにすればよいでしょうか

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

%USERSをData::Dumperで直列化して、別ファイルに引き渡して復元するとか。 perldoc Data::Dumperで使い方が参照できます。

参考URL:
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA
houseroof
質問者

お礼

ご回答ありがとうございます。Dumperという用語は初めてなのでもう少し勉強をします。ではまた

関連するQ&A

  • 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
  • 別のページを開く方法

    以下のようなプログラムにおいて、 1)最初にフォームが表示 2)submitボタンを押すと、sub addUserによって、ユーザーファイルに書き込み 3)その後に、自動的に別のページ(cgi)が開く方法が分かりません。sub addUserでclose(FILE); の後に何かプログラムが必要と思うのですが分かりません。 教えてください。 #! c:/perl/bin/perl #============================ ユーザー設定 ==== $CHARSET = 'Shift_JIS'; # 文字コード $USERFILE = './users.dat'; # ユーザーファイル #======================== メインプログラム ==== loadFormdata(); loadUserfile(); if($FORM{"mode"} eq "adduser") { addUser(); } printAdminPage(); exit; #============================ ユーザー追加 ==== sub addUser { my ($name, $pass) = ($FORM{'user'}, $FORM{'pass'}); my ($salt, $saltset, $n1, $n2); if($USERS{$name} eq $pass) { printErrorPage("そのユーザー名はすでに存在しています。"); } $USERS{$name} = $pass; # ユーザーファイル書き込み open(FILE, ">>$USERFILE") or printErrorPage("ユーザーファイルが開けません。"); print FILE "$name:$pass\n"; close(FILE); } #================ ユーザーファイル読み込み ==== sub loadUserfile { 中略 $USERS{$name} = $pass; } close(FILE); } #================== ユーザー管理ページ出力 ==== sub printAdminPage { my $name; print <<END; Content-type: text/html; charset=$CHARSET <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title>ゆーざーかんり</title></head> <body> <h1>ユーザー管理</h1> <h2>新規ユーザー登録</h2> <form action="$ENV{'SCRIPT_NAME'}" method="POST"> ユーザー名:<input type="text" name="user"><br> パスワード:<input type="password" name="pass"><br> <input type="hidden" name="mode" value="adduser"> <input type="submit" value="登録する"> </form> </body> <html> END } #======================== エラーページ出力 ==== sub printErrorPage { 中略 } #================== フォームデータ取り込み ==== sub loadFormdata 中略

    • ベストアンサー
    • CGI
  • INPUTにnameがない場合のsubmit

    <FORM ACTION="login.asp" METHOD="POST"> USER ID:<INPUT TYPE="text" NAME="userid" SIZE="12"><br> パスワード:<INPUT TYPE="password" NAME="pass" SIZE="12"><br> <INPUT TYPE="submit" NAME="btn01" VALUE="ログイン"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> 上記のHTMLに対して、VBAで操作する場合、 データセットした後 objIE.document.all.btn01.Click 'クリックメソッドを実行 で、submit出来るかと思います。 今、VBAで自動ログインしたいサイトが <INPUT TYPE="submit" VALUE="ログイン"> のような感じで、nameの属性がありません。 こういうときは、VBAではどうすればログインできるのでしょうか。 初歩的な質問ですみませんが、わかる方教えてください。

  • 半角英数判定

    こんにちわ。最近PHPをやりはじめた者です。 下記のスクリプトを使用して空白判定はできたのですが、半角英数文字 を判定できなくて困っています。エラーが出てしまい、画面遷移できないのです。したいことは、半角英数文字以外がユーザーIDとパスワードに入力されたとき、「半角英数で入力してください」という判定をしたいのです。画面遷移後のスクリプトは文字制限の都合で記載できませんでした。  ユーザー名<br> <form method = "post" action = "subject02-01.php" > <input type = "text" name = "USERNAME"><br> パスワード<br> <input type = "password" name = "PASS"> <input type = "submit" name = "submit" value = "ログイン"> <?php $str = mb_convert_kana($str,"rna") if($_POST["submit"] == "ログイン") if($_POST["USERNAME"] == "root" && $_POST["PASS"] == "admin") { echo "認証に成功しました。"; } else if( $UserName == "" || $Password == "") else if(ereg("[A-Za-z0-9\-]",$str)) else { echo "認証に失敗しました。"; }

    • ベストアンサー
    • PHP
  • フォームで条件によってボタンの処理を変える

    フォームでパスワードを入力してもらい、確認用にもう一度入力した際、 誤入力があればアラート、正しく同じ値が入力されればsubmitにしたいと思っており、下記のようなコードを書きましたが、同じ値を入力した際にIEでエラーがでてしまいます(FirefoxやSafariでは動きます)。 当方Javascriptの知識に乏しく、どなたか助けていただけませんでしょうか?宜しくお願いいたします。 <html> <script language="JavaScript"> <!-- function passCheck(){ pass1 = document.free.PASSWORD.value; pass2 = document.free.PASSWORD2.value; if(pass1!==pass2) {alert("入力された確認用パスワードが違います");} else if(pass1==pass2) {document.free.submit.type="submit";} } //--> </script> <body> <form method="POST" action="submit.cgi" name="free"> <p> <input type="password" size="20" name="新パスワード" id="PASSWORD"><br> <input type="password" size="20" name="新パスワード(確認)" id="PASSWORD2"> </p> 確認のため、上記と同じパスワードをご記入ください。 <p><input type="button" name="submit" value="確認する" onclick="passCheck()"/></p> </form> </body> </html>

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

    ログインのプログラムをこんな感じで書いたのですが、 パスワードを変更できるようにするには、どういったプログラムを 追加すればいいのでしょうか? <? $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
  • 複数のフォームから送信

    複数のフォームから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> ------------------------------------

  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • wordpressのStyle設定について

    お世話になります。 仕事でwordpressを使うことになりテンプレートの作成を行なっています。 ヘッダーにログインフォームを付けたく「<?php wp_login_form( ); ?>」を使いログインフォームを表示させることはできました。 下記、ログインフォームのソースの抜粋になります。 <form name="loginform" id="loginform" action="***" method="post"> <p class="login-username"> <label for="user_login">ユーザー名</label> <input type="text" name="log" id="user_login" class="input" value="" size="20" tabindex="10" /> </p> <p class="login-password"> <label for="user_pass">パスワード</label> <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /> </p> <p class="login-submit"> <input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="ログイン" tabindex="100" /> <input type="hidden" name="redirect_to" value="***" /> </p> </form></p> こんなかんじで表示させることはできたのですが、 この状態だと、自動的に<p>タグがはいってしまい改行されます。 この部分を横一行 ユーザ名[ ] パスワード[ ] [ログイン] のようにシたいのですがどのようにStyleをつけたらいいか悩んでます。 よろしければ、ご回答ください。

    • ベストアンサー
    • CSS
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP

専門家に質問してみよう