Question

J'ai un formulaire avec une liste déroulante de titres de chansons. Je veux pouvoir cliquer sur l’un des titres de la chanson et que les paroles soient chargées sur la même page. Les paroles sont contenues dans des fichiers .txt dans un dossier nommé & "Paroles &";.

.

Exemple:

La liste déroulante contient: Chanson1 Song2 Song3 etc.

Lorsque l'utilisateur clique sur la chanson, le contenu du fichier .txt correspondant est affiché sur cette même page. Des idées?

Était-ce utile?

La solution

<?php
    $song = intval( $_GET[ 'song_id' ] );
    $songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
    echo file_get_contents( $songs[ $song ] . '.txt' );
?>

Bonne chance!

Autres conseils

Il serait plus facile d’utiliser 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>

Si vous avez une liste de chansons et que vous utilisez une convention de dénomination simple, utilisez-la comme liste blanche pour vérifier si la valeur GET est autorisée avant même de penser à utiliser

file_get_contents

    $song = $_GET['song'] ;
    $file = '/Lyrics/' . $song . '.txt' ; 
    $songs = array( 'help', 'she-loves-you', 'yellow-submarine' );

   // as a double check see if the file exists too

   if( in_array( $song, $songs ) && file_exists( $file ) ) {
       echo file_get_contents( $file );
    }

Si vous êtes intelligent, vous pouvez également réutiliser le même tableau $ songs pour créer votre liste déroulante.

< valeur d'option = yellow-submarine > Sous-marin jaune & Lt; / option >

Et si vous gardez cela dans une base de données, vous pourriez décider que le "slug" "yellow-submarine" ferait une clé privée idéale, mais ne me lancez pas dessus ...

C’est une solution rapide, mais très peu sûre, utilisez-la uniquement à titre d’exemple. Comment faire, mais ne devrait pas:

<?

// votre code de page ici // c'est le corps où vous voulez mettre les paroles des chansons

file_get_contents($_GET['songName'].".txt")

// sinon ..

?>

dans meniu:

<a href="songs.php?songName=song1">song1</a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top