曲名のドロップダウン リストがあるフォームがあります。曲のタイトルの 1 つをクリックすると、歌詞が同じページに読み込まれるようにしたいと考えています。歌詞は、「Lyrics」というフォルダー内の .txt ファイルに含まれています。
例:
ドロップダウン リストには次のものが含まれます: Song1 Song2 Song3 など。
ユーザーが曲をクリックすると、対応する .txt ファイルの内容が同じページに表示されます。何か案は?
曲名のドロップダウン リストがあるフォームがあります。曲のタイトルの 1 つをクリックすると、歌詞が同じページに読み込まれるようにしたいと考えています。歌詞は、「Lyrics」というフォルダー内の .txt ファイルに含まれています。
例:
ドロップダウン リストには次のものが含まれます: Song1 Song2 Song3 など。
ユーザーが曲をクリックすると、対応する .txt ファイルの内容が同じページに表示されます。何か案は?
JQuery を使用する方が簡単です。
<a href="somefile.txt" class="link">Song 1</a>
<pre id="lyrics">
</pre>
<script>
$(function(){
$('.link').click(function(){
$.get(this.href,null,function(lyrics){
$('#lyrics').html(lyrics);
return false;
});
});
});
</script>
曲のリストがあり、単純な命名規則を使用している場合は、それをホワイトリストとして使用して、使用を考える前に GET 値が許可されていることを確認します。
file_get_contents
$song = $_GET['song'] ; $file = '/歌詞/' . $song . '。TXT' ; $songs = array( 'help', 'she-loves-you', 'yellow-submarine' ); // ダブル チェックとして、ファイルも存在するかどうかを確認します if( in_array( $song, $songs ) && file_exists( $file ) ) { echo file_get_contents( $file ); }
頭が良ければ、同じ $songs 配列を再利用してドロップリストを作成することもできます。
<オプション値=イエローサブマリン>イエローサブマリン</オプション>
そして、これをデータベースに保存すると、「ナメクジ」「イエローサブマリン」が理想的な秘密鍵になると判断するかもしれませんが、それについては始めないでください...
<?php
$song = intval( $_GET[ 'song_id' ] );
$songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
echo file_get_contents( $songs[ $song ] . '.txt' );
?>
幸運を!
これは迅速な解決策ですが、非常に安全ではありません。例としてのみ使用してください。どのように行うことができますが、すべきではありません。
<?
// ここにページ コード // これは、歌詞を挿入する body です
file_get_contents($_GET['songName'].".txt")
// そうしないと..
?>
メニュー:
<a href="songs.php?songName=song1">song1</a>