OpenPNEで全員マイフレンドになるPHPを書いてみよう

■ダウンロード

version 0.9.0(2009.04.08 latest release)
OpenPNE v2.12.3でテスト済み
関数を外部からインクルードしソースを簡素化
互換性を考慮し、ショートタグを使用中止
MySQLのみ対応
9行目、10行目の「//」を削除することにより、エラーメッセージを表示させられる(デバッグを考慮)
version 0.9.0tester.zip(2009.04.08 release)
OpenPNE v2.12.3でテスト済み
テスト用のプログラムです
version 0.8.0.zip(2009 release)
OpenPNE v2.12.3でテスト済み
functionsはset.php内に記述されています
version 0.7.0.zip(2009 release)
OpenPNE v2.12.3でテスト済み
set01.phpも含まれています

■インストール方法

  1. 公開ディレクトリにダウンロードしたファイルを設置
  2. テンプレート内に全てのメンバーをフレンドにするボタンを設置

テスト用のプログラムについて

通常版で不具合が発生する場合、テスターバージョンをご利用ください。その際に13~18行目を環境に応じて変更してください。

define('OPENPNE_URL', 'http://sample.com/');
define('DB_HOST', 'localhost');
define('DB_USER', 'your_db_user_name');
define('DB_PASS', 'your_db_user_password');
define('DB_NAME', 'your_db_name_for_openpne');
define('TBL_PRE', '');
localhost
MySQLサーバーの場所。Webサーバーと同じ場合は「localhost」、他のサーバ上の時はIPアドレスで指定。通常は「localhost」のままで良い
your_db_user_name
MySQLサーバーのユーザーネーム
your_db_user_password
MySQLサーバーのパスワード
your_db_name_for_openpne
データベースの名前
TBL_PRE
通常は空欄のままで問題はないかと思われる

変更が完了したら、同じく所定の位置にアップしてください。

■テンプレートの修正

PNE BIZを使ってない方

webapp/modules/pc/templates/h_home.tplを編集

<li><a href="/modules/pc/add_all_friends/set.php?c_member_id= ({$c_member.c_member_id})">みんなフレンド!</a></li>

を73行目あたりに追加してください。

PNE BIZを使ってる方

webapp_biz/modules/biz/templates/inc_biz_schedule_week.tplを編集

<li><a href="/modules/pc/add_all_friends/set.php?c_member_id=({$member_info.c_member_id})"><input type="button" class="input_submit" value="みんなフレンド!" onclick="location.href = '/modules/pc/add_all_friends/set.php?c_member_id=({$member_info.c_member_id})'" /></a></li>

を122行目あたりに追加してください。

■version 0.9.0 ソースコード

set.php

「/modules/pc/add_all_friends/set.php」(公開ディレクトリ)に設置

<?php
/**
 * Mitsuaki Ishimoto
 * justoneplanet.info
 * 2009-04-07
 * ver 0.9.0
 * set.php
/*==========================================================================================*/
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
require_once('../../../config.inc.php');
require_once('inc/functions.php');
define('TBL_PRE', '');
define('MSG_BECAME', 'Everyone became your friend!!');
define('MSG_ALREADY', 'Everyone have been already your friend!!');
/*==========================================================================================*/
//main
$dbh = mysql_connect(
	$_OPENPNE_DSN_LIST['main']['dsn']['hostspec'],
	$_OPENPNE_DSN_LIST['main']['dsn']['username'],
	$_OPENPNE_DSN_LIST['main']['dsn']['password']
);
mysql_select_db(
	$_OPENPNE_DSN_LIST['main']['dsn']['database'],
	$dbh
);
$user_id_list = getAllUserList();
$combination_list = getAllCombinations();
$msg = setFriends($user_id_list, $combination_list);
mysql_close($dbh);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Everyone is your Friends</title>
</head>
<body>
<p><?php print($msg); ?></p>
<form action="<?php print(OPENPNE_URL); ?>" method="post">
<input type="submit" value="もとのページに戻る" />
</form>
</body>
</html>

functions.php

「/modules/pc/add_all_friends/inc/functions.php」(公開ディレクトリ)に設置

<?php
/**
 * Mitsuaki Ishimoto
 * justoneplanet.info
 * 2009-04-07
 * ver 0.9.0
 * functions.php
/*==========================================================================================*/
/**
 * get all user list
 * @return (array) all users list
 */
function getAllUserList(){
	global $dbh;
	$user_id_list = array();
	$sql = "SELECT DISTINCT `c_member_id` FROM `c_member`";
	$result = mysql_query($sql, $dbh);
	while($row = mysql_fetch_array($result)){
		$user_id_list[] = $row['c_member_id'];
	}
	return $user_id_list;
}
/**
 * get all combinations
 * @return (array) all users combinations
 */
function getAllCombinations(){
	global $dbh;
	$combination_list = array();
	$sql = "SELECT `c_member_id_from`,`c_member_id_to` FROM `c_friend`";
	$result = mysql_query($sql, $dbh);
	while($row = mysql_fetch_array($result)){
		$combination_list[] = "'$row[c_member_id_from]','$row[c_member_id_to]'";
	}
	return $combination_list;
}
/**
 * set friends
 * @return (array) result status
 */
function setFriends($user_id_list, $combination_list){
	global $dbh;
	$date = date("Y-m-d H:i:s");
	$msg = MSG_BECAME;
	if(isset($_GET['c_member_id']) && in_array($_GET['c_member_id'], $user_id_list)){
		$c_member_id = mysql_real_escape_string($_GET['c_member_id']);
		$value_list = '';
		for($i=0; $i<count($user_id_list); $i++){
			if($c_member_id != $user_id_list[$i]){
				$register_list = "'$c_member_id','$user_id_list[$i]'";
				if(!in_array($register_list, $combination_list)){
					$value_list .= ",('',$register_list,'$date','','')";
				}
				$register_list = "'$user_id_list[$i]','$c_member_id'";
				if(!in_array($register_list, $combination_list)){
					$value_list .= ",('',$register_list,'$date','','')";
				}
			}
		}
		if($value_list != ''){
			$value_list = substr($value_list, 1);
			$sql = "INSERT INTO c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list";
			$result = mysql_query($sql, $dbh);
		}
		else{
			$msg = MSG_ALREADY;
		}
	}
	else{
		$register_list = array();
		for($s=0; $s<count($user_id_list); $s++){
			for($t=0; $t<count($user_id_list); $t++){
				if($s != $t){
					$register_list[] = "'$user_id_list[$s]','$user_id_list[$t]'";
				}
			}
		}
		for($i=0; $i<count($register_list); $i++){
			if(!in_array($register_list[$i], $combination_list)){
				$value_list .= ",('',$register_list[$i],'$date','','')";
			}
		}
		if($value_list != ''){
			$value_list = substr($value_list, 1);
			$sql = "INSERT INTO c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list";
			$result = mysql_query($sql, $dbh);
		}
		else{
			$msg = MSG_ALREADY;
		}
	}
	return $msg;
}
?>

■作者の一言

用途にもよるんですが、社内SNSなどとして運用する時に特定の人としかフレンド関係になれなかったりするのが弊害になったりしますよね。そんな時、全員がマイフレンドになれたらって思うわけです。エラーがありましたらエラー表示も教えて頂けると助かります。

OpenPNEで全員マイフレンドになるPHPを書いてみよう” への46件のコメント

  1. ピンバック: 人気記事とか・・・ - JustOnePlanet Administrator’s Blog

  2. はじめまして。
    openpneの設定の検索をしていてこのブログにたどり着きました。
    露口と申します。
    勉強になる記事が多くこれから勉強させて頂きます。

    この全員がマイフレンドになるphpの記述を使わせて頂きたいのですが
    1つだけ教えて頂けますでしょうか?

    set.phpの設置場所ですが

    「config.inc.php」と同じ階層にある「modules」の中の「pc」の中に
    「add_all_friends」というホルダーを作って「set.php」を入れたらいいのでしょうか?

    それとも、
    「webapp_biz」の中の「modules」の中の「pc」の中でしょうか?

    お忙しいと思いますがお手すきの時で結構ですのでお教え頂けましたら
    嬉しいです。
    よろしくお願い致します。

  3. コメントいただきまして
    ありがとございます!!

    //=========================
    そうですね。正しく書きますと
    「config.inc.php」と同じ階層(公開ディレクトリ)の

    『/modules/pc/』

    の中に

    『add_all_friends』

    というフォルダを作り、
    set.phpを配置するという事になります。

    //=========================
    【続き】
    配置が完了すると
    テンプレートに配置したリンク(ボタン)で
    set.phpにアクセスできるようになります。

    //=========================
    さらっと書いたプログラムで恐縮ですが
    宜しければご利用下さい。
    プラグイン化できるよう頑張ります!

    OpenPNEのプラグイン市場が潤ってなくて大変なんですよね。
    次期OpenPneにむけて、この状況も変わると嬉しいですね。。。

  4. すいません
    テンプレートに書き加える方のinputタグを
    以下のように修正しました。

    <input type=”button” class=”input_submit” value=”みんなフレンド!” onclick=”location.href = ‘/modules/pc/add_all_friends/set.php?c_member_id=({$member_info.c_member_id})'” />

    //onclick属性を追加(IEでクリック出来ないバグを解消)

  5. ご丁寧なご回答ありがとうございます。

    早速利用させて頂きたいと思います。
    本当に助かりました。

    これからも更新楽しみにしています。
    ありがとうございました。

  6. お恥ずかしいご質問で恐縮なのですが
    もう一つだけお教え頂きたい部分がございます。

    //=========================

    【続き】
配置が完了すると
    
テンプレートに配置したリンク(ボタン)で
    
set.phpにアクセスできるようになります。
//=========================


    と、ご説明して頂きましたところですが
    webapp_biz/modules/biz/templates/inc_biz_schedule_week.tpl

    にお教え頂きましたタグを記載したらリンクボタンが配置されるのでしょうか?

    それとも「みんなマイフレンド」等のボタンをつくり管理画面で
    リンクさせるタグを書いて表示させる様にしないとダメなのでしょうか?

    openpneは運用して数年になるのですが、
    プログラムのことは全くの素人同然で
    おはずかしいご質問で大変申し訳ございません。

    お助け頂けましたら幸いです。

    お忙しいところ申し訳ございませんがよろしくお願い致します。

  7. いえいえ、こちらこそ、分かりにくくて申し訳ないです。
    まず編集するファイルですが『PNE BIZ』を使ってる場合は
    webapp_biz/modules/biz/templates/inc_biz_schedule_week.tpl
    を編集して下さい。

    122行目あたりにliタグで「プロフィール変更」のボタンが設置されているのでそこのすぐ下に上述の
    <li><a href=”/modules/pc/add_all_friends/set.php?c_member_id=({$member_info.c_member_id})”><input type=”button” class=”input_submit” value=”みんなフレンド!” onclick=”location.href = ‘/modules/pc/add_all_friends/set.php?c_member_id=({$member_info.c_member_id})’” /></a></li>
    を書き足せば「みんなフレンド!」のボタンが付きます。

    もしPNEBIZを使ってない場合は
    webapp/modules/pc/templates/h_home.tpl
    などに編集を加える形になるかと思います。
    (すみません、PNEBIZを使ってない場合の検証はしてないです)

    もし上手く行かないようでしたら
    またお知らせください。。。

  8. 度々の質問にも関わらず
    ご丁寧な解説ありがとうございます。

    PENBIZでなく普通のopenpne2.12.6でやっていますので
    「プロフィール変更」のボタンの下にお教え頂きました
    タグを書き足してもみんなマイフレンドのボタンがあ
    現れないみたいです。
    もしかしたら普通のopenpneではダメなんでしょうか^^;

    お教え頂きました
    webapp/modules/pc/templates/h_home.tpl

    等をいろいろと見て
    なんとか頑張って挑戦してみたいと思います。

    また、お願いするかも解りませんが
    その時はよろしくお願い致します

  9. お返事がおそくなってしまいすみません。。。

    >もしかしたら普通のopenpneではダメなんでしょうか^^;
    普通のOpenPNEですと「PNEBIZ」とは違ったテンプレートを読み込んでると思われます。従いまして、そちらのテンプレートにリンク(もしくはボタン)を付け足す処理が必要になるかと思います。

    私の方でももう少々調べてみます。。。

  10. webapp/modules/pc/templates/h_home.tpl
    の73行目あたりに下記のliタグを追加してください。
    <li><a href="/modules/pc/add_all_friends/set.php?c_member_id=({$c_member.c_member_id})">みんなフレンド!</a></li>

    これで使えるようになるかと思います。
    何かありましたら、またご連絡ください。

  11. ご丁寧なご回答ありがとうございます。

    openpne2.12.6での検証結果をご報告致しましたが

    何故か投稿が反映されていないようです・・^^;

    届いていますでしょうか?

    大変お手数をお掛け致しますがご確認をよろしくお願い致します。

  12. ご報告致します

    プロフィール確認の下に、リンクが現れましたのでクリックしてみますと

    ドメイン/modules/pc/add_all_friends/set.php?c_member_id=3

    と出て画面は真っ白になり

    元に戻ってサイトの更新をしてみましたが
    マイフレンドの数に変化はありませんでした。

    なかなか手強いです・・・。
    でも、前進しているようですので頑張ります。

  13. こんばんは
    お返事が遅くなりすみません。

    画面が真っ白で何も表示されてない場合、
    phpのエラーが出てる可能性があります。

    記事中のソースコードをコピーしてご利用でしょうか?
    phpの開始タグが欠けていたので記事を修正しました。
    ダウンロード版の方をご利用の場合も
    ソースを微調整したので再度ダウンロードしてご利用ください。

    おっちょこちょいで、すみません。。。

  14. こんにちは

    ご回答ありがとうございます!

    設置には
    ダウンロード版を利用させて頂きました。

    今日と明日は出張で出てますので
    帰ったら新しいソースで試してみます!!

    また、結果をご報告させて頂きます!!

    本当にありがとうございます☆☆☆

  15. ダウンロード版でしたか。
    >画面は真っ白
    恐らくサーバーの設定でPHPの詳しいエラーが
    表示されないようにしてあるのでしょう。。。

    ところで再度ダウンロードして頂くと、
    「set_test.php」というファイルがあると思います。
    そちらのファイル名を「set.php」に変更して頂きアップすると、
    PHPのエラーメッセージが表示されるようになってます。

    もしも上手くいかないようでしたら
    そちらを上記の方法でアップして頂き
    お手数ですが画面に表示されるエラーメッセージを
    ご連絡頂けますでしょうか?
    そちらを元にソースを修正します。

    乗りかかった船なので動くまでサポートします☆

  16. 出張から帰りバタバタしていて
    ご連絡が遅くなってすみません。

    ご丁寧な解説ありがとうございます。

    まず、修正して頂いた前回の新しいファイルをダウンロード
    し、
    modules/pc/add_all_friendsの中に設置し

    みんなフレンド!をクリックしましたが、前回と同じ

    http://○○○○○.com/modules/pc/add_all_friends/set.php?c_member_id=3

    と上のURLの記入欄にでて画面は真っ白でした

    その後、今回お教え頂きました
    「set_test.php」を「set.php」に変更してサーバー上の
    ファイルと入れかえクリックしましたが

    同じ状態で白の画面でした。

    「set_test.php」は元のファイルに

    error_reporting(E_ALL & ~E_NOTICE);

    このコードを追加されているファイルで合っていますでしょうか?
    それでしたらそのファイルの名前を変更して設置したので
    ま違いないと思います。

    一応使用しているサーバーはXサーバで、特に設定の変更はなにも
    していない状態です。

    設置している場所も確認しましたが間違いはないと思います。

    なにが悪いんでしょう・・・・・。

    ほんとにお手数をお掛けして大変申し訳ございません。

    あと、使用しているのはMacでOSはMac OSX 10.5.5
    ブラウザはSafari とFirefoxで検証しています。

  17. はじめまして。
    OpenPNEで全員マイフレンドになる方法を探していたらたどり着きました。

    当方もPNEBIZを使っており、記事のとおりに設定していったのですが
    みんなフレンド、というボタンを押すとObject not found!とでてしまいます
    指定した場所にset.phpはみんなフレンドに書いてあるURLのところに配置してあるのですが・・・

    参考にさせていただき自力で何とかしようと思ったのですがどうにもうまくいきません
    よろしければ力をお貸しください・・・

  18. お世話になっております。
    原因を究明中ですので今しばらくお待ちください。。。すみません。。。

  19. まず、
    以下のようなコードをサーバーに
    試しにアップして頂いて宜しいでしょうか?
    既に行った作業と重複してしまったらすみません。
    ■test.php=============================
    <?php
    error_reporting(E_ALL & ~E_NOTICE);
    print(2 / 0);
    ?>
    =======================================

    でアクセスすると
    『Warning: Division by zero』のような
    警告が出るかと思います。

    ■警告が出る場合
    ダウンロードした『set_test.php』でも
    エラーメッセージが表示される可能性が高いので
    正しいディレクトリに
    『set.php』が配置されていない可能性があります。
    『set.php』の正しいディレクトリは
    公開ディレクトリの
    『/modules/pc/add_all_friends/set.php』
    となります。
    つまり「みんなフレンド」のボタンのリンク先になります。

    ■警告が出ない場合
    サーバーの設定でエラーメッセージが
    表示できない設定になっている可能性があります。
    変更できる場合は変更し、出来ない場合は放置してください。

    ■考えられる上手くいかない要素
    (1)『set.php』が正しいディレクトリに配置されていない
    テストするために
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
    <html xmlns="http://www.w3.org/1999/xhtml"&gt;
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>てすと</title>
    </head>
    <body>
    テストですよー
    </body>
    </html>
    というファイルを試しに
    『set.php』という名前で保存し
    所定の位置にアップしてください。
    『みんなフレンド』を押した時、
    『テストですよー』と表示されれば
    そちらが『set.php』をアップする
    正しいディレクトリという事になります。

    (2)require_once(‘../../../config.inc.php’);
    『set.php』の3階層上のディレクトリに
    『config.inc.php』が存在してない
    =つまり『set.php』が正しいディレクトリに配置されていない事になります

    (3)データーベースのテーブル名にデフォルトとは違う名前(プリフィックス)のような物がついている。
    c_access_block ⇔ ???_c_access_block

    (4)設定でショートタグを使えないようにしている
    130行目あたりにある
    <p><?= $res[‘msg’] ?></p>
    <p><?= $res[‘sql’] ?></p>
    の記述を
    <p><?php print($res[‘msg’]); ?></p>
    <p><?php print($res[‘sql’]); ?></p>
    のように変更して試してください。

    お返事が遅くなってしまいすみません。
    お手数ですが上記のような方法で試して頂けますでしょうか?
    何か不具合があるようでしたら
    再度ご連絡をお願いします。
    その際、恐縮ですがエラーメッセージなども頂けると大変に助かります。

  20. 【追記】
    『/modules/pc/add_all_friends/set.php』
    についてですが
    デフォルトでは
    『add_all_friends』
    というディレクトリは存在してないはずなので
    手作業で『add_all_friends』というディレクトリをつくり
    その中に『set.php』を入れています

    また
    『/modules/pc/』のなかに既に
    『do』,『page』といったフォルダが存在している場合
    そちらは公開ディレクトリの
    『/modules/pc/add_all_friends/set.php』
    ではありません。

    原因究明のお手伝いになれば幸いでございます。
    既にご存知でしたらすみません。。。

  21. お忙しいところご回答ありがとうございます!

    早急に試してみてご報告させて頂きます。

    感謝致します!!

  22. 一番最初の部分が抜けていました

    ■test.php=============================

    =======================================

    を設置しました

  23. すみません
    何故かコピペしたんですが

    ■test.php=============================

    =======================================

    の中の文字が表示されません

    サーバに設置したファイルにはちゃんと入れて検証しています。
    ここに書き込んだら何故か中のコードが表示されないので、
    一応記載しておきます。

  24. 露口様
    >中の文字が表示されません
    すみません。これはブログシステムの仕様上の問題かと思われます。
    HTMLのタグ(XML)形式のものは省かれてしまうのでしょう。
    大文字で<?と打てば大丈夫なようです。

    あと、すみません。
    最後に入力して頂いたコメントに
    パスワードが混じっているようなので
    削除させて頂きました。

    ソースコードにつきましては
    今しばらくお待ち下さい

  25. すみません。

    環境に依存し
    エラーが抑制されていた箇所が判明しました。
    ソースコードを修正しましたので
    再度ダウンロードして頂けますでしょうか?
    (ちなみにfirefoxですと前回ダウンロードしたデータが
    キャッシュされるようですので他のブラウザ等で
    ダウンロードお願いいたします)

    ■set.php===================================================
    define(‘DB_HOST’, $_OPENPNE_DSN_LIST[‘main’][‘dsn’][‘localhost’]);

    define(‘DB_HOST’, $_OPENPNE_DSN_LIST[‘main’][‘dsn’][‘hostspec’]);
    と修正しています

  26. 初心者の度重なる質問にもかかわらず
    ご丁寧なサポートをして頂き無事解決することが出来ました☆

    これからもこちらのブログで勉強をさせて頂きます!
    更新を楽しみにしています!!

    本当にありがとうございました!!

  27. 初めまして。数週間ほど有料レンタルSNS(OpenPne)を運営しておりましたが、人数が増えるにつけマイフレンド登録が面倒だという声が挙がってきました。

    そこで、SNSに入った時点でマイフレンド登録する機能がほしいと思うようになり、自己セットアップしました。

    セットアップが済んだので、前から知っていたこちらのサイトの記事を参考にして試みました。

    SNSのホームに「みんなフレンド!」リンクはでましたが、クリックすると「Web ページがみつかりません」というページに飛びます。

    リンク先は

    URL/modules/pc/add_all_friends/set.php?c_member_id=2

    です。
    突然のお願いで恐縮ですが、ご教授いただけないでしょうか。よろしくお願いします。

  28. 済みません、先ほどの者です。
    h_home.tplファイル中のパスが間違っていたようで、訂正したら「Everyone have been already your friend!!」と出てきました。
    マイフレンドしかいない状態でのテストでしたので、この結果は理解できます。

    でも、Return to your top ボタンを押したら、「Method Not Allowed The requested method POST is not allowed for the URL /index.html.」というエラー画面になりました。

    この戻り先のURLが違っているようなのですが、どこに記述されているものかわかりません。

    よろしくお願いします。

  29. コメントありがとうございます。

    お返事が遅くなってすみません。
    ちょっと気になってるのですが
    エラー画面はPHPのではなくOpenPNEのエラー画面という事ですよね!?

    調べてみますので
    すみませんが、もう少々お待ちくださいー

  30. 調べてみました。
    静的なファイルにPOSTリクエストすると発生する
    Apacheのエラーのようです。

    元に戻るボタンで
    ドメイン直下のファイルに戻るようにしてあったのですが、
    OpenPNEをインストールしているディレクトリによっては
    不具合が生じると思われます。

    修正したファイルをアップロードしましたので
    お手数ですが再度ダウンロードしてご利用ください。
    最初の「ファイルをインクルードする部分」と
    最後のformタグ部分を変更してますー。
    //========================================
    //ちなみにform部分のソースです
    <form action="<?php print(OPENPNE_URL); ?>" method="post">
    <input type="submit" value="Return to your top" />
    </form>

  31. さくらインターネットのスタンダードでMYNETS1.2.0.3を動かしています
    OPENPNEで動くならと試してみたら、set001.phpの中身を一部修正
    DBの環境と、テーブル参照の接頭文字を幾つか追加したら普通に動いて
    しまいました。
    一元設定が出来てすごく良いです。どうーもありがとうございました。

  32. >32
    いえいえ、お役に立てて光栄です!
    定期的にアップデートしますので宜しければ
    またお越しください。

    >30
    すみません
    上手くアップロード出来てなかったようです。
    帰宅後アップしますので今しばらくお待ち下さい。

  33. #7の者です。ご無沙汰してしまって済みません。

    全員マイフレンドリンクは修正ファイルをアップしなくても無事機能しております。
    ありがとうございました。

    が、レンタルの時は携帯から画像のアップができたのに、今度はできなくなってし
    まいました。
    自己セットアップの方たちは、このような症状は出ていますか?

  34. さくらインターネットのスタンダードプランでOpenPNEを運用しています。
    しかし set.php にアクセスすると、どうしても内部サーバエラー500になってしまいます。

    そこで、「追記」にある set01.php でのDB設定を試してみたいのですが、このファイルは、もう配布されていないのでしょうか?
    set.zipを解凍してもset.phpしか入っていないようでした。。。

  35. コメントありがとうございます!
    >34
    すみません。
    今日~明日には再アップします。

    >33
    ちょっと再現するか調べてみます。

    多くの方がご利用してくれてるみたいなので
    ファイル管理も含め改善していきたいと思います。
    しばしお待ち下さいませ。。。

  36. 一番上にリリース順になるようにダウンロードを設けてみました。

    >34
    >さくらインターネットのスタンダードプランでOpenPNE
    自分もかつて、さくらのサーバーにお世話になりましたが
    その時は確かDBサーバーがlocalhostでなかった気がします。
    原因は他にもあるかもしれませんが
    お力になれましたら幸いでございます。

  37. >34
    度々すみません。どうも「500」が気になってます。
    同じディレクトリで
    //===============
    <php?
    phpinfo();
    ?>
    //===============
    などの簡単なスクリプトを実行した場合などはドウでしょうか?

  38. >33
    OpenPNEのバージョンは2.x.xですよね?
    パーミッション(書き込み権限設定)はドウでしょうか?
    (http://whooms.com/blog/howto-install-openpne.html
    の$ chmod -R 777 /usr/local/OpenPNE/varの部分)
    画像が保存されるディレクトリのパーミッションが
    (基本的には)777でないと上手くアップロードできないかと思います。

  39. 早速のご対応、ありがとうございました!!

    状況としては、version 0.9.0tester.zip に含まれているset.php(テスターバージョン)で動作しました!

    通常版ではやはりエラー500となってしまい、デバックモードで動かしたとき、下記のエラーが出ました。

    Warning: require_once(/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/*****/www/*****/config.inc.php on line 8

    Fatal error: require_once() [function.require]: Failed opening required ‘/config.php’ (include_path=’.:/usr/local/php-5.2.8/lib/php’) in /home/*****/www/*****/config.inc.php on line 8
    (一部伏字あり)

    ちなみに、DB_HOST は localhost ではなく、mysql**.db.sakura.ne.jp(**は数字)と、指定されたとおりに設定しています。config.phpも同じ。

    phpinfo() は問題なく表示されました。
    ただ、PHPのバージョンが 5.2.8 でしたが、その辺も関係ありそうですかね??

    取り急ぎ、お礼とご報告まで。

  40. >39
    いえいえ。
    お役に立てて光栄です。

    エラーメッセージも頂けて大変に助かります。
    僕の運用しているOpenPNEですと
    //==============================
    通常の閲覧者がアクセス
    →index.phpがconfig.inc.phpを呼び出す
    →config.inc.phpがconfig.phpを呼び出す
    //==============================
    という流れになってます。
    ichizen様の場合ですと、どうやらディレクトリ構成が僕とは異なっているようです。
    通常版のset.phpでは
    //==============================
    set.phpがconfig.inc.phpを呼び出す
    →config.inc.phpがconfig.phpを呼び出す
    //==============================
    という流れのためディレクトリ構成が異なっていると
    エラーになってしまうようです。

    バージョンアップする際は
    この点にも配慮して制作しようと思います。
    勉強になりました!ありがとうございました!

  41. はじめまして。MyNETS1.2.0.3+0.9.0testerを利用しています。
    設置はスムーズに行き、全員マイフレンドにはなるのですが、何度実行してもEveryone have been already…とならず、重複してフレンド登録されてしまいます。
    自分自身とはフレンドにならないことから、combination_listとの比較の工程に問題が生じているのでは?と考えていますが、どうにも困っています。
    MyNETSでの利用に関する質問は筋違いかもしれませんが、できればアドバイスを頂きたいです。よろしくお願いします。

  42. >41
    コメントありがとうございます。

    当方にテスト環境がないのですが
    色々調べつつ頑張ってみようかと思います。

    >combination_listとの比較の工程
    文字列で比較してますからね・・・あまり美しくないですよね。。。
    次期バージョンではこの辺も改善したいと思います。
    本当はプラグイン化したいと考えてます☆

  43. 41です。お忙しいところ、対応ありがとうございます!
    試行錯誤の後、無事解決致しました。
    当方の環境ですと、c_member_idの値が『’ 1’』のように、スペースが付与されていたようです。
    php初心者なので適切な記述か分かりませんが、functions.phpの46行目の後に$c_member_id = trim($c_member_id);を追加することによって解決しました。

    丁寧な対応と開発姿勢はすばらしいと思います。
    次期バージョン、プラグイン化に期待してます☆

  44. >43
    わざわざ情報提供して頂きまして
    ありがとうございます!

    なるほど。
    スペースが付与されている事(環境)もあるんですね。
    今後の制作に生かしたいと思います!

    ホントにありがとうございます!

  45. 初めまして。MyNETSのサポート掲示板過去ログよりこちらにたどり着きました。
    まだ、ダウンロードをして設定はしていないのですが、質問させて頂きます。
    全員マイフレンドのこのPHPでは、全員ではなく、特定者だけを登録したときにマイフレンドにすることは可能でしょうか?
    ID1の管理者とは最初からフレンド状態なのですが、管理サイドのIDが複数あるため、そのIDとはすでにマイフレンドとして表示される状態にしたいと考えています。

    筋違いな質問でしたらご了承ください。

  46. コメントありがとうございます!!!

    こちらのスクリプトは全てのユーザがフレンドになるスクリプトです。
    従いましてアカウント登録時などに特定のユーザ間の関係を生成することはできません。
    恐れ入りますが宜しくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です