Php 当我登录Android应用程序时,我如何显示为在线?
我制作了一个应用程序,其中的场景如下: 用户可以注册,注册信息将被发送到PHP服务器并存储在MySQL数据库中。 这是我的PHP文件:Php 当我登录Android应用程序时,我如何显示为在线?,php,android,mysql,Php,Android,Mysql,我制作了一个应用程序,其中的场景如下: 用户可以注册,注册信息将被发送到PHP服务器并存储在MySQL数据库中。 这是我的PHP文件: <?php // Check if he wants to login: if (!empty($_POST[username])) { require_once("connect.php"); // Check if he has the right info. $query = mysql_query("SEL
<?php
// Check if he wants to login:
if (!empty($_POST[username]))
{
require_once("connect.php");
// Check if he has the right info.
$query = mysql_query("SELECT * FROM gen_users
WHERE username = '$_POST[username]'
AND password = '$_POST[password]'")
or die ("Error - Couldn't login user.");
$row = mysql_fetch_array($query)
or die ("Error - Couldn't login user.");
if (!empty($row[username])) // he got it.
{
echo "success";
exit();
}
else // bad info.
{
echo "comes in else part";
exit();
}
}
?>
尝试在用户表中添加一个关于登录状态的列(tinyint(1),因为它是MySQL表)。它将填充为0(表示已注销)或1(已登录)。登录时,需要在数据库中将该值设置为1,并在注销函数中设置回0。通过这种方式,您可以使用类似于以下内容的内容(假定使用用户对象):
除了@GlaciesofPacis answer,您还可以执行以下操作之一:
每隔一段时间向服务器发送一个请求,并检查谁在线或不在线
您可以使用一种客户机-服务器机制,这种机制更复杂,但效率更高,也更优雅,当某些客户机现在处于关闭或打开状态时,可以将服务器推送到所有在线客户机
我真的不知道你的应用程序应该做什么,但选项2——依我看——值得努力
链接:
你想达到什么目标?某种聊天客户端?你想实时更新谁在线或不在线?谢谢你的时间,实际上我想这样显示绿色图像谁在同一时间登录和红色图像谁不在同一时间使用我的应用程序。你需要它进行实时更新吗?我的意思是,如果你需要它在用户注销时从绿色变为红色,或者你需要它只在用户登录时更新是的,准确地说。当用户注销时,它将是绿色的。只是澄清一下,这是一个访问PHP站点的Android应用程序吗?谢谢。有关于它的教程吗?我建议你看看Asaf的答案,了解它的大部分实现。我的答案主要是关于如何将其设置到数据库中,然后如何使用列显示结果。是的,我的答案有助于实现它,但你的答案将有助于保持数据的最新状态(特别是在客户端随机断开连接、超时等情况下)你能给我任何例子的教程链接吗?我已经为套接字服务器添加了2个链接(我建议的第二个选项)。。我真诚地建议您使用JavaSocket服务器,因为java是一种功能强大得多的语言,特别是当您需要编写一个使用多处理的快速大型服务器时。虽然您可能希望在一开始就开始并尝试使用php服务器,因为它更容易理解。如果您需要更多帮助,请尽管询问
<?php
$users = getUsers();
foreach($users as $user)
{
$display = "";
if($user->isLoggedIn())
{
$display .= '<img src="green.png" alt="Logged In" />';
}
else
{
$display .= '<img src="red.png" alt="Logged Out" />';
}
$display .= $user->getUsername().'<br />';
echo $display;
}
?>
ALTER TABLE gen_users ADD COLUMN loggedin TINYINT(1) DEFAULT 0;