对不起,如果这已被回答某处;我不太确定如何解决问题甚至寻求帮助。防止发布空表单输入数组?
无论如何,我有一个带有三个文本输入框的表单,其中用户将输入三首歌曲标题。我设置了简单的PHP来将这些输入框作为一个数组处理(因为我将来可能需要将来会有100首歌曲),并将歌曲标题写入另一个文档。
<form method="post">
<input type="text" name="songs[]" value="" />
<input type="text" name="songs[]" value="" />
<input type="text" name="songs[]" value="" />
<button type="submit" name="submit" value="submit">Submit</button>
</form>
<?php
if (isset($_POST['submit'])) {
$open = fopen("test.html", "w");
if(empty($_POST['songs'])) { }
else {
$songs = $_POST['songs'];
foreach($songs as $song) {
fwrite($open, $song."<br />");
};
};
};
?>
这会正确地将歌曲标题写入外部文件。但是,即使输入框为空,外部文件仍然会被写入(仅限<br />
)。我假设if
声明将确保如果箱子是空白的,就不会发生任何事情,但显然不是这样。
我猜这个数组并不像我想的那样真的是空的,但我不确定会带来什么样的影响。任何想法我做错了什么?
(再次,我无言以对,当涉及到PHP,所以请原谅我,如果这之前已经无数次回答,如果我可怕的描述的那样,等)
哦,就这么简单,哈哈。谢谢! – user355295 2010-06-01 11:16:24
我个人不会使用empty(),因为它是如此宽容,当它指定它为空的值时:例如,一个“0”字符串将通过empty()被评估为true--它不可能是歌曲标题将自己为“0”,但因为它可能会发生,所以我会考虑使用更简单的if(trim($ song)!=='')条件。 – 2010-06-01 11:23:00
好点,谢谢! – user355295 2010-06-01 11:25:42