elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Extraer link externo o interno desde BD con php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Extraer link externo o interno desde BD con php  (Leído 1,895 veces)
NEMESIS PALADIN

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Extraer link externo o interno desde BD con php
« en: 9 Marzo 2018, 18:03 pm »

Buenos dias, tengo una duda sobre como extraer correctamente un link de descarga a una pagina externa o un link interno para ver un archivo. Mi objetivo es poder hacer que al darle click al texto de un campo resultado de una busqueda, me mande directamente al link externo o al archivo pdf guardado en el servidor, dependiendo de como se haya guardado el registro previamente. Soy amateur en esto de la programacion weby el codigo no es mio, solo lo adapté

Este es el campo que contiene el link externo o el nombre de mi archivo guardado en el mismo servidor

<td align="center"><a href="archivo.php?id=<?php echo $datos['id']?>" target="_blank"><?php echo $datos['Nombre_archivo']; ?></a></td>


Este es el codigo que deberia diferenciar entre link externo o interno dependiendo si mi columna (tipo archivo) contiene la palabra link para enlace externo si se hizo el registro de esa forma, si no contiene la palabra link entonces contiene un archivo guardado en el mismo servidor y me manda a la ruta donde está

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        include 'config.inc.php';
        $db=new Conect_MySql();
            $sql = "select*from ensayo where id=".$_GET['id'];      #consulta del archivo
            $query = $db->execute($sql);
            if($datos=$db->fetch_row($query)){
                if($datos['Tipo_archivo'] == "link"){
 
                }else{ ?>
        <iframe src="../registros/archivosensayo/<?php echo $datos['Nombre_archivo']; ?>" width="100%" height="950px"></iframe>   <!--se muestra el archivo-->
 
                <?php } } ?>
    </body>
</html>

Mi problema es que en todos los casos, el codigo me manda a una ruta interna donde se almacenan los archivos, aun si el registro contiene la palabra link y un enlace externo para descarga, me sigue enviando a una ruta interna en la que obviamente no hay nada y no tengo la mas minima idea de como hacer que funcione correctamente.
Gracias de antemano


En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Extraer link externo o interno desde BD con php
« Respuesta #1 en: 12 Marzo 2018, 16:10 pm »

La ruta interna será la ruta donde los guardaste y debería ser eso lo que se guarde en la base de datos, y no solo el nombre del fichero. Normalmente debería ser una carpeta y un fichero alojados en una carpeta "pública" de la cual los usuarios puedan acceder sin pasar por la aplicación web y si por medio de una url (podrías usar $_SERVER["DOCUMENT_ROOT"]). La url será la ruta externa que me imagino es a lo que te refieres, en ella simplemente debería bastar el dominio y la carpeta donde alojaste el fichero.

En resumen, almacena los documentos en la base de datos con la ruta después del public_html o la carpeta local que has definido como "pública" y luego para usarla en el enlace usa esa ruta más el dominio y listo.
 


En línea

Penguin

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Extraer link externo o interno desde BD con php
« Respuesta #2 en: 12 Marzo 2018, 23:14 pm »

No entiendo exactamente cuál es el problema, pero la primer consulta con if, está vacía:

Código:
if($datos['Tipo_archivo'] == "link"){
 
                }

Ahí le estás diciendo al código "si 'tipo_archivo' es igual a 'link' hace lo siguiente" y no le indicas nada, rápidamente cerras la condición con la llave para usar el else, en caso contrario. Creo que lo que buscas sería algo como esto:

Código:
if($datos['Tipo_archivo'] == "link"){?>

        <iframe src="<?php echo $datos['Nombre_archivo']; ?>" width="100%" height="950px"></iframe> <!--se muestra el link, suponiendo que "Nombre_Archivo" contiene el enlace externo, siempre y cuando "Tipo_Archivo" sea igual a 'link'-->
          <?php
                }else{ ?>
        <iframe src="../registros/archivosensayo/<?php echo $datos['Nombre_archivo']; ?>" width="100%" height="950px"></iframe>   <!--se muestra el archivo interno-->
 
                <?php } } ?>
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No se reconoce como un comando interno o externo...
Scripting
DarkItachi 2 10,240 Último mensaje 17 Mayo 2008, 22:52 pm
por No_NICK
Puerto externo o interno ?
Redes
virtualedu 3 9,687 Último mensaje 18 Diciembre 2012, 12:33 pm
por virtualedu
disco externo O interno+enclosure
Hardware
tato_xD001 3 3,307 Último mensaje 26 Marzo 2015, 13:19 pm
por Orubatosu
disco hdd interno o externo??
Hardware
DAOST420 8 4,741 Último mensaje 12 Noviembre 2020, 01:17 am
por emperie
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines