0

Python、PHP、またはPerlのスクリプトを使用するWebサーバーがあります。私はそれらの言語のどれについてもよく知りませんが、3つの中でPythonは最も怖くないようです。MySqlデータベースが設定されており、それを管理してクエリを作成するのに十分なSQLを知っています。

自動エラー報告を追加したいプログラムもあります。何かがうまくいかない、それは私のサーバーにバグレポートを送る。

方法がわからないのは、Webサーバー上に配置されるPythonスクリプトを作成し、プログラムがバグレポートを送信するときに、次のことを実行することです。

  • バグレポートを受け取ります。
  • それをセクションに解析します。
  • データベースに挿入します。
  • サーバーにメールを送ってもらいます。

私がほとんど理解していないことから、これは私が何をしているのかを知っていればそれほど難しいことではないように思えます。このようなスクリプトを作成するために必要な基本原則を説明しているサイトを誰かに教えてもらえますか?

4

2 に答える 2

0

Pythonはよくわからないので、PHPを紹介します。

したがって、コード投稿を送信するバグを想定してfile.php?report=report+is+here

以下が機能します。

<?

 # code to initialize the database here
 $rc = mysql_connect(...);

 if (!$rc)
 {
  die ("Could not connect to the database.");
 }

 // probably should do some error checking in a try .. catch
 mysql_execute("
                 INSERT INTO BugTable(report) 
                 VALUES('".addslashes($_REQUEST['report'])."')");

 mail("youremail@set.com","Bug Report Recieved", "Recieved the following bug report: {$_REQUEST['report']}");

 ?>

php に関するすべての情報は php.net にあります。

于 2010-03-18T23:51:49.547 に答える
0

Python では、Web ホスティングに依存します。一部の共有 Web ホストは PHP を実行し、CGI を介して Perl/Python (および Ruby など) のみを実行します。Python では、CGI モデルを使用するか、またはそれをサポートするホスティングがある場合は WSGI を使用して Web を構築できます。Python と CGI を実行する場合は、cgi モジュールのドキュメントを参照してください。または、 web.pyを使用します。基本的に、特定の URI で HTTP POST メッセージとして入力を読み取る必要があります。web.py のドキュメントでは、これを記述する方法について説明する必要があります。

解析の場合 - 送信される形式によって異なります。x-www-form-encoded を使用して、単純なキーと値のペアを送信できます。私は web.py の複雑さを知りません (私は主に Ruby を使用しています) が、基本的には「リクエスト」オブジェクトを取得し、それを使用して何かを実行し、それを含む「リターン」オブジェクトを変更する方法を提供する必要があります。ブラウザに戻るもの。web.py では、これは web.input() です -こちらを参照してください。

より複雑なものについては、基本的に、選択した形式 (XML、JSON、魔法のバイナリ BLOB 形式) でデータを POST する必要があります。それをどのように解析するかは、それが何であるかによって異なります。「python xml」または「python json」などを単にGoogleで検索すると、最新のライブラリが見つかります。

データベースへの挿入 - Python 用の mysqldb ライブラリを使用します (私は主に Ruby と Java の Postgres を使用しているため、最新の Python MySQL ライブラリに完全には慣れていません)。

電子メールの送信には、sendmail (sendmail がインストールされた Unix システム上) を使用するか、Python の smtplib を使用して SMTP サーバーに送信することができます。動作することがわかっているので、SMTP サーバーとしてアカウントを使用します。ああ、web.py を使えば簡単です。メール モジュールが組み込まれています。それを使ってください、私は推測します。

おそらくセキュリティについて考える必要があります。これは認証を意味し、フォームの検証を意味します。使用する言語やデータベース ライブラリに関係なく RTFM を使用することで、SQL インジェクションの危険にさらされることはありません。また、電子メールについても同じことを行います。スパムの代理になりたくありません。

于 2010-03-19T00:10:00.203 に答える