Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-将选中的复选框写入文本文件_Php_Checkbox_Text Files_Fwrite - Fatal编程技术网

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);
}

?>