PHP-将选中的复选框写入文本文件
我想做的是将用户从复选框列表中选择的一组歌曲写入文本文件。歌曲列在一个文本文件中,然后打开该文件并将其值存储到一个数组中,该数组用于生成复选框列表。这就是我目前所拥有的PHP-将选中的复选框写入文本文件,php,checkbox,text-files,fwrite,Php,Checkbox,Text Files,Fwrite,我想做的是将用户从复选框列表中选择的一组歌曲写入文本文件。歌曲列在一个文本文件中,然后打开该文件并将其值存储到一个数组中,该数组用于生成复选框列表。这就是我目前所拥有的 <html> <h1>Welcome to Zmzon. Select songs below to add to your library.</h1> <?php var_dump($_POST); /*Write song selections to myLibrary.txt f
<html>
<h1>Welcome to Zmzon. Select songs below to add to your library.</h1>
<?php
var_dump($_POST);
/*Write song selections to myLibrary.txt file.*/
if(isset($_POST['songList'])){
$addSongs = $_POST['songList'];
$handle = fopen('myLibrary.txt', 'a');
foreach($addSongs as $song){
fwrite($handle, $song."\n");
}
fclose($handle);
}
?>
<form action="zmzon.php" method="POST">
<?php
/*Add contents of zmzonSongs.txt to array.*/
$songList = explode("\n", file_get_contents('zmzonSongs.txt'));
foreach($songList as $songs){
echo "<br/><input type='checkbox' name='songList[]' value='$songs' />$songs<br>";
}
?>
<input type="submit">
</form>
<a href="ztunes.php">To zTunes</a>
</html>
欢迎来到Zmzon。选择下面的歌曲添加到您的音乐库中。
在zmzon.php文件中执行以下操作
<?php
if(isset($_POST['songList'])){
$listOfSongs = $_POST['songList'];
$fp = fopen('myLibrary.txt', 'w');
foreach ($listOfSongs as $song) {
fwrite($fp, $song.'\n');
}
fclose($fp);
}
?>
上述过程用于接收歌曲列表并将其存储在文件“myLibrary.txt”中。
您可以在现有的zmzon.php文件中包含上述部分我不知道如何将用户从歌曲列表中检查的内容写入文本文件。列出的歌曲需要写入该文件(我们称之为myLibrary.txt),而不仅仅是复选框是否选中。您是否尝试过使用fwrite
??看,是的,但它不起作用。我在看一个视频,解释如何做到这一点,但由于不是所有的歌曲都会被检查,每首歌曲都是不同的,我不知道什么变量名去了哪里,我不知道我是否需要foreach语句。这就是我用的。此外,本视频主要关注用户文本输入,而不是复选框。请输入其余代码并修改您的问题,准确说明我们正在尝试解决的问题。我添加了不起作用的代码。我尝试了代码,页面再次显示(它甚至不会显示我原来拥有的复选框),但是我看了一下文本文件(myLibrary.txt),它是空的。@user3308219是否选中了任何复选框?添加行var_dump($_POST['songList'])
查看表单中发送的内容。HTML复选框是特定的-如果未选中,则不会发送任何值。我尝试选中所有可用的复选框,然后只选中几个。两次提交均未发生任何问题。@Banukobhan Nagendram您可能应该在foreach
循环中的每首歌曲标题后添加新行字符。此外,为了确保代码安全,还应过滤$\u POST
提供的输入。否则,myLibrary.txt
可能会被奇怪的数据填充,这可能会导致严重的安全问题。我试图将他的代码放在表单操作块之外,但这没有解决任何问题。我甚至不确定它是否需要进入那个街区。
<?php
if(isset($_POST['songList'])){
$listOfSongs = $_POST['songList'];
$fp = fopen('myLibrary.txt', 'w');
foreach ($listOfSongs as $song) {
fwrite($fp, $song.'\n');
}
fclose($fp);
}
?>