0

独自のプラグインを作成したいのですが、フォームの扱い方がわかりません。

たとえば、twitter-streamプラグインの設定ページから次のコードを入手しました。

<form action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
    <label for="consumerkey" style="font-weight:bold;display:block;width:150px;">Consumer Key:</label> <input type="text" value="" id="consumerkey" name="consumerkey" />
    <label for="consumersecret" style="font-weight:bold;display:block;width:150px;margin-top:5px;">Consumer Secret:</label> <input type="text" value="" id="consumersecret" name="consumersecret" />
    <input type="submit" value="Save" style="display:block;margin-top:10px;" />
</form>

私はこれを理解できません:

action="php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])"

私はPHPに関する本をたくさん読んだことがありますが、これを見ただけです。

action="somescript.php" for the URL.

フォームを処理するコードをどこに置くかわかりません。

プラグインのphpファイル(と呼ばれるscheduler.php、にありますwordpress/wp-content/plugins/scheduler/scheduler.php)にコードを入れることはできますか?

また、ワードプレスでフォームを処理する方法の例をいくつか教えてください。

ちなみに、設定ページにはユーザー名とパスワードの2つのフィールドが必要です。管理者が送信ボタンを押したときに、フィールドのコンテンツをデータベースに保存したいと思います。

そして、私はまだどのように理解することができません

action="php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])"

に変換されます

action="/sheduled/wp-admin/options-general.php?page=twitterstreamauth" 

申し訳ありませんが、私の英語はあまり上手ではありません。ご清聴ありがとうございました。

4

1 に答える 1

3

グーグル%7Eで調べてみると、これはUnixで予約されているコードであり、チルダ(〜)を表しています。多くのサーバーがUnixオペレーティングシステムを実行しているため、記号を使用することはできません%7E~ただし、Webアドレスまたはページのどこかで使用されている可能性のある記号を使用することはできます。

php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])に格納されている文字列$_SERVER(特別な配列)を。という名前のキーから取得しますREQUEST_URI。次に、のすべての出現%7Eを。に置き換え~ます。おそらく99%の場合、記号は置き換えられませんが、URLにチルダが含まれている可能性があります。それは非常に些細なことですechoが、編集された文字列をエコーし​​ます。

この場合、文字列/sheduled/wp-admin/options-general.php?page=twitterstreamauthはによって返されますが$_SERVER['REQUEST_URI']、シンボル%7Eが見つからないため、文字列はhtmlコードにエコーされます。

これaction="..."は、フォームが送信されたときにブラウザが実行する必要のあるアクションです。この場合は、ファイルを開きます。options-general.php?page=twitterstreamauth

また、フォームの内容をデータベースに保存する方法がわからない場合は、PHPの本を十分に読んでいません。データベースに何かを保存するには、PHP+MySQLを学ぶ必要があります。

これがコードをもう少しよく理解するのに役立つことを願っています。

于 2012-12-07T21:28:22.453 に答える