我有一个简单的表格,像这样;
<div class="formholder">
<form action="column1.php" method="post">
<input type="text" placeholder="URL:" name="url" required=""><br>
<input type="text" placeholder="Job Title:" name="title" required=""><br>
<input type="text" placeholder="Job Site & Additional Details" name="details"><br>
<br>
<input type="submit"><br>
</form>
</div>
然后,该表单由包含以下PHP的column1.php
处理;
<?php
$url = $_POST["url"];
$title = $_POST["title"];
$details = $_POST ["details"];
$timestamp =date('l jS \of F Y h:i:s A');
$text = "<a href='{$url}'>{$title}</a><br><br> ".($details)." <br> At: {$timestamp} <br><br><hr><br> \n";
$file = fopen("./data/column1.html","a+ \n");
fwrite($file, $text);
fclose($file);
?>
然后在页面上,我要显示我使用的提交内容;
<p class="linktext"><?php echo file_get_contents("./data/column1.html"); ?></p>
我的linktext
类的CSS是这个;
.linktext {
font-family: 'Roboto', serif;
font-size: 1vw;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
color: #FFFFFF;
padding-left: 2vh;
padding-right: 2vh;
padding-bottom: 0.5vh;
line-height: 1em;
}
@media only screen and (max-width: 500px) {
.linktext {
font-family: 'Roboto', serif;
font-size: 4vw;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
color: #FFFFFF;
padding-left: 1vh;
padding-right: 1vh;
padding-bottom: 0.5vh;
line-height: 1em;
}
}
由于某种原因,回显对于第一个结果工作正常,但是一旦发送第二个提交,它将无法正确显示。
两次提交后,包含响应的文件如下所示:
<a href='URL'>Job Title 1</a><br><br> Job Details <br> At: Thursday 30th of May 2019 10:33:47 PM <br><br><hr><br>
<a href='URL'>Job Title 2</a><br><br> Job Details <br> At: Thursday 30th of May 2019 10:34:00 PM <br><br><hr><br>
但是显示这个;
我不知道为什么在其他地方使用相同类型的表单后,它决定不起作用。
因为我被卡住了,对此我们将不胜感激。
答案 0 :(得分:0)
此代码部分的一些注释:
$file = fopen("./data/column1.html","a+ \n");
fwrite($file, $text);
fclose($file);
属性"a+ \n"
无效。请改用"a+"
。在这里,您只能写作。因此"a"
是完美的。
您没有像这样的错误管理
$file = fopen("./data/column1.html","a");
if (!$file)
{
// error handling
}
else
{
fwrite($file,$text);
fclose($file);
}
如果使用file_put_contents()
,代码将变得更短:
if ( file_put_contents( "./data/column1.html", $text, FILE_APPEND ) === false )
{
// error handling
}
答案 1 :(得分:0)
我知道了。而不是;
<p class="linktext"><?php echo file_get_contents("./data/column1.html"); ?></p>
我可以使用;
<div class="linktext"><?php echo file_get_contents("./data/column1.html"); ?></div>
它保留所有样式,并且将基于文本类的相同CSS来工作。