php + mysqlで会員制の携帯サイトを作成する方法

このQ&Aのポイント
  • 映画情報サイト(携帯サイト)を運営している場合、php + mysqlを使用して会員制の機能を追加することができます。
  • ユーザーが気に入った映画をブックマークし、自分だけのマイリストを作成できるような機能を実装することができます。
  • 会員制にすることで、ユーザーの情報を管理し、ブックマーク機能を提供することができます。
回答を見る
  • ベストアンサー

php + mysqlの携帯サイトを会員制にしたい

php + mysql で映画情報サイト(携帯サイト)を運営しています。 映画のタイトル、あらすじ、ジャンル、出演者などの情報をDBに保持しています。 好みの映画をユーザーがブックマークしておけるような機能を追加したいのですが、どのようにしたらいいのか悩んでいます。 イメージとしては、 1.映画のタイトル横にブックマークボタンを追加 2.ユーザーは気に入った映画のブックマークボタンをクリックして自分だけのマイリストを作成 このような機能をサイトに追加したいと思っています。 会員制にしないと無理だと思うのですが、その点も含めた参考になるようなサイト、あるいはその方法を教えていただけませんでしょうか。

  • nec90
  • お礼率70% (17/24)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • go5miro
  • ベストアンサー率75% (3/4)
回答No.1

はじめまして。 早速ですが、回答させていただきます。 まず、会員制にする方法ですが、いくつか方法があると思います。 1.個々にユーザーIDとパスワードを使い判定する方法。 2.携帯サイトと言う事ですので、端末ID(UID)を取得し、判断する方法が あります。 (参考URLにUIDの取得方法が載っています) 実際に処理をする為には、「ユーザーテーブル」を作り、 ID・パスワードなどを保持します。 次に、ブックマーク機能を作る場合は、 上記「ユーザーテーブル」の"ID"にひもずける形で、 「ブックマークテーブル」にIDと、映画のIDを保持します。 PHP側では、保存したデータを引っ張り出して、表示します。 と言った感じでどうでしょうか。。。 参考になりそうなURL張っておきます。 会員システムの作成方法を細かく記載してあります。 まぁ、ご参考まで。

参考URL:
http://www.limy.org/program/mobile/uid.html,http://blog.nextbird.com/?p=22
nec90
質問者

お礼

go5miroさんに教えて頂いた方法で試している最中ですが、他に聞きたい点が出てきてしまったので、一旦こちらは閉じさせて頂くことにしました。どうもありがとうございました。

nec90
質問者

補足

go5miroさん。どうもありがとうございます。 リンク先を拝見してイメージが固まってきましたが、ログイン後の会員・非会員のサイト閲覧はどのように処理したらいいのか分かりません。 ログイン完了のユーザーには追加ボタンが表示され、未ログインのユーザーにはいままで通り追加ボタンがない表示にしたいのですが、その処理は既存のphpファイルのソース先頭に何か追加しないとダメですよね?重ねての質問で恐縮ですが参考になるサイトがありましたら教えて頂けると幸いです。 また、ログイン情報を保持したまま、ページを移動する際の注意点などありましたらそちらもお願い致します。

関連するQ&A

  • PHPでMySQLのユーザを追加したい。

    表題の件で頭を悩ませています。 Web上のフォームで入力したユーザ名を、 そのままMySQLのユーザ名として登録できるような物を作りたいのですが、 PHPにはMySQLのユーザを追加できるような関数はありません。 phpMyadminのように管理者がユーザを追加するのではなく、 一般の人間が希望のユーザ名をフォームに入力して「追加」などのボタンを押すと、 その名前をMySQLのユーザ名として登録したいのです。 何か良い方法は無いでしょうか? お知恵をお貸し下さい。

    • ベストアンサー
    • PHP
  • PHPからMySQLにアクセスする方法について、

    PHPからMySQLにアクセスする方法について、 自分のとっている方法が正しいか分かりません。 現在、以下のような状態です <<< index.phpの中身(概要) >>> (1)DBのコネクト    mysql_connect("localhost", "mysql_user", "mysql_password");    mysql_select_db("mydb"); (2)DBへのアクセス    $result=mysql_query("SELECT id, name FROM mytable");    $row=mysql_fetch_array($result, MYSQL_NUM); (3)クエリーのクローズ    mysql_free_result($result); (4)exit; 公式サイトのサンプルをそのまま流用したような形なのですが、 これだとindex.phpが呼び出されるたびにDBをコネクトし直します。 現在、数万レコード単位のテーブルの読み込みが頻発するシステムを開発しています。 取得したいデータの容量自体は大きなものではなく、SELECT文も高速に動作するように WHERE文等気を使っていますが、後々のことを考えると心配になりました。 できればページが飛んでもDBの接続が保持されるようにしたいのですが 可能なのでしょうか。 また、それによってアクセスの高速化は望めるのでしょうか。 ご存知の方、お手数ですがご教授お願いいたします。

    • ベストアンサー
    • PHP
  • PHPとMySQLを使ったフォームを作っていますが、うまくできないこと

    PHPとMySQLを使ったフォームを作っていますが、うまくできないことがあり書き込みさせていただきます。 わかる方、ご助力願えれば幸いです。 フォームから、送信されたデータを受け取って、MySQLに登録する際に、フォーム内に空欄があると、うまくMySQLのデータベースに追加ができなかったり、変更ができなかったりします。 コードを簡単に書くと… <?php //フォームからデータを取得 $name = $_POST['name']; $address = $_POST['address']; $age = $_POST['age']; //データベース接続処理 $db = mysql_connect("localhost","user","password"); mysql_select_db("db_name",$db); $rs = mysql_query("select * from tablename order by my_id desc",$db); //データベースへの登録 $rs = mysql_query("INSERT INTO tablename(name,address,age)VALUES('$name','$address','$age')",$db); ?> このような感じになります。 フォームには、名前、住所、年齢を入力しているわけですが、年齢が必須でないため、空欄として送られてくることもあります。 年齢に数値が入っている場合は、うまく登録されますが、空欄であった場合、特にエラーが出るわけでもなく、単に「登録されない」という状況がおきます。 データベースのテーブルのフィールドでは、ageは int(11)でNULLはYes、defaultはNULLになっております。 自分なりに調べてみたつもりですが、知りたい情報に出合うことができませんでした。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPとMySQLについて

    PHPとMySQLについて PHP、MySQLともに初心者の者です。 ネットの情報を参考に以下のようなプログラムを作成しました。 <?php //ファイルを読み込み require_once("DB47.php"); // クエリを送信する $sql = "SELECT * FROM japanDB ORDER BY PREF_CD"; $result = executeQuery($sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); //表示するデータを作成 if($rows){ while($row = mysql_fetch_array($result)) { $tempHtml .= "".$row["PREF_CD"]." ".$row["PREF_NAME"]." "; $tempHtml .= "\n"; } $msg = $rows."件のデータがあります。\n\n"; }else{ $msg = "データがありません。\n\n"; } //結果保持用メモリを開放する mysql_free_result($result); ?> <?= $msg ?> <?= $tempHtml ?> これはデータベースに 1、北海道 2、青森 ・  ・ ・  ・ ・  ・ 47、沖縄 といった情報を与えており、PHP側でMySQLに接続し、その内容をコマンドプロンプト上で表示するといったものです。 しかし、PHPプログラムを実行してしまうと、全データが一気に表示されてしまうので、見づらいものとなっています。 そこで、地名や番号を入力すれば、地名を表示するような検索機能を付けたいのですが、PHPからMySQLデータベース内を検索する方法が分かりません。検索機能をこのプログラムに組み込みたいのですが・・・。 どなたかご教授お願いいたします。 ***環境*** OS : Windows XP Pro PHP4.2.3 、MySQLインストール済み **********

    • ベストアンサー
    • PHP
  • mysql 権限設定

    ラピッドサイトのmysqlを利用しています。 javaからのリモート接続を試していますが繋がらなかったので原因をつめていったところ DB:mysqlのTABLE:userに権限を接続する必要がある?事がわかりました。 ただmysqlにrootの権限で接続してshowを行ってもDB:mysqlは存在しません。 後考えられることはrootの情報がuserテーブルに入っていないくらいしか思いつきません どなたかご解答おねがいします。

  • PHP+MySQLのショッピングカートについて

    PHP+MySQLのショッピングカートについて 宜しくお願いします。 PHP4.4.1+MySQL4.1.15でショッピングサイトを構築しております。 このサイトはPCと携帯に対応させるように構築しております。 携帯でも購入出来る様にする為に、カートはCOOKIEでは無く、SESSIONに依存しております。 ユーザが商品を選択すると、SESSIONに商品IDや、ユーザの選択した内容が格納されます。 複数の商品ID、選択内容を格納させる為に多次元配列にて格納しております。 買い物が終わり決算する時に、個人情報を入力し、確認ページ表示後にMySQLのDBに個人情報と選択項目をそれぞれinsertしていきます。 商品情報については、カートに入れた商品数分を繰り返し処理を行い、1レコードずつinsertしていきます。 MySQLのDBに書き込み後、自動返信にてメールを店舗とユーザに送信しています。 この様なシステムで、問題が発生しております。 決算後、個人情報、商品情報が欠落している場合があります。DBにも自動返信メールにも明記されず、スッポリ無くなっているのです。 それも、全データではなく、個人情報の電話番号だけとか、商品情報の選択項目の1つだけといった具合です。 毎回ではなく、ときどき現れます。 これはプログラムの問題なのでしょうか?それとも、サーバの処理能力の問題で、同時アクセス時に起きている現象なのでしょうか? 私の環境下では何度テストしても現象が現れない為に、原因が分からず悩んでおります。

    • ベストアンサー
    • PHP
  • PHP+MySQLでデータ登録がうまくいかない

    いつもお世話になっています。 早速質問です。 ユーザ登録フォームの作成をしています。 Select文を使って2重登録の確認後、DBに登録するのですが 2重登録はちゃんと機能しているのに、登録が出来ません。 どのようにしたらいいか、アドバイスいただけますか? お手数ですが、よろしくお願いします。 mysql_query("lock tables user_data write"); $sql = "select USER from user_data where USER = '" . $_POST["USER"] . "'"; $res = mysql_query($sql); if (mysql_num_rows($res) > 0) { echo "すでに登録済みです。"; mysql_query("unlock tables"); mysql_close($con); exit; } $sql = "insert into user_data(USER, pass) values ('" . $_POST["USER"] . "','" . $_POST["pass"] . "');"; mysql_query($sql); mysql_query("unlock tables"); mysql_close($con);

    • ベストアンサー
    • MySQL
  • phpでmysqlのデータがupdateできません。

    仕様Apache2.0 PHP5.1.6 MySQL5.0.27 です。 以下の通りです。どこがだめですか? <FORM method="POST" action="order_regist.php"> <INPUT type="hidden" name="id" value="<?=$id?>"> <INPUT type="hidden" name="order_day" value="<?=$order_day?>"> <INPUT type="hidden" name="order" value="依頼あり"> <INPUT type="submit" value="同意して作業を依頼"> </FORM> 上記を次ページへ送信 以下次ページ /* MySQL DB接続情報の設定 DB名/ユーザー名/パスワード */ define("DB_NAME", "*****"); define("DB_USER", "*****"); define("DB_PASS", "*****"); /* リクエストデータの取得 */ $id = $_REQUEST["id"]; $order_day = $_REQUEST["order_day"]; $order = $_REQUEST["order"]; /* MySQLに接続 */ $link = mysql_connect("localhost", DB_USER, DB_PASS) or die("MySQLとの接続に失敗しました。"); /* 接続データベースを選択 */ mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。"); /* クライアントのキャラクタセットを変更 */ mysql_query("SET NAMES ujis") or die( "クエリーの実行に失敗しました" ); /* データを更新するクエリーを設定 */ $query = "UPDATE all_cleaning_user SET order = '" . $order . "', order_day = '" . $order_day . "' WHERE id = " . $id; /* データベースにクエリーを実行 */ mysql_query($query) or die("クエリーを実行できませんでした。"); /* MySQLより切断 */ mysql_close($link); クエリーを実行できませんでしたのエラーが出ます。なぜですか?

    • ベストアンサー
    • PHP
  • 携帯サイトの画像アップロード[PHP+MySQL]

    携帯サイトの会員マイページで 個人の画像をアップできる仕様を制作したいのですが (ブログやsnsサイトによくある、アバターの代わりに  画像をアップできる仕様です) どうしてもDBの更新・画像のアップロード、双方ができず 困り果てております。 ※メールエラーログをみてみたところ、  メールをトリガーとしてプログラム自体は動作していた  ものの、処理が途中でストップされておりました。 具体的には、下記のような仕様を考えています。 (1)アップしたい画像を添付して携帯メールを送信 (2)メールをトリガーとして画像アップロード&DB更新  プログラム起動 ~以下プログラムの中身の動作~ (3)届いたメールアドレス(拡張メールアドレス)から会員ID情報を  取得 (4)会員情報テーブル(sns_user)にマッチする会員IDの列の  image_pathの項目にアップロードした画像のパスが  更新される。  PHP+MySQLで制作中です。  「update テーブル名 set where 条件~」で調べてみたものの、  どうしても分からず質問させていただきました。  どなたかお分かりになられる方がいらっしゃいましたら  ご教授いただけませんでしょうか。 以下ソース内容 // ユーザー&認証コードチェック if ($user&&$auth_code==getAuthCode($user['id'], $user['auth_string'])) { // 認証OK // マルチパートの場合のみメールを解析して画像を取得 if (strtolower($structure->ctype_primary) == "multipart") { $images = getImage($structure->parts); } $image_save_path = null; // 画像リストの中から1つだけ画像を取得する foreach ($images as $image) { // コンテンツタイプのチェック if ($image['type'] == 'image/jpeg' || $image['type'] == 'image/gif' || $image['type'] == 'image/png') { // ファイルとして保存 // 一時ファイルパス $temp_path = tempnam('/tmp', 'img_'); if ($temp_path == false) { // error break; } $fp = fopen($temp_path, 'w'); if ($fp == false) { // error break; } fwrite($fp, $image['body']); fclose($fp); // 画像の形式と縦横サイズを取得 list($width, $height, $type) = getimagesize($temp_path); // 認識できる形式であれば、所定のメソッドで開く $ext = ".jpg"; $imageSource = null; if ($type == IMAGETYPE_GIF) { $imageSource = imagecreatefromgif($temp_path); $ext = ".gif"; } else if ($type == IMAGETYPE_JPEG) { $imageSource = imagecreatefromjpeg($temp_path); } else if ($type == IMAGETYPE_PNG) { $imageSource = imagecreatefrompng($temp_path); $ext = ".png"; } // 一時ファイルを消す unlink($temp_path); if ($imageSource) { // ファイル名決定 $path = tempnam($image_dir, ''); $image_save_path = $path . $ext; // 画像をケータイディレクトリへファイル保存 imagejpeg($imageSource, $image_save_path); imagedestroy($imageSource); break; } } } if ($image_save_path) { // 差出人取得 $from = getFrom($structure->headers['from']); $params = array(); $params[] = $user['id']; $params[] = $image_save_path; // データベースへ接続する // if ($db = connectDB($db_user, $db_pass, $db_name, $db_host, true)) { $sql = "update sns_users set image_path = '$image_save_path' where id = '" . mysql_real_escape_string( $_SESSION['id'] ) . "'"; execQuery($db, $query, $params); } } $query = "select * from sns_users where id = ''"; $result = mysql_query( $query ); $user = mysql_fetch_array( $result ); // データベースを閉じる closeDB($db); } ?>

    • 締切済み
    • PHP
  • phpによるデータベース操作について(MySQL)

    http://www.yc.tcu.ac.jp/~yamada/doc/mysql/win/0602.html のサイトを参考に以下のような「データベースの内容を表示させる」プログラムを書いたのですが、うまく表示されません。(webブラウザで確認したところまっさらなページで何も表示されません) ちなみに、私はレンタルサーバを借りており、その中で作成したデータベースにphpMyAdminにてテーブルやカラムの作成を行いました。以下のプログラムは「db_sample.php」という名前で保存(エンコード:utf-8)し、レンタルサーバーの公開しているフォルダ「httpdocs」にffftpにてアップロードしています。バージョンは、phpMyAdmin2.11.11.3と、php4.1?(最新の5.2よりひとつ前のもの) ここでは仮に ホスト名:aaa.com (←これは独自に作成したドメイン名でいいのかな?) ユーザー名:user パスワード:pass データベース名:db テーブル名:person とします。 ----------以下プログラム------------ <!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" /> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title></title> </head> <body> <?php //データベースサーバ名の設定 $db_host = "aaa.com"; //ユーザ名の設定 $db_user = "user"; //パスワードの設定 $db_passwd = "pass"; //データベースサーバへの接続 $db = mysql_connect($db_host,$db_user,$db_passwd); //データベース名の設定 $db_name = "db"; //データベースの選択 mysql_select_db($db_name,$db); //SQL文の設定 $str_sql = "select * from person"; //SQL文の実行 $rs = mysql_query($str_sql,$db); //結果セット内の各レコードを順次参照し、連想配列に代入 while($arr_item = mysql_fetch_assoc($rs)) { //レコード内の各フィールド名と値を順次参照 foreach($arr_item as $key => $value) { //フィールド名と値を表示 print "[{$key}] = {$value}<br>\n"; } print "<br>\n"; } //データベースサーバへの接続の切断 mysql_close($db); ?> </body> </html> ------------------------------------------ わかる方いらっしゃいましたらご教授願います。

専門家に質問してみよう