http://www.jdmweb.com/resources/video_managerで紹介されている動画マネージャーを設置したいのですが、うまくいかなく英語もわからないので、具体的な設置方法教えていただきたいです。

PHPからMysqlに接続するコード(sqlデータベース名等)は必要ないのかと悩んでいて、またそのようなソースコードが紹介されていなくお手上げ状態です。宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/04/25 14:28:44
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント70pt

MySQLに接続するコードは自分で書く必要があるのだと思います。

1.必要なファイルをダウンロードします。

http://www.jdmweb.com/resources/video_manager

※ページ上部にある説明のすぐ下(デモの上)の真ん中のアイコンをクリックするとダウンロードできます。

2.スクリプトのヘッダー内に各ファイルを読み込む記述を追加します。

3.「MyVideo.php」の3行目に使用するテーブル名を指定します。

define("table_name","myvideos");

4.「video_manager.js」の1行目で設置するURLを指定します。

※「http://web.example.com/admin/video_manager.php」がスクリプトのURLの場合

var pageurl = "/admin/video_manager.php"; // WEBルートからのパスで記述した場合

5.phpMyAdmin等を使用して、次のSQL文を実行してテーブルを作成します。

※テーブル名は、3で指定したものと同じ名前にします。

CREATE TABLE テーブル名 (
`video_id` int(11) NOT NULL auto_increment,
`video_url` varchar(255) default NULL,
`video_title` varchar(255) default NULL,
PRIMARY KEY (`video_id`)
)

上記SQL文を実行する代わりにスクリプトに「MyVideo::createVideoTable();」と書いても大丈夫です。

初回アクセス時にテーブルが自動作成されます。

※MySQLに接続した後の部分に記述してください。

6.249行目付近でスクリプトのパスに変更します。

          echo MyVideo::getVideoForm(0,"/admin/video_manager.php","post");

※「http://web.example.com/admin/video_manager.php」がスクリプトのURLの場合

7.動画タイトルの文字化け対策※save()の処理

105行目付近の以下の行を

    $title = htmlentities($_POST["video_title"],ENT_QUOTES);

次のように変更します。

    $post_title = $_POST["video_title"];
    $title = mysql_real_escape_string($post_title);

例えば、スクリプトの方は以下のような記述になります。

<?php
//Video Manager PHP Class
include("MyVideo.php");

$html = "<html>\r\n";
$html .= "<head>\r\n";
$html .= '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'."\r\n";
$html .= "<title>Video Manager</title>\r\n";
//Scripts (jQuery + FancyBox Plugin + Video Manager Script)
$html .= '<script type="text/javascript" src="js/jquery.js"></script>'."\r\n";
$html .= '<script type="text/javascript" src="fancybox/jquery.fancybox.js"></script>'."\r\n";
$html .= '<script type="text/javascript" src="js/video_manager.js"></script>'."\r\n";
//CSS (FancyBox CSS + Video Manager CSS)
$html .= '<link rel="stylesheet" type="text/css" href="fancybox/fancy.css">'."\r\n";
$html .= '<link rel="stylesheet" type="text/css" href="css/video_manager.css">'."\r\n";
$html .= "</head>\r\n<body>\r\n<div>\r\n";
echo $html;

$host = "DBサーバー";
$dbuser = "DBユーザー名";
$dbpass = "DBパスワード";
$dbname = "データベース名";

$con = mysql_connect($host,$dbuser,$dbpass);
mysql_set_charset("utf8");
$db = mysql_select_db($dbname);

MyVideo::createVideoTable();

//On your Page:
echo '<div id="publicside">
<h3>Public side : Your List Of Videos</h3>'."\r\n";

MyVideo::getPublicSide();

echo '</div>'."\r\n";

//On your Page:
echo '<div id="adminside">'."\r\n";

MyVideo::getAdminSide();

echo '</div>'."\r\n";

echo "</div>\r\n</body>\r\n</html>\r\n";

?>

※読み込む各ファイルのパスに気をつけてください。

id:yato12

rouge_2008 様 お答え有り難うございます。おかげさまで設置できとても嬉しいです。

有り難うございました。

2010/04/25 14:25:21
  • id:rouge_2008
    無事に設置出来たようで良かったです。
    いるかとポイントをありがとうございました。(^^)
    ところで、メール通知で初回の返信を確認しましたが、その後Xserverでも無事に動作したのでしょうか?

    > Xserverでは作成したvideo_manager.phpを実行すると白紙になります。どうもmysqlに接続できてないような気がします。

    サーバーがエラーを表示しない設定になっているようですので、php.iniあるいは.htaccessでエラーを表示させて確認してください。
    ※どちらで設定するかは、使用しているサーバーによって異なります。
    http://www.xserver.ne.jp/faq_service_php.php#01

    sv1~sv35サーバー ・・・ .htaccess
    php_flag display_errors On

    sv50サーバー以降 ・・・ php.ini
    display_errors = On


    ※なお、エラー出力レベルを「E_ALL」など「E_NOTICE」レベルが含まれている値に設定した場合、軽微な文法違反がたくさん出ます。
    以下を設定して確認してみてください。

    .htaccess
    php_value error_reporting 2047

    php.ini
    error_reporting = E_ALL

    対処方法は以下になります。

    1.165行目から181行目付近にある「$video[video_xxx]」を「'」または「"」で囲んで「$video['video_xxx']」のようにする。

    2.240行目付近にある「if($_POST['ajaxrequest']!=1) ~ 」という行の前に1行追加して以下のようにする。
    $_POST['ajaxrequest'] = null;
    if($_POST['ajaxrequest']!=1){ //If not an ajax request

    3.206行目から209行目付近にある「$video[video_xxx]」を「'」または「"」で囲んで「$video['video_xxx']」のようにする。

    上記の3つを行えば、エラーは表示されなくなります。
  • id:yato12
    rouge_2008 様
    ご親切に追記コメントいただき有り難うございます。初回の返信での件ですが、
    mysql_set_charset("utf8");をコメントアウトすれば動きました^^;

    ご指摘のとおりにphp.iniでエラーを表示させてみたところ
    Call to undefined function mysql_set_charset() in・・・・と
    エラー表示が帰ってきたので、文字コードセットで何かあるみたいです。
    コメントアウトして特に文字化け等発生してないので、このままでいいのかな?と
    そのまま使用しています。
  • id:rouge_2008
    すみません。
    mysql_set_charset()がPHP 5.2.3以降でないと使用できないのが原因です。
    文字化けしていないそうですのでそのままで大丈夫なはずですが、MySQL 4.1以降を使用する場合は、「mysql_query("SET NAMES スクリプトの文字コードに合わせた文字セット名")」で文字コードを設定してください。
    http://dev.mysql.com/doc/refman/4.1/ja/charset-charsets.html

    ※PHPが5.2.3以降で、MySQLが5.0.7以降の場合は、mysql_set_charset()が推奨されています。
    http://php.net/manual/ja/function.mysql-set-charset.php

    MySQL 4.0を使用しているのでしたら、そのまま(文字コードをセットしない)で大丈夫だと思います。
  • id:yato12
    ご指摘の通りPHPバージョン5.16でした。それで動かなかったのですね。原因わかりすっきりしました。mysql_query("utf8")を記述して対策しておこうと思います。。有り難うございました。
  • id:rouge_2008
    何回もすみません。
    ご自分だけで使用するのかもしれませんが一応・・・

    $post_title = $_POST["video_title"];

    上記の行を次のように変更してください。(※手順7で変更した部分です。)

    $post_title = strip_tags($_POST["video_title"]);

    ※HTMLタグがすべて削除されます。
    ※変更するのは上記1行だけです。(次の行はそのまま)
  • id:yato12
    変更して使用します、有難うございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません