フォームに入力した内容をXMLに生成させるプログラムを作りたい

このQ&Aのポイント
  • WEBサイトの問い合わせフォームの様な形式で、各フォームに内容を入力すると、指定のフォルダにXMLが生成されるというプログラムをCGIを使って作りたいと考えています。
  • 入力した内容をXML形式で保存するプログラムを作りたいと考えています。具体的には、WEBサイトの問い合わせフォームのような形式で、各フォームに内容を入力すると、指定のフォルダにXMLファイルが生成される仕組みを実装したいです。
  • PHPやPerlの初級者ですが、WEBサイトの問い合わせフォームのフォームに入力した内容をXML形式で保存するプログラムを作成したいです。入力フォームに入力された内容を元にXMLファイルを生成し、指定のフォルダに保存する仕組みを実装したいです。
回答を見る
  • ベストアンサー

フォームに入力した内容をXMLに生成させるプログラムを作りたいと考えて

フォームに入力した内容をXMLに生成させるプログラムを作りたいと考えています。 いつもお世話になります。 WEBサイトの問い合わせフォームの様な形式で、 各フォームに内容を入力すると、指定のフォルダにXMLが生成される というプログラムをCGIを使って作りたいと考えておりますが、 ネットで調べてみた所、具体的なサイトがありませんでした。 例えば、HTMLベースのフォームに下記の入力フォームがあるとします。  入力フォーム1:名前  入力フォーム2:住所  入力フォーム3:電話番号 上記を入力して生成ボタンをクリックすると、  <name>なまえ</name>  <addr>○○町三丁目</addr>  <phone>123-4567</phone> というXMLが指定のフォルダに生成されるというプログラムです。 また、既に指定フォルダにXMLが存在している場合は、入力フォームに 既にあるXMLの項目が表示され、編集できるようにしたいと考えております。 当方、PHP、Perlは初級程度ですが、もし同じような仕組みを公開している サイト等が御座いましたらご教授ください。 宜しくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数5

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

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

簡単な読み書きであれば、SimpleXML で十分でしょう。 「基本的な使用法」をご覧になることで、要求を満たす方法がお分かりになるはずです。

参考URL:
http://jp2.php.net/manual/ja/book.simplexml.php
John12345
質問者

お礼

ありがとう御座いました

関連するQ&A

  • XML Schemaによる Web入力データの検証方法

    XMLSchemaを使用して、Webフォームで入力した内容が 正しいかどうか検証をしようと思っています。 実現可能でしょうか。 また、可能な場合具体的な方法を教えていただけないでしょうか。 環境 W2KServer IIS5 ASP MSXML4.0 VBのCOM 1.Webフォーム(HTML)で入力した内容を元に、XMLを生成します。 (HTMLのNAME属性と、XMLの要素名を照らし合わせて、XMLを生成します) 2.サーバ側で、生成したXMLと、データ検証用XMLSchemaを使用して、データを検証します。 3.検証のエラー内容により、ブラウザにエラーメッセージを返します。 例)○○が未入力です。○○の文字数が不正です。   日付の形式に誤りがあります。 XMLSchemaで行いたいデータ検証は以下の通りです。 (1)相関チェック (2)日付チェック(現在の日付より前の日付はNGなど) (3)文字数チェック (4)型チェック(数字、文字) (5)未入力チェック (3)~(5)は可能だと思うのですが、(1)(2)はプログラムで制御するしかないと思っています。 本来このような入力チェック処理は、JavaScriptやASPなどで制御すると思います。 今回のシステムの要件は、 「申請手続きをWebから行い 申請情報をサーバ側にXMLとして保存する」 というもので、プログラムを変えずに、申請様式を追加することによって、様々な申請に対応できるという汎用的なものを目指しています。 そこで、入力チェックのコードも、申請様式とセットでXMLSchemaを使用して作成出来ないかと思ったのですが、具体的な資料が無くこまっていました。 よろしくお願いいたします。

    • 締切済み
    • XML
  • フォームに入力した内容を保存するには?

    フォームに入力後、確認画面が出ないで即送信になってしまうサイトで、入力した内容を保存する方法がありましたらお教えください。 フォーム画面を普通に「名前を付けて保存」にすると、入力した内容が消えた状態でしか保存されません。 印刷すると入力した内容もちゃんと印刷されるのですが・・・。 PCのOSはWinXP-Pro、ブラウザはIE6.0です。

  • フォームの内容を暗号化するためには

    簡単な質問で恐縮なのですが、 WEBのフォームで入力内容を暗号化して送信するためには、 ・入力フォームのHTMLをSSLのページに置いて  action先にもSSLのプログラムを指定 というのが一般的のように見えます。 これについて、実際はaction先さえ、SSLが指定してあれば フォームの入力内容は保護されると思うのですが、 入力フォームのHTML自体を暗号化してユーザーに送る必要があるのでしょうか?

  • xmlファイルが生成されない

    <?php //DomDocumentを呼び出す $dom = new DomDocument('1.0','UTF-8'); //要素ノード[document]を追加 $document = $dom->appendChild($dom->createElement('document')); //新しい要素をdocumentの子要素として挿入する $document->appendChild($dom->createElement('name','名前です')); $document->appendChild($dom->createElement('text','テキストです。')); //字下げや空白を考慮してきれいに整形した出力を行う $dom->formatOutput = true; //同階層にtest.xmlとして保存 $dom->save('test.xml'); //出力 echo $dom->saveXML(); ?> のように、同じディレクトリ内にXMLファイルを生成するphpプログラムを作成してみたのですが、 ブラウザからこのPHPファイルにアクセスしてもXMLファイルが作られません。どうすれば良いのでしょうか。 なにかphp,apache等の設定をしてないからでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • フォーム入力パスワードとランダム生成されたパスワードを比較

    現在フォームから入力パスワードと PHP でランダム生成された パスワードを比較するスクリプトを組んでます。 スクリプト自体はテスト用ですので フォーム入力用のパスワードは HTML 上に表示されるように なっており、それをコピー&ペーストすれば 良いようにはなっているのですが、どうやっても 比較結果が true になりません。 もはやどこが間違っているのかわかりません。 どなたかお教え頂ければ大変助かります。 何卒、宜しくお願い致します。 ファイル構成は 3つです↓ ran_pass.html ran_pass.php kekka.php --<< 1. フォーム入力 HTML [ ran_pass.html ] ↓ >>------------------------------------------------------------------------------- <html> <head> <title>名前入力</title> </head> <body> <u>名前入力</u><br> <form action="ran_pass.php" method="post" name=""> 名前 : <input type="text" name="name" size="24" border="0"> <input type="submit" name="" value="実行" border="0"> </form> </body> </html> --<< 2. ランダムパスワード生成 [ ran_pass.php ] ↓ >>--------------------------------------------------------------------------- <html> <head> <title>ランダムパスワード生成</title> </head> <body> <?php //フォームからのデータを $name に代入↓ // $name = $_POST[name]; //ランダムパスワードを生成 ↓// function rand_passwd($len = 8, $str = '0123456789abcdefghijklmnopqrstuvwxyz'){ $password = ''; srand ((float) microtime() * 10000000); for($i = 0; $i < $len; $i ++){ $password .= substr($str, rand(0, strlen($str) - 1), 1); } return $password; } //生成されたランダムパスワードを $rpass に代入 ↓// $rpass = rand_passwd(8) . "\n"; $htm = <<< EOD <u>ランダムパスワード生成</u><br> <form action="kekka.php" method="post" name=""> 名前 : $name さん<br><br> パスワード : <input type="text" name="ran_pass" size="24" border="0"> <input type="submit" name="" value="実行" border="0"><br> <input type="hidden" name="name" value="$name" border="0"> <input type="hidden" name="rpass" value="$rpass" border="0"><br> ( ※ パスワードは $rpass です。) </form> EOD; print $htm; ?> </body> </html> --<< 3. パスワード比較 [ kekka.php ] ↓ >>-------------------------------------------------------------------------------------- <html> <head> <title>パスワード認証結果</title> </head> <body> <?php //フォームからのデータを代入↓ // $name = $_POST[name]; $ran_pass = $_POST[ran_pass]; $rpass = $_POST[rpass]; //ランダムパスワードを生成 ↓// if($ran_pass == $rpass){ $kekka = "【 成功 】 パスワードが一致しました。";} else{$kekka = "【 失敗 】 パスワードが一致しませんでした。";} print $kekka; ?> </body> </html>

    • ベストアンサー
    • PHP
  • webで入力されたデータをxmlに取り込むのに適したプログラムは?

    前に似たようなことで一度質問させていただき、ご回答をいただきましたが、方法を絞った別の観点からもう一度皆様のご意見を頂戴したいと思います。 ----------------------------- 何かのプログラムを使って…、←この「何か」を模索しています。 インターネット上でフォームを表示し(html?xml?)、 そこに入力してもらい、送信してもらうとログができ、 そのログをスキーマ、スタイルシートが既にあるXMLデータとして読み込む。 -------------------------- こういうことをしたいのですが、これからプログラムの勉強をするにあたり、一番適しているのは何か教えてください。 cgiかPHPか?という気はするのですが、経験がないので自分で答えが出せません。 よろしくお願いします。

  • 入力フォームの情報をPDFを生成するには

    お世話になります。 PHPで入力フォームを作成し、送信ボタンを押下した後に 入力内容の確認画面を表示するようにしています。 その入力確認画面をそのままPDFで生成したいんです。 調べた所、TCPDFやmPDFなどPDF生成ライブラリがあるみたいですが file_get_contentsでHTMLを取得する場合は実際にそのページにアクセスして そのレスポンスを利用しているんですよね。 なので確認画面等の前画面で入力した情報を元に作成したHTMLには使えないんでしょうか。 確認画面をそのまま利用してPDF生成することはできないのでしょうか。 実現するにはフォームから入力された情報を元に別途PDF生成用のHTML等を組む・・・のようなことをしないと駄目なんでしょうか。 分かりづらい質問で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • PHP
  • 入力フォームの改造をしたいんです。。。

    GenesisさんのFRIENDS BOARD-i Ver.2.40というスクリプトを、自分で 少しだけ修正して女性向フリマのBBSとして使っています。 最近すごく困ってる事があるんですけど、多分業者さんだと思うんです けど、禁止しているアダルト商品とかを何度削除しても、何度も何度も 出品してくるんです。。。 女性向サイトだから意味ないのに。。。 そこで、色々対策し、その上で考えたですけど、投稿できるメールアド レス(ドメイン)を指定、限定できるようにしたいんです。 私もざっとプログラムを見てみたんですけど、標準では投稿者が新規 投稿時に入力した内容が、そのまま投稿者のメールアドレスとして登録 されています。 具体的に、こういう処理になっています。 メールアドレス<BR> <INPUT size="16" type="text" name="mail" maxlength="64"><BR> フォームに入力した内容 = "mail" といった感じです。 これを、@マーク以前は従来通りフォームからの自由入力で、ここでの 入力内容を仮にaとして、 @マークは固定、これを仮にbとして、 @マーク以降のドメインは、指定のドメインを<SELECT>メニューで指定 (仮に、 aaa.ne.jp ・ bbb.ne.jp ・ ccc.ne.jp)し、投稿者はその中か ら選択、 この選択結果を仮にcとして、 a+b+c= (name="mail") としたいんです。。。 私の説明メチャクチャですね。。。 うまく伝わるといいんですけど。。。 すごく困っていて、早く対策をしたいと思っています。。。 詳しい方、ぜひアドバイスお願いします。。。

    • ベストアンサー
    • CGI
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • PerlによるXMLファイルの解析&出力

    XMLファイルで以下のようなXMLファイルから、 <?xml version="1.0" encoding="Shift_JIS"?> <class3> <Personal> <No>1</No> <Name>相上男</Name> <phone>00-0000</phone> </Personal> <Personal> <No>2</No> <Name>柿句毛子</Name> <phone>11-1111</phone> </Personal> </class3> perlでNameの部分のタグだけ抜き出しXMLファイルに出力するプログラムを組み立てたいです。自分でも以下のようなプログラムを組み立てたのですが、 #!/usr/bin/perl use strict; use Encode; use XML::XPath; use XML::XPath::XMLParser; # 書き込み用にファイルを開く open( OUTPUTFILE, ">Output2.xml" ); # 標準出力に書き出し print &xml_xpath; # ファイルを出力先に設定 select( OUTPUTFILE ); # 出力先を元に戻す select( STDOUT ); # ファイルを閉じる close( OUTPUTFILE ); sub xml_xpath{ my $file = "class3.xml"; my $xp = XML::XPath->new(filename => $file); foreach my $node( $xp->find('/class3/Personal/Name')->get_nodelist){ print Encode::encode("shift_jis", $node )."\n"; } } XML::XPath::Node::Element=REF(0x1036c58c) XML::XPath::Node::Element=REF(0x1036cb8c) と、出てくるだけで動きません。ほとんど初心者なのでまったく見当違いのプログラムを組み立てているかもしれませんが、よろしくおねがいします。

専門家に質問してみよう