【发布时间】:2019-05-07 11:00:55
【问题描述】:
我正在尝试制作一个页面来验证用户,一旦他们通过验证,它应该会自动显示新内容。
我已经尝试过:
<?php if ($user[ 'verified']) echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$location.'">'; ?>
但问题在于,如果用户通过验证,网站会不断刷新。
<div class="notverified" <?php if ($user[ 'verified']) echo 'style="display:contents;"'; ?>>
<span>You are verified (example)</span>
</div>
我希望一旦用户在 db 中通过验证,新内容就会自动出现,或者一旦用户通过验证,网站会重新加载,但只会重新加载一次。
【问题讨论】:
-
我建议您使用 javascript-ajax 实现来实现这一点。制作一个 JS 函数来定期轮询数据库的状态,一旦收到新的更新,就从 JS 代码刷新/更新页面。 PHP 代码的作用是使用数据库中的适当数据响应来自 JS 函数的 ajax(HTTP 请求)调用。
-
@FaisalRahmanAvash 嗯,除了 ajax 还有其他解决方案吗?我们宁愿不使用 ajax 对我们的网站进行编码。
-
我唯一可以建议的另一件事是使用网络套接字/服务器推送。您可以查看 socket.io。虽然如果你想完全避开 JS,你几乎别无选择,只能使用 HTML 元刷新,因为当前的 Web 技术在客户端-服务器模型中工作。
-
@FaisalRahmanAvash 是的,我们使用 JavaScript。
-
如果你打算使用web sockets with PHP using Ratchet,你可以查看这个库