質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

564閲覧

Webページでボタン押下後の動作をPHPで実装したい

mikan0310

総合スコア1

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2023/01/12 23:58

前提

PHP初心者です。
HTMLとPHPで実装されているページに以下の機能を追加する依頼があり、PHPでの組み込み方が分からず、こちらに質問させていただきます。

実現したいこと

ボタン押下すると、入力フォームにDBから読み込んだ情報を表示するようにしたいです。
※このボタン名が押されたらonClickにPHPのfunction?に飛び、その中にoci_connect等でOracleDBに接続し入力フォームに表示できるようにしたいです。
訳あってJavaScriptでなくPHPで動作するよう組み込みたいです

・画面イメージ

入力フォーム
ボタン

該当のソースコード

<?php ※ここを知りたいです※ ?> …中略 <input type = “button” value =“表示“ name =“btn_nm“ onClick=“※ここを知りたいです※“>

試したこと

JavaScriptでfunctionに飛び
Driver=Microsoft ODBC for Oracle
のようにしてOracleDBに接続する方法があることは知っていますが、64bitのサーバーにこれを動作する環境を諸事情ですぐに導入できず、急ぎでPHPで実装方法がないか質問させていただいてる状況となります。

補足情報(FW/ツールのバージョンなど)

Windows server 2016 64bit
Oracle Database 12.2
PHP 7.4.3

他の機能も組み込まれているページのため、ソースコードは改修する箇所のみ載せています。
不足情報等は追記しますので、助けて頂けると助かります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikan0310

2023/01/13 01:48

質問者です。 当然ですが、Oracle PHP等でググった結果、onClickの中にPHPを組み込む方法がで全く出てこず、質問させていただいております。 実装可否のヒントだけでも構いませんので、ご協力いただけると助かります。 よろしくお願いします。
AbeTakashi

2023/01/13 01:55 編集

質問の文章を拝見するに、基礎知識が絶対的に不足していると感じます(ので答えようがない感じの質問に見えます)。どういう形で依頼されたか分かりませんが、時間かけてもいいならまずは基礎知識を学ぶところからです。それほど時間が無いのなら知識がある方に依頼するなり、お断りするなりした方が安全な気がしますよ。Oracleということだとおそらく企業案件だと思うので、知識ない人が下手にやると事故って大変なことになる気もします。 追記) >onClickの中にPHPを組み込む方法がで全く出てこず その情報が見つけられないということであれば、やはり実装は厳しいのかな?と思ったりします。「組み込む」をどういう意図で言ってるのか分かりませんが、JavaScriptからPHPを実行したいのであれば「PHPでAPIを作成し、JavaScriptからそれを叩く」のが一般的な手法かとは思います。
guest

回答2

0

ベストアンサー

回答

質問中の

PHP

1<input type = “button” value =“表示“ name =“btn_nm“ onClick=“※ここを知りたいです※“>

及び、コメント中の

当然ですが、Oracle PHP等でググった結果、onClickの中にPHPを組み込む方法がで全く出てこず、質問させていただいております。

については、PHPのみでは原理的に実装不可能で、JavaScriptと連携させる必要があります。
(理由はサーバサイドスクリプト クライアントサイドスクリプト 違いあたりで調べてみてください。)

流れとしては

  1. PHPでoci_connect()やPDO_OCIを使用してOracleDBからデータを取得してJSONやXMLを返却するweb-APIを開発する
  2. JavaScriptでAjaxで1のPHPにアクセスし、取得したデータをフォームに挿入する関数を開発する
  3. onClickに2の関数を指定する

と言う感じになります。

フォーム送信による画面遷移を許容するならPHPだけでも実装出来ますが

他の機能も組み込まれているページのため、

という事であれば、上記のような方法で実装せざるを得ないでしょう。

補足

1については以下のような順で学習すると実装に必要な内容を把握できるかと思います。

  1. PHP API 作成あたりで調べて、PHPによるwebAPI開発の基本的なところを理解する
  2. PHPマニュアル

oci_connect
https://www.php.net/manual/ja/function.oci-connect.php
PDO_OCI
https://www.php.net/manual/ja/ref.pdo-oci.php
PHP Oracle 接続
を参考にして、PHPからOracleDBに接続して必要な情報を表示するページを開発してみる。
3. 2の表示を1を参考にしてJsonやXMLとして出力するように変更する

重要事項

上記の流れで開発した場合、(JavaScriptの知見があるのであれば)とりあえず動くところまで作るのはそれほど難しくは無いです。
しかし、サーバサイドでデータベースに接続するアプリケーションは典型的に脆弱性を生み出しやすいアプリケーションです。(=下手に作ると情報漏洩やデータ損失が発生します)
その場合、民事での賠償責任や刑事事件に発展する可能性があります。
(この辺りは開発者の立場によって変わりますがsqlインジェクション 裁判で調べてみてください)

これを初学者が即座に理解するのは非常に困難なので、セキュリティに知見のある人や組織にセキュリティに関する要件定義とチェックポイントを作成を依頼することを強くお勧めします。
(相談から受け付けてくれる有料の脆弱性診断サービスを使うのがベスト)

予算や納期の関係でどうしても自力で全部賄わないといけない場合は、
IPA 安全なウェブサイトの作り方
https://www.ipa.go.jp/security/vuln/websecurity.html
を一通り読んで該当する部分を注意して作る
とかでしょうか。(規模と機能的には頑張れば何とかなるレベルまで持っていけると思いますが、最終チェックできる人が居ない環境だとお勧めは出来ないです)

投稿2023/01/13 12:23

編集2023/01/13 12:33
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikan0310

2023/01/16 21:29

お返事が遅くなり、申し訳ありません。 詳しい内容をありがとうございます。 PHPでは実現したいことが実装不可ということも承知しました。 環境を整うことができるまでは手動での対応となりますが、職場にはこの旨お話ししようと思います。 掲載いただいた件は今後の勉強に活用させていただきます。 ありがとうございました。
guest

0

まず基本を「oracle PHP」 などのキーワードでググって調べてみましょう

投稿2023/01/13 01:11

yuma.inaura

総合スコア1453

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2023/01/13 01:18

点数乞食さんの真似はやめましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問