Bra*_*eal 7 html php w3c-validation
我的php文件上有一个常规表单,在提交之后它必须回显一条消息.通过在action =""中添加任何内容,我能想到显示消息的唯一方法是将其存储到会话中,并在页面加载时显示它(如果有会话集).
一切都工作得很好,但是w3c验证器说我有一个错误:
元素表单上属性操作的值不正确:必须为非空.
如何在不必将#或index.php放入操作字段的情况下修复此错误?
编辑:
<form action="" method="post">
<input type="email" name="email" placeholder="Enter your email">
<input type="submit" name="submit" value="SEND">
</form>
<?php
if(isset($_POST['submit']) && isset($_POST['email'])){
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
echo 'This isn\'t a valid email';
}else{
echo 'Great';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
在使用W3C验证器https://validator.w3.org/时,提供了以下内容:
第1行,第1列:无文件类型声明; 将进行解析而无需验证
无法确定文档类型,因为该文档没有正确的DOCTYPE声明.该文档看起来不像HTML,因此无法执行自动回退,并且仅根据基本标记语法检查文档.
了解如何从常见问题解答中将文档类型添加到文档中,或使用验证程序的文档类型选项根据特定文档类型验证文档.
解决方案:
您需要声明一个有效的doctype和<head><title>
标签,因为如果省略它也会产生错误.
然后action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"
像我在评论中所说的那样使用.
您的代码现在将使用以下代码进行验证:
<!DOCTYPE html>
<head>
<title>Test page</title>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<input type="email" name="email" placeholder="Enter your email">
<input type="submit" name="submit" value="SEND">
</form>
</body>
</html>
<?php
if(isset($_POST['submit']) && isset($_POST['email'])){
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
echo 'This isn\'t a valid email';
}else{
echo 'Great';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
使用action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"
在HTML源代码中生成以下/类似内容:
<form action="/folder/file.php" method="post">
虽然省略action=""
了W3验证器似乎发现无效并且正在为表单的操作寻找有效文件.
编辑:
根据新接受的答案(我的未被接受),请注意如果禁用Javascript,您的代码将无法正常运行.
这里是W3C HTML Checker(验证器)的维护者.如果您的目标只是让检查器不发出错误,那么一种方法是继续将HTML中#
的action
属性值作为HTML源中的值,然后使用JavaScript将其删除,如下所示:
<form action="#" method="post">
<script>document.querySelector("form").setAttribute("action", "")</script>
<input type="email" name="email" placeholder="Enter your email">
<input type="submit" name="submit" value="SEND">
</form>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7111 次 |
最近记录: |