質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • PHP

    21364questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • SQL

    2558questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

OpenPNEで全員フレンド機能を実装したい(PHPエラー)

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 211

JunTokita

score 1

 前提・実現したいこと

OpenPNEというmixiライクなものをロリポップサーバーに
入れました。そこで全員フレンド機能を実装しようとこちらのページを参考にやっているのですが、エラーが出てphpが実行できません。
ユーザーが新規作成された時点もしくは新規ユーザーがログインした時点で現メンバー全員と
フレンドになっていることが条件です。

 発生している問題・エラーメッセージ

ブラウザ上(Chrome)で500エラーが発生してログイン画面にアクセスできません。

### 該当のソースコード
function UpdateMemberRelationship(){
$sql = “select id from `member` where is_active=’1′ and id!=’$myNumber'”;
$result = $db->queryAll($sql);
if (MDB2::isError( $result )) {
die($result->getMessage());
}
print_r($result);
$types = array(‘integer’,’integer’,’integer’, ‘text’, ‘text’);
$table=”member_relationship”;
$prepare=”INSERT INTO $table VALUES (:id, :name, :lang)”;
$sth = $db->prepare(
‘INSERT INTO ‘.$table.’ (
`member_id_to` ,
`member_id_from` ,
`is_friend` ,
`created_at` ,
`updated_at`
) VALUES (:to, :from, :is_friend,:create , :update)’, $types);
if (PEAR::isError($sth)){
echo $sth->getDebugInfo();
exit();
}
foreach($result as $member){
 $id=$member[0];
 if($myNumber==$id){
 continue;
 }
 print $id.”hello<br>”;
 $data[to]=$id;
 $data[from]=$myNumber;
 $data[is_friend]=1;
 $data[create]=date(“Y-m-d H:m:s”);
 $data[update]=date(“Y-m-d H:m:s”);
 $affectedRows = $sth->execute($data);
}
}


public function executeRegisterInput(opWebRequest $request)
  {
    $this->forward404Unless(opToolkit::isEnabledRegistration((sfConfig::get('app_is_mobile') ? 'mobile' : 'pc')));

    $this->token = $request['token'];
    $member = $this->getUser()->setRegisterToken($this->token);

    $this->forward404Unless($member && $this->getUser()->isRegisterBegin());

    opActivateBehavior::disable();
    $this->form = $this->getUser()->getAuthAdapter()->getAuthRegisterForm();
    opActivateBehavior::enable();

    UpdateMemberRelationship($this->id);

    if ($request->isMethod('post'))
    {
      $this->form->bindAll($request);

      if ($this->form->isValidAll())
      {
        $result = $this->getUser()->register($this->form);
        $this->redirectIf($result, $this->getUser()->getRegisterEndAction($this->token));
    }

    return sfView::SUCCESS;
  }

php

 試したこと

こちらの情報を参考に試しました

 補足情報(FW/ツールのバージョンなど)

OpenPNE3.8.28 こちらからダウンロードできます
phpバージョン5.6(ロリポップコンパネから設定)
ロリポップサーバースペック
スタンダードプランを使用

以上、よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • t_obara

    2018/07/17 10:59

    ブラウザ側だけでなく、サーバ側で出力されるエラーログをご確認されるとよろしいかと思います。すでに回答が付いておりますので、それで今回の問題が解決できたとしても、また他の問題が発生することもあるかと思います。そのような場合、サーバ側のエラーログを参照すると、ご自身で問題点に確認しやすくなりますし、質問サイトで問い合わせをする際にも、解決が早くなる可能性が高くなります。

    キャンセル

  • JunTokita

    2018/07/22 10:27 編集

    みなさまご回答ありがとうございます。
    皆様のご指摘通り、全角のものを半角に直したところ、500エラーは出なくなり、ログイン画面を表示してログインすることはできるようになったのですが、全員フレンド機能は実装できていません。
    phpのエラーはどこで見ればよろしいのでしょうか?
    https://utsuryu.com/study/phpstudy
    このページの通り、php.iniの設定を変更してエラーが表示されるようにしたのですが
    表示されない状態です。
    ご教授願えませんでしょうか?よろしくお願いいたします。

    キャンセル

  • t_obara

    2018/07/23 09:41

    別の質問になりますので別に投稿されてはいかがでしょうか。

    キャンセル

回答 2

checkベストアンサー

+1

ダブルクォーテーションとシングルクォーテーションが全角になっているようです。
自身のコードをコピペしたもので間違いないのでしたら、まずそこを直してください。
コード内に全角スペースがないか、などもご確認ください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

文字の全角・半角をきちんと区別できないとコードは書けません。

’ → '  11ヶ所
” → "   9ヶ所
“ → "   3ヶ所


で置換した上に、

$sql = "select id from `member` where is_active='1′ and id!='$myNumber'";
                                                  ↓
$sql = "select id from `member` where is_active='1' and id!='$myNumber'";


他にもあるかも?
あと、見易さのために字下げは考えてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/17 08:52

    頭の数行しか見てないけど
    is_active=1
    id!='$myNumber'←未定義
    じゃないですかねぇ。

    全体をちゃんとデバッグする必要がありそう。

    キャンセル

  • 2018/07/17 08:58

    御意。
    暑さでバテバテなうえに字下げが雑だとコードを読む気がしません。
    質問者はメモ帳でコードを書いていたら、せめてさくらエディタで等倍フォントで使ってください。

    キャンセル

  • 2018/07/17 09:38

    2行目で全角クォート出てきた時点で私は読む気なくしました(本来ならインデントは指摘するんですが、そこにもいかなかった)

    キャンセル

  • 2018/07/17 09:46

    日中の外出は命の危険を覚えるような日が続くと集中力も切れます。
    お近くのお店があったら、平日の17時以降に行かれては?
    https://mecicolle.gnavi.co.jp/report/detail/12222/

    キャンセル

  • 2018/07/17 09:58

    その記事を見た感じだと近くの「県」にはありましたが、私が住んでる県にはなさそうです。残念。
    まあ、この季節、ビアガーデン行こうかって話もチラホラ出てますし、そこらに便乗しますかねw

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21364questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • SQL

    2558questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。