2017-07-30 63 views
0

ユーザーがログインできるデータベースを使用するiOSとAndroidアプリケーションを作成しました。私の場合、「User_active」は1に変更され、ログアウトは0に変更されます。ユーザーがアプリケーションを終了したかどうかを確認することができないか、終了したかどうかを確認することができないので、phpmyadminで30分後に "User_active"を0に変更するイベントを作成します物事を正しくする私はホストとしてAwardspaceを使用しており、localhostのチュートリアルしか見ていません。私が得ているエラーは、自分のユーザーアカウントにイベントを作成するための書き込み権限がなく、ユーザー権限を変更するためのユーザータブが見つからないということです。誰かが正しい方向に私を送ることができれば、それは偉大な、あるいはより良い解決策になるだろう。MySQLとPHPMyAdminイベントスケジューラ

+0

rootアカウントでログインしていますか? または mysqlのパスワードを「root」https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwordsにリセットしてからすべての特権をフラッシュし、すべての特権を許可するmysqlコマンド – LogicBlower

+0

私はログインしているかどうかわかりません。私はAwardspaceをホスティングに使用しています。あなたはあなたのデータベースにあなたを連れて行くためのボタンを持っていますので、私がログインしていることを知りません。あなたが提供したリンク私はエラー "アクセスが拒否されましたが、この操作のためにCREATE USER権限が必要です(少なくとも1つは必要です)"を使用しているときにphpmyadminにユーザタブがないので、特典スペース。 – Devon

答えて

0

phpMyAdminは素晴らしい対話型ツールですが、ではなくです。

いくつかの点で、これはかなり一般的な問題です。典型的なウェブベースのアプリケーションは、ユーザがいつ放置したかを知らず、ユーザがいつ何かをしたときだけ知る。 1つの方法は、以下を実行することです。

1 - ユーザーテーブル(「user_active」フィールドを持つ同じテーブル)にフィールドを追加して、そのユーザーの最後のアクティビティを任意のタイプで追跡します。これはDATETIMEまたはTIMESTAMPフィールドで、常に現在の時刻で更新されます。

2 - 彼らは(a)は、まだタイムスタンプが30分以上古いです(user_active = 1)にログインしているかどうかを確認するために、ユーザーテーブル内のすべてのレコードをチェックするcronジョブを追加します。その場合は、user_activeを0に設定します.30分後に強制的にログアウトします。ユーザーが開始したログアウトではなく、強制的な自動ログアウトであることを示すための追加フィールドが必要な場合があります。

あなたのホスティングサービスでcronjobが許可されている場合、定期的に(おそらく5分ごとに)これを実行すると、完了です。ホスティングサービスがcronジョブを許可しない場合、1つのオプションは、すべての通常のページの一部として「自動ユーザーログアウト」機能への呼び出しを追加することです。オーバヘッドが多すぎるため(そして各ページの表示に遅延があるため)、何千人ものアクティブユーザーがいる場合は動作しません。しかし、少数のアクティブユーザーがいる場合は、その作業を完了します - 私はその方法を使用してシステムハウスキーピングを十分に行っています。

+0

こんにちは@ manassehkatzあなたが言ったことはまさに私がやりたいことですが、私が持っている問題はあります。 phpmyadminから取得したエラーは「アクセスが拒否されました。この操作のためにCREATE USER権限が必要です(少なくとも1つは必要です)」。これをlocalhostで動作させることはできますが、この場合はWeb上に配置しますAwardspaceを使用してホストすると、すべてのユーザータブが表示されないため、適切な権限を与えることができません。これを修正する方法を知っていますか?助けてくれてありがとう – Devon

+0

@Devon CREATE USER権限は必要ありません。実際にはほとんどのホスティング会社は、コントロールパネル(つまり、通常のMySQLコマンドやphpMyAdminではなく)を除いてCREATE USER権限を与えません。 PHPプログラム経由でのCREATE TABLE、ALTER TABLE、INSERT、DELETE、SELECTなどのmysqlコマンドは、phpMyAdminにログインするために使用する、割り当てられたMySQLユーザー名/パスワードを持っていなければなりません。 – manassehkatz

+0

あなたが言っているのは、非ローカルホストのイベントを作成できないということです。phpmyadmin – Devon

関連する問題