这个问题已经解决了——见下文!
我偶然发现了这个问题......我的 HTML 表单的开头和结尾:
<form name="personform" id="personform" action="testperson.php" method="post" target="_blank">
<input type="hidden" id="formPmall" name = "formPmall" value = "">
<input type="hidden" id="formPCSEsiteHeading" name = "formPCSEsiteHeading" value = "">
<input type="hidden" id="formPCSEsiteHeadingText" name = "formPCSEsiteHeadingText" value = "">
<input type="hidden" id="formPCSEsiteHeadingShadow" name = "formPCSEsiteHeadingShadow" value = "">
<!-- skipping to end of form -->
<input type="hidden" id="formPok" name = "formPok" value = "">
</form>
这是我用来设置值并提交表单的函数:
function testaPerson() {
document.getElementById("formPmall").value = vilkenMall;
document.getElementById("formPCSEsiteHeading").value = fAktuellSajtrubrik;
document.getElementById("formPCSEsiteHeadingText").value = CSEsiteHeadingText;
document.getElementById("formPCSEsiteHeadingShadow").value = CSEsiteHeadingShadow;
/* Skipping to end of function */
document.getElementById("formPok").value = "ok";
// SUBMIT
document.getElementById("personform").submit();
}
该函数可以正常工作,因为我可以在提交之前放置一个像这样的 JS alert():
alert("PM = *"+document.getElementById("formPmall").value+"*");
我得到了正确的答案(“ 4 ”不是“**”为空)。这适用于每个表单输入。
表格到达“testperson.php”:
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
if (!isset($_POST['formPok'])) header('Location: ../index.php');
// Init variables
$mall = 0;
$CSEsiteHeading = "#FF00FF";
$CSEsiteHeadingText = "";
$CSEsiteHeadingShadow = "";
// Skipping 60+ variable inits
// Read the form
$mall = $_POST['formPmall'];
$CSEsiteHeading = $_POST['formPCSEsiteHeading'];
$CSEsiteHeadingText = $_POST['formPCSEsiteHeadingText'];
$CSEsiteHeadingShadow = $_POST['formPCSEsiteHeadingShadow'];
// Skipping the rest...
索引 ['formPok'] 已设置,因为我没有转到“index.php”。
变量具有值,因为我可以放置 PHP die(); 在他们之后是这样的:
die("PM = *".$mall."*");
我得到了正确的答案(“ 4 ” - 不是“ 0 ”作为初始化或“**”为空)这对每个 PHP 变量都适用。
最后一页也显示正常。
但!我在 php_error.log 中得到了这个:
[29-Oct-2013 13:30:01 UTC] PHP Notice: Undefined index: formPmall in /Applications/MAMP/htdocs/tngcse/template4/testperson.php on line 27
[29-Oct-2013 13:30:01 UTC] PHP Notice: Undefined index: formPCSEsiteHeading in /Applications/MAMP/htdocs/tngcse/template4/testperson.php on line 29
[29-Oct-2013 13:30:01 UTC] PHP Notice: Undefined index: formPCSEsiteHeadingText in /Applications/MAMP/htdocs/tngcse/template4/testperson.php on line 30
[29-Oct-2013 13:30:01 UTC] PHP Notice: Undefined index: formPCSEsiteHeadingShadow in /Applications/MAMP/htdocs/tngcse/template4/testperson.php on line 31
对于每一个发布的价值!每次都超过60!并且页面被反复打开。
更多事实: * HTML 表单和 JS 函数是两个包含。* PHP 变量 inits 和表单读取是两个包含(我在此测试页面中编辑的)
- 我有四个页面,其中包括根本没有任何 PHP 通知的作品!
- 还有三个,其中所有 60 多个表单输入都是“未定义”...
在我解决这个问题之前,我还有四页要做,不想继续。我不知道这里出了什么问题,需要你能想到的任何想法。EXCEPT抑制PHP Notices...(这里有错误需要正确处理)
提前谢谢你,Ava T。
为清楚起见添加:通过 PHP 页面并显示在最后一页上的值是:
formPmall: 4 (PHP init = 0)
formPCSEsiteHeading: #FF0000 (PHP init = #FF00FF)
formPCSEsiteHeadingText: "My Family" (PHP init = "")
formPCSEsiteHeadingShadow: "2px 2px 4px #000000" (PHP init = "")
一切都被初始化,一切都得到了新的价值。但它出于某种原因填充了错误日志。为什么?
我不允许回答我自己的问题(8 小时限制),所以我在这里编辑:
问题已经解决了!
并且解决方案比通知更奇怪(对我来说)。这就是我所做的:
我拿走了所有代码并逐段添加 PHP 脚本,并为每一段运行一次。一切都很好:PHP 代码本身没有生成任何通知。因此,我添加了包含两个 css 的 HTML 头:一个是通用的,一个是修改其中一些通用的。
没有通知:一切都很好,所以我一块一块地添加了 HTML,发现当在 HTML 中引用时,一个类是“罪魁祸首”!
类是这样声明的(修改一个通用的:不同的颜色和没有背景图像)
.line {
color: #FF0000;
background-image: url('');
}
解决方案是像这样声明它(完全正确-不是草率的剪切-粘贴):
.line {
color: #FF0000;
background-image: none;
}
每一条通知(发布到此页面的每个值都有一个通知 - 60+)都消失了!
请注意,直到它在 HTML 中被引用,PHP 通知才出现!
<td class="line">This is my line</td>
我希望这可以帮助其他人,因为我发现了很多关于 PHP 通知的帖子,唯一的解决方案是关闭通知。没有一个真正的解决方案。
感谢所有花时间阅读和回复的人!
艾娃