サポート » 使い方全般 » メンバーシップ ユーザー権限について詳しい方

  • 解決済 nabe

    (@nabe)


    メンバーシップ ユーザー権限について詳しい方教えて下さい。
    ただいまマッチングサイトの構築をしています。
    最初からユーザー権限を投稿者に設定し権限を与えて、
    その投稿者がHTMLでyoutubeの動画張り付けをしレビュー待ち投稿した場合、
    youtubeの動画張り付けのHTMLが消えてしまいうまく投稿できません。

    管理者の権限を最初から与えた場合のみ、youtubeの動画張り付けの投稿
    がうまくいきました。全てのユーザーに管理者の権限を与えるのは危険すぎます。

    他に何かいい方法は、ないのでしょうか?
    PHP書き換えなどで誰か知っている方、教えて下さい。宜しくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • 詳しいわけではないですが、私は「Role Manager」を使用し詳細に権限を変更しています。この設定の中に「Unfiltered Html」などがあるのでこれを許可してみるなどで対応できないでしょうか。
    ただし、htmlが管理者並みに許可されることが危険でないとは言いません。

    モデレーター jim912

    (@jim912)

    nabeさん、こんにちは。

    shokun0803のおっしゃるとおり、htmlのフィルタリングをなくすことは、セキュリティ的に大問題です。ウィルスばらまくページにさえ、されかねません。

    カスタムフィールドを使って、youtubeのパラメータ部分のみ入力していただくのがよいのではないかと思いますが、いかがでしょうか。

    トピック投稿者 nabe

    (@nabe)

    shokun0803さん jim912さん 投稿ありがとうございます。

    jim912さんがおっしゃる通りセキュリティ的に問題が起こりそうですね。

    カスタムフィールドを使って、youtubeのパラメータ部分のみ入力をする方法で
    やってみたいのですが、カスタムフィールドの設定がいまいちわかりません。
    色々調べていますが苦戦中です。

    解りやすいご指導お願いします。宜しくお願いします。

    モデレーター jim912

    (@jim912)

    nabeさん、こんばんは。

    ちょっと、youtubeのタグのせいでごちゃごちゃしてますが、以下のコードをテンプレートの記事ループ内に入れてみてください。

    カスタムフィールドのキーは youtube で、値には URLのwatch?v=以降の文字列を入れていただく感じです。

    <?php
    $youtube_param = attribute_escape( get_post_meta( $post->ID, 'youtube', true ) );
    if ( $youtube_param ) : ?>
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/<?php echo $youtube_param; ?>&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo $youtube_param; ?>&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
    <?php endif; ?>
    トピック投稿者 nabe

    (@nabe)

    jim912さん こんばんは 遅くまでお仕事ご苦労様です。

    早速試してみたら出来ました!!ありがとうございます!!

    でも、値の入力でURLのwatch?v=以降の文字列ではなく

    そのままyoutubeからのurlのコピペもしくは、埋め込みタグ

    に変更したいです。すいませんわがままいって・・・

    お手数ですが宜しくお願いします。

    モデレーター jim912

    (@jim912)

    nabeさん、おはようございます。

    URLの入力で、こんな感じでしょうか。

    <?php
    $youtube_param = trim( get_post_meta( $post->ID, 'youtube', true ) );
    if ( $youtube_param && preg_match( '/[\w-]{11,13}$/i', $youtube_param, $matches ) ) : ?>
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/<?php echo $matches[0]; ?>&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo $matches[0]; ?>&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
    <?php endif; ?>
    トピック投稿者 nabe

    (@nabe)

    jim912さん こんばんは ありがとうございます。

    おかげさまで成功しました!!感謝感激です。
    さすがですね。お見事です。
    PHPのコードが理解し書けるようになるには本で勉強したんですか?

    shokun0803さん jim912さん 投稿ありがとうございました。

    モデレーター jim912

    (@jim912)

    nabeさん、こんばんは。

    成功なによりです。
    なお、上記のコードではURLを現状のURL仕様に則って記述しています。(英数の大文字・小文字とハイフン、アンダーバーの11文字と将来的に文字数が増えるかもしれないと思い、13文字までを許可。)
    今後、youtubeのURL指定が変わったりした場合、少々メンテする必要があるかもしれませんので、あらかじめ覚えておいてください。

    PHPのコードが理解し書けるようになるには本で勉強したんですか?

    人それぞれだと思いますが、私の場合は“とにかく書いて覚える!”ですかね^^;
    あとは、優れた人が書いたコードを読むこと、コードレビューしてもらうことなどもためになります。

    トピック投稿者 nabe

    (@nabe)

    jim912さん こんばんは

    メンテナンスの気遣い迄、本当にありがとうございます。
    しっかり覚えておきます!!

    PHPしっかり書いて覚えるですね
    たくさん為になりました。

    フォーラム最高です!!また利用せせて頂きます。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「メンバーシップ ユーザー権限について詳しい方」には新たに返信することはできません。