PHP文件如何从CSS执行

kyvafyod  于 2023-06-25  发布在  PHP
关注(0)|答案(1)|浏览(101)

我有一个简单问题:我目前正在为我的网站制作验证码验证表单,我遵循了tutorial,在那里我看到要生成验证码格式的图像,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);

?>

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

4nkexdtk

4nkexdtk1#

是的,如果你在CSS中的background规则中放置一个URL,它会导致浏览器向该URL发送一个HTTP请求-你可以在浏览器的开发人员工具中的网络工具中看到它。
在这种情况下,这意味着web服务器将执行在该URL的文件中找到的php代码。
然后浏览器将尝试使用脚本输出的数据作为图像。
参考:https://developer.mozilla.org/en-US/docs/Web/CSS/background

相关问题