+ Responder Tema
Resultados 1 al 7 de 7

Tema: Insertar variables en la dirección de un hipervínculo

  1. #1
    Recien Llegado! Merodeador grupotork Está en el buen camino
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    4
    Poder de Reputación
    0

    Question Insertar variables en la dirección de un hipervínculo

    Hola a todos,

    Estoy comenzando a trabajar con php y trato de poner en práctica y ampliar mis escasos conocimientos que, básicamente, se reducen al tutorial de PHP de CCTW, jejeje.

    Estoy intentando crear una web en la que pueda subir archivos y que, además, me muestre una lista con los archivos subidos. Hasta ahí bien, he conseguido hacerlo todo (no sin esfuerzo y quebraderos de cabeza, jejeje), pero ahora quiero añadir una funcionalidad nueva a esta lista. Quiero asignar al nombre de cada archivo un hipervínculo a dicho archivo, para que los usuarios de la web puedan descargar desde esta lista los archivos con sólo clickar sobre su nombre.

    Vamos por partes. El código que tengo en la página es el siguiente:

    Código PHP:
    <?
    //definimos el directorio donde se guadan los archivos
    $path "./files/";
    //abrimos el directorio
    $dir opendir($path);
    //guardamos los archivos en un arreglo
    $img_total=0;
    while (
    $elemento readdir($dir))
    {
    if (
    strlen($elemento)>3)
    {
    $img_array[$img_total]=$elemento;
    }

    $img_total++;
    }

    for (
    $i=0;$i<$img_total$i++)
    {
    $imagen $img_array[$i];
    $num $i+1;
    $pathimagen=$path.$imagen;
    if (
    $columna==1)
    echo 
    "<tr>"// para empezar una nueva linea
    echo "<td align='center'>";
    echo 
    "<br>".$imagen."</a>";
    echo 
    "</td>";
    if (
    $columna == $img_col)

    $columna=1;
    echo 
    "</tr>";
    }
    else
    {
    $columna++;
    }
    }
    ?>
    Para intentar asignar el vínculo al archivo, he pensado que dicha dirección va a depender directamente del nombre del archivo, que depende a su vez de la variable $imagen. Como estos archivos están alojados en la carpeta ./files, pensé que era suficiente con usar un echo en el que enlazara el texto con la dirección ./files/".imagen." . Supongo que es una catetada, ya que me da error. Digamos que mi código ha quedado de la siguiente manera:

    Código PHP:
    <?
    //definimos el directorio donde se guadan los archivos
    $path "./files/";
    //abrimos el directorio
    $dir opendir($path);
    //guardamos los archivos en un arreglo
    $img_total=0;
    while (
    $elemento readdir($dir))
    {
    if (
    strlen($elemento)>3)
    {
    $img_array[$img_total]=$elemento;
    }

    $img_total++;
    }

    for (
    $i=0;$i<$img_total$i++)
    {
    $imagen $img_array[$i];
    $num $i+1;
    $pathimagen=$path.$imagen;
    if (
    $columna==1)
    echo 
    "<tr>"// para empezar una nueva linea
    echo "<td align='center'>";
    echo 
    "<br>"<a href="files/"$imagen">".$imagen."</a>";
    echo 
    "</td>";
    if (
    $columna == $img_col)

    $columna=1;
    echo 
    "</tr>";
    }
    else
    {
    $columna++;
    }
    }
    ?>
    Agradecería a quien pudiera echarme una mano en esto. Disculpad mi ignorancia!

  2. #2
    Esto empieza a ser un vicio... Habitante Rabs will become famous soon enoughRabs will become famous soon enough Avatar de Rabs
    Fecha de Ingreso
    16 jun, 11
    Ubicación
    Madrid
    Mensajes
    756
    Poder de Reputación
    5
    Es simple, pones comillas donde no debes, y no pones los puntos:
    Código PHP:
    echo "<br><a href="files/".$imagen.">".$imagen."</a>"; 
    Remplazando esa linea en
    Código PHP:
    echo "<tr>"// para empezar una nueva linea
    echo "<td align='center'>";
    echo 
    "<br>"<a href="files/"$imagen">".$imagen."</a>";
    echo 
    "</td>"
    Todo debería funcionar
    www.fernandosalcedo.com
    www.margarita-gonzalez.com
    Videos del compañero Lantiga 100% recomendado si quieres ampliar conocimientos.
    Si tienes una mascota http://www.eluniversodelperro.com/ es tu sito.

  3. #3
    Recien Llegado! Merodeador grupotork Está en el buen camino
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    4
    Poder de Reputación
    0
    Gracias por tu pronta respuesta!

    He probado a realizar los cambios que me indicas, pero el Dreamweaver me sigue indicando un error de sintaxis en la línea 29 (donde se encuentra esta instrucción).

    Pese a ello, lo he subido a mi servidor para ver si funcionaba, pero me daba el siguiente mensaje de error:

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /mnt/weba/40/92/51547192/htdocs/pruebas/subir/files/index2.php on line 29

    entiendo que esto significa que falta un punto o punto y coma por algún sitio, pero no sé exactamente cuál es el problema

  4. #4
    Recien Llegado! Merodeador grupotork Está en el buen camino
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    4
    Poder de Reputación
    0
    Pensando se me ocurre: ¿Puede ser una incompatibilidad con las comillas del código A href? Por ejemplo, si yo usara este código, <a href="files/index.htm">, tiene dos pares de comillas. Puede que eso confunda a la sentencia echo?

    Vamos, es hablar por hablar,...... jejeje

  5. #5
    Esto empieza a ser un vicio... Habitante Rabs will become famous soon enoughRabs will become famous soon enough Avatar de Rabs
    Fecha de Ingreso
    16 jun, 11
    Ubicación
    Madrid
    Mensajes
    756
    Poder de Reputación
    5
    Hay la hosti*, se me olvidó corregirlo del todo:
    Código PHP:
    echo "<br><a href='files/".$imagen."'>".$imagen."</a>"
    Ahora si :P
    www.fernandosalcedo.com
    www.margarita-gonzalez.com
    Videos del compañero Lantiga 100% recomendado si quieres ampliar conocimientos.
    Si tienes una mascota http://www.eluniversodelperro.com/ es tu sito.

  6. #6
    Recien Llegado! Merodeador grupotork Está en el buen camino
    Fecha de Ingreso
    25 ene, 12
    Mensajes
    4
    Poder de Reputación
    0
    Gracias, va perfecto!!!

    Con la ayuda del tutorial también llegué a otra solución, la incluyo aquí por si sirve a alguien (aunque es más liosa):

    incluir barras \ delante de todas las comillas que no pertenecieran al echo, quedando así

    Código PHP:
    echo "<br><a href=\"files/$imagen\">".$imagen."</a>"
    De nuevo mil gracias por tu ayuda!!!

  7. #7
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Hola:

    Además de la última solución, lo siguiente también funciona:

    echo "<br /><a href='files/$imagen'>$imagen</a>";

    Si se utilizan comillas dobles al comenzar una línea PHP, todas las variables incluidas dentro de las comillas se evaluarán (se utilizará el contenido de las variables). Para no preocuparse de escapar las comillas (poner una backslash (\) antes de las comillas se llama escapar un caracter), se utilizan comillas simples en el href: href='url'.

    Saludos.

+ Responder Tema

Temas Similares

  1. Comparar variables
    Por Jeyn en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 4
    Último Mensaje: 15/11/2011, 21:04
  2. pasar variables en asp
    Por dexter07 en el foro Otros Elementos
    Respuestas: 0
    Último Mensaje: 10/11/2008, 16:09
  3. Variables
    Por Jugoncan en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 0
    Último Mensaje: 20/10/2007, 17:21

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes