如何使用 URL 中的特定字符串在 PHP 中显示消息?
How to display message in PHP using certain string in the URL?
我有 WHMCS 设置,我正在尝试制作一个消息气泡,当有人使用特定 link 访问它时会显示该消息气泡。
就像有人访问此 link 一样,他们会看到正常页面 - https://example.com/billing/clientarea.php?action=details
但是如果有人访问https://example.com/billing/clientarea.php?action=details&status=incomplete
他们会收到一条消息。
我已经设置了消息,它显示在默认 link 上。但是不知道怎么设置才2号link?我正在使用 WHMCS。
谁能指导我?
消息气泡代码。
<div class="alert alert-danger">
<strong>The following errors occurred:</strong>
<ul>
<li>Please enter your address and click on save to proceed. Once Saved, then only you will be able to access the client area.</li>
</ul>
</div>
编辑:已添加解决方案
非常感谢您的帮助@symlink,您的方法适用于 PHP,但对于 WHMCS/smarty php,它需要其他代码,非常简单代码也是,大声笑。
{if $smarty.get.status eq incomplete}
{include file="$template/includes/alert.tpl" type="info" msg="Please fill the form to continue with our services."}
{else}
{/if}
如果 $GET
参数存在,在消息 div 中添加一个 class 使其出现:
PHP/HTML
<?php
$class = "";
if(isset($GET["status"]) && $GET["status"] === "incomplete"){
$class = "show";
}
?>
<div class="alert alert-danger <?php echo $class ?>">
<strong>The following errors occurred:</strong>
<ul>
<li>Please enter your address and click on save to proceed. Once Saved,
then only you will be able to access the client area.</li>
</ul>
</div>
CSS
.alert.alert-danger{
display: none;
}
.alert.alert-danger.show{
display: block;
}
如果您编辑模板,则很难使您的 WHMCS 保持最新。我建议使用钩子输出一些 JS 以将适当的警报注入您的页面。
也许是 ClientAreaFooterOutput 挂钩点? https://developers.whmcs.com/hooks-reference/output/#clientareafooteroutput
类似于:
<?php
add_hook('ClientAreaFooterOutput', 1, function($vars) {
$status = App::getFromRequest('status'); //This is handy and sanitised
return <<<HTML
jQuery(document).on('ready', function() {
if ('{$status}' == 'incomplete') {
//Add your code here to output the alert where you wish
}
});
HTML;
});
我有 WHMCS 设置,我正在尝试制作一个消息气泡,当有人使用特定 link 访问它时会显示该消息气泡。
就像有人访问此 link 一样,他们会看到正常页面 - https://example.com/billing/clientarea.php?action=details
但是如果有人访问https://example.com/billing/clientarea.php?action=details&status=incomplete
他们会收到一条消息。
我已经设置了消息,它显示在默认 link 上。但是不知道怎么设置才2号link?我正在使用 WHMCS。
谁能指导我?
消息气泡代码。
<div class="alert alert-danger">
<strong>The following errors occurred:</strong>
<ul>
<li>Please enter your address and click on save to proceed. Once Saved, then only you will be able to access the client area.</li>
</ul>
</div>
编辑:已添加解决方案
非常感谢您的帮助@symlink,您的方法适用于 PHP,但对于 WHMCS/smarty php,它需要其他代码,非常简单代码也是,大声笑。
{if $smarty.get.status eq incomplete}
{include file="$template/includes/alert.tpl" type="info" msg="Please fill the form to continue with our services."}
{else}
{/if}
如果 $GET
参数存在,在消息 div 中添加一个 class 使其出现:
PHP/HTML
<?php
$class = "";
if(isset($GET["status"]) && $GET["status"] === "incomplete"){
$class = "show";
}
?>
<div class="alert alert-danger <?php echo $class ?>">
<strong>The following errors occurred:</strong>
<ul>
<li>Please enter your address and click on save to proceed. Once Saved,
then only you will be able to access the client area.</li>
</ul>
</div>
CSS
.alert.alert-danger{
display: none;
}
.alert.alert-danger.show{
display: block;
}
如果您编辑模板,则很难使您的 WHMCS 保持最新。我建议使用钩子输出一些 JS 以将适当的警报注入您的页面。
也许是 ClientAreaFooterOutput 挂钩点? https://developers.whmcs.com/hooks-reference/output/#clientareafooteroutput
类似于:
<?php
add_hook('ClientAreaFooterOutput', 1, function($vars) {
$status = App::getFromRequest('status'); //This is handy and sanitised
return <<<HTML
jQuery(document).on('ready', function() {
if ('{$status}' == 'incomplete') {
//Add your code here to output the alert where you wish
}
});
HTML;
});