PHP文件如何从CSS执行

How PHP file gets executed from CSS

提问人:Andy McRae 提问时间:6/22/2023 更新时间:6/22/2023 访问量:40

问:

我有一个简单的问题: 我目前正在为我的网站制作验证码验证表单,我遵循了一个教程,我看到要生成验证码格式的图像,style.css 调用了如下所示的 php 文件:

.captcha-input {
    background: #FFF url(./../../captchaImageSource.php) repeat-y left center;
    padding-left: 80px;
}

当我查看captchaImageSource.php文件时,我看到了这一点

<?php
namespace MyNameSpace;
use MyNameSpace\Captcha;

session_start();

include("./Model/Captcha.php");
$captcha = new Captcha();

$captcha_code = $captcha->getCaptchaCode(6);

$captcha->setSession('captcha_code', $captcha_code);

$imageData = $captcha->createCaptchaImage($captcha_code);

$captcha->renderCaptchaImage($imageData);

?>

验证码 .php 文件具有相关的验证功能,如 etc。 所以我看到 php 文件会生成验证码的图像,但我不明白为什么它甚至会被执行。CSS 会触发 php 文件吗?然后php会自己调用相关函数吗?createcaptchaImage

php css 命名空间 验证码

评论


答:

4赞 ADyson 6/22/2023 #1

是的,如果您在 CSS 的规则中放置一个 URL,它会导致浏览器向该 URL 发送 HTTP 请求 - 您可以在浏览器的开发人员工具的网络工具中看到它。background

在这种情况下,这意味着 Web 服务器将执行该 URL 文件中的 php 代码。

然后,浏览器将尝试将脚本输出的数据用作图像。

编号: https://developer.mozilla.org/en-US/docs/Web/CSS/background

评论

0赞 Andy McRae 6/22/2023
谢谢。好的,我明白这个想法。当我更改其名称时,我在开发人员工具中看到了一个失败的 GET 请求。所以我想就是这样