Foros del Web » Programando para Internet » PHP »

Ayuda con este formulario y PHP

Estas en el tema de Ayuda con este formulario y PHP en el foro de PHP en Foros del Web. Buenas noches, Tengo un formulario que luego de verificar los datos introducidos, dirige al usuario a una página de descarga. Tiene dos campos (usuario y ...
  #1 (permalink)  
Antiguo 27/10/2007, 21:03
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Mensaje Ayuda con este formulario y PHP

Buenas noches,

Tengo un formulario que luego de verificar los datos introducidos, dirige al usuario a una página de descarga.
Tiene dos campos (usuario y contraseña). Lo que quiero hacer es que cuando una persona introduzca correctamente un nombre de usuario y contraseña (previamente existente en mi base de datos) vaya directamente a una página que le permita descarga un archivo determinado (especificado en mi base de datos).

Ejemplo:


Mi base de datos es algo así.

USER______- ____PASS____- ___LINK

archivo1______-___123456____- ___http://www.mipagina.com/archivo1.zip
secarchivo_____-___abc123____-___http://www.mipagina.com/secarchivo22.zip

En resumen,

Si introduzco en la página de descarga principal como user "archivo1" y pass "123456" que se cargue otra página con un link de descarga al archivo correspondiente, en este caso http://www.mipagina.com/archivo1.zip.

Espero su ayuda, saludos
  #2 (permalink)  
Antiguo 27/10/2007, 21:57
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Ayuda con este formulario y PHP

Hola Daam!!

Pues es sencillo realmente, pero no hay necesidad de guardar una ruta completa(hhtp//...), solo el nombre del archivo(archivo.algo)

En el momento que el usuario se este logueando lo que haces es guardar el campo de la DB que contiene el nombre del archivo para dicho usuario, por ejemplo en una variable de sesión, e inmediatamente lo reenvias a la página donde estará el link para poder descargar el archivo mencionado.

En la pagina del logueo:
Código PHP:
session_start();
.
.
.
//conexión y consulta a la DB
.
.
.
if(
$pass=="$usuario_de_la_db"&&$user=="password_del_usuario_de_DB")
{
//suponiendo que el archivo sea un pdf, pues se guardaría: archivo.pdf
$_SESSION['archivo']=$campo_archivo_de _tu_db;
header("location:descargar_archivo.php");

En $_SESSION['archivo'], se mantendrá el nombre del archivo correspondiente a ese usuario y rediriges suponiendo a una página llamada "descargar_archivo.php".

Y por último en la página creas el vínculo:
Código PHP:
session_start();
<a href="<?=$_SESSION['archivo']?>">Descargar archivo <?=$_SESSION['archivo']?></a>
Espero me hayas entendido

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 27/10/2007, 22:42
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Exclamación Re: Ayuda con este formulario y PHP

Muchas gracias Carlx!,

Me arroja el siguiente error:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\AppServ\www\accion1.php:2) in C:\Program Files\AppServ\www\accion1.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\AppServ\www\accion1.php:2) in C:\Program Files\AppServ\www\accion1.php on line 24.


Hice la conexión y consulta a mi base de datos tal y como dijiste, en mi base de datos cree el campo archivo, inserte los siguientes valoresen mi base de datos: en el campo archivo: archivo.pdf, user: pdf, pass: pdf.

Código PHP:
<?php

session_start
();


//conexión y consulta a la DB


$host="localhost";
$user="xxx";
$password="xxx";

$link mysql_connect ($host$user$password) or die ("<center>No se puede conectar con la base de datos\n</center>\n");

$query="SELECT * FROM $manuales;";



if(
$pass=="$pass"&&$user=="$user")
{
//suponiendo que el archivo sea un pdf, pues se guardaría: archivo.pdf
$_SESSION['archivo']=$archivo;
header("location:accion2.php");
}  


?>
En mi formulario pasado le coloque como atributo action="accion1" e introduje como user=pdf y como pass=pdf.

Cree una pagina llamada accion2 con el siguiente código

Código PHP:
session_start();
<a href="<?=$_SESSION['archivo']?>">Descargar archivo <?=$_SESSION['archivo']?></a>
y el problema persiste...

¿Qué hice mal?

El valor del campo de usuario de mi formulario es "user" y el de la contraseña es "pass" y en la base de datos, el nombre del campo y las contraseña, es igual al del formulario.
  #4 (permalink)  
Antiguo 31/10/2007, 21:08
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Ayuda con este formulario y PHP

Hola Daam!!! Hasta que te pude responder jejeje

Prueba poniendo esto:
Código HTML:
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=accion2.php"> 
En lugar del header location... parece ser que es un error por que utilzas en esa posición el header... Cambia esa línea... y si persiste el problema, déjame ver el código de los dos archivos que utilizas vale??

Ten encuenta que esa instrucción que te paso es html no php, osea debe ir fuera de las etiquetas <?php ?>, listo??

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 01/11/2007, 22:27
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Re: Ayuda con este formulario y PHP

Hola de nuevo, el problema persiste Carlx...

El código del formulario es:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml">

<
head>

<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Plantilla</title>

    <
script type="text/javascript" language="javascript" src="scripts/scriptaculous/lib/prototype.js"></script> 
    <script type="text/javascript" language="javascript" src="scripts/scriptaculous/src/scriptaculous.js"></script> 
    <script type="text/javascript" language="javascript" src="scripts/jsvalidate.js"></script>

    <link rel="stylesheet" type="text/css" href="/estilos/registro.css">


    <style type="text/css">
<!--
.style10 {    font-size: 9px;
    font-weight: bold;
}
#apDiv1 {
    position:absolute;
    width:230px;
    height:121px;
    z-index:1;
    left: 620px;
    top: 372px;
}
.Estilo1 {
    font-size: 14px;
    font-weight: bold;
}
#apDiv2 {    position:absolute;
    width:200px;
    height:115px;
    z-index:1;
    left: 19px;
    top: 494px;
}
.Estilo3 {font-size: 14px; font-weight: bold; color: #0066CC; }
-->
    </style>
</head>

<body>

    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p><img src="/logo_solo.png" alt="Logo" width="372" height="76" />
      <script type="text/javascript" src="scripts/wz_tooltip.js"></script>
</p>

    <p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="accion1.php">
      <table width="414" border="0" align="center">
        <tr>
          <td width="213" height="23">Usuario de descarga<span class="style1">*</span></td>
          <td width="191"><a onmouseover="Tip('En esta casilla introduzca su se&uacute;donimo o nick que usa en MercadoLibre.com')"><img src="images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <input name="user" type="text" tabindex="1" class="jsrequired" maxlength="20" id="user" /></td>
        </tr>
        <tr>
          <td height="23">Contrase&ntilde;a de descarga<span class="style1">*</span></td>
          <td><a onmouseover="Tip('En esta casilla introduzca su primer nombre')"><img src="images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <input name="pass" type="text" tabindex="2" class="jsrequired " maxlength="20" id="pass" /></td>
        </tr>
      </table>
      <label></label>
      <p>
      <label>
        <div align="center">
          <input type="submit" name="enviar" id="enviar" value="Enviar" />
        </label>
    </form>
    <p>&nbsp;</p>
<p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  

    <p>&nbsp;</p>
    <p>&nbsp;</p>
<div align="center" id="footer">
      <p>&nbsp;</p>
</div>
    </body>
</html> 
La base de datos se llama elsitiodb y la tabla se llama manuales.

Recuerda que lo que busco hacer es que si coinciden el user y pass de la tabla manuales, al hacer clic en enviar se cargue una página con el link de descarga o en su defecto que de una vez se inicie la descarga, esta última esta mejor.

Saludos, espero tu ayuda
  #6 (permalink)  
Antiguo 02/11/2007, 22:46
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con este formulario y PHP

Cualquier ayuda bienvenida sea.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:00.