我有一个简单问题:我目前正在为我的网站制作验证码验证表单,我遵循了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自己调用相关的函数吗?
1条答案
按热度按时间4nkexdtk1#
是的,如果你在CSS中的
background
规则中放置一个URL,它会导致浏览器向该URL发送一个HTTP请求-你可以在浏览器的开发人员工具中的网络工具中看到它。在这种情况下,这意味着web服务器将执行在该URL的文件中找到的php代码。
然后浏览器将尝试使用脚本输出的数据作为图像。
参考:https://developer.mozilla.org/en-US/docs/Web/CSS/background