Pregunta

Tengo un formulario que tiene una lista desplegable de títulos de canciones. Quiero poder hacer clic en uno de los títulos de las canciones y cargar las letras en la misma página. Las letras están contenidas en archivos .txt en una carpeta llamada & Quot; Letras & Quot ;.

Ejemplo:

La lista desplegable contiene: Canción1 Song2 Song3 etc.

Cuando el usuario hace clic en la canción, el contenido del archivo .txt correspondiente se muestra en esa misma página. ¿Alguna idea?

¿Fue útil?

Solución

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

¡Buena suerte!

Otros consejos

Sería más fácil usar 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 tiene una lista de canciones y usa una convención de nomenclatura simple, úsela como una lista blanca para verificar que el valor GET esté permitido antes de siquiera pensar en usar

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 eres inteligente, también puedes reutilizar la misma matriz de $ songs para crear tu lista desplegable.

< valor de opción = submarino amarillo > Submarino Amarillo & Lt; / opción >

Y luego, si mantiene esto en una base de datos, bien podría decidir que la 'babosa' 'submarino amarillo' sería una Clave Privada ideal, pero no me haga comenzar con eso ...

Esta es una solución rápida, pero altamente insegura, úsela solo como ejemplo, cómo podría hacerse, pero no debería:

<?

// el código de tu página aquí // este es el cuerpo donde quieres poner letras de canciones

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

// más ..

?>

en meniu:

<a href="songs.php?songName=song1">song1</a>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top