He creado un sencillo programa de descarga de código en .php (gracias a la ayuda de aquí) y estoy teniendo dificultades para tratar de averiguar cuál es la mejor manera de servir una descarga. si la validación es exitosa Básicamente -Publicación de descarga después del envío de formulario w/validation
El usuario introduce un código no válido -> La página se actualiza con un mensaje de error. El usuario ingresa un código válido -> Dar descarga 'Guardar como' -> página de actualización.
Por el momento estoy usando http://www.zubrag.com/scripts/download.php para servir el archivo, pero una vez que ha comenzado la descarga, mi formulario actualiza la página pero solo carga el contenido a la mitad?
Esta es la forma con el script PHP que hice.
<div class="dcrForm">
<p>Have a physical copy of this release? Claim your digital download by entering your Download Code below.</p>
<form action="index.php" method="post">
<input type="text" name="code" class="dcrInput" value="">
<input type="submit" name="harrisSubmit" class="dcrSubmit" value="Submit">
</form>
<?php
include("scripts/dcr_config.php");
$code="";
$log="";
if (isset($_POST['harrisSubmit']))
{
$code=$_POST['code'];
$link = mysql_connect($hostname, $dbusername, $dbpassword);
mysql_select_db("$databasename");
$query = "select count from $harris where code='$code'";
if ($q=mysql_query($query))
if ($r=mysql_fetch_array($q)){
if ($r[0]<3)
{
$subquery="update $tbname set count='".($r[0]+1)."' where code='$code'";
mysql_query($subquery);
?><script>window.location.href="download.php?f=test.txt";</script><?php
}
}
$log="<p>Invalid code. Try Again.</p>";
}
echo $log."";
?>
</div>
¿Alguien tiene alguna idea sobre cuál sería la mejor forma de servir la descarga? Sé que actualmente cualquier persona que tenga la ubicación del archivo podría descargar el archivo, pero no estoy seguro de cómo podría protegerlo.
Hola otra vez dibujé, gracias, era un proyecto bastante útil. He intentado con la solución anterior, pero incluso si configuro el archivo $ en una ubicación accesible desde la web y cambio el nombre del archivo al que estoy apuntando, no se sirve ninguna descarga y la página se actualiza y ¡solo carga la mitad! – Bantros
¿Está utilizando rutas absolutas o relativas? – dizas
Cambié un poco la estructura de su código, porque si desea enviar encabezados, no se pueden generar html o espacios en blanco antes de hacerlo, especialmente si vamos a servir una descarga. ¿Hay algún otro HTML encima del bloque de código que envía los encabezados que no se muestran en el ejemplo? De ser así, asegúrese de que el script que sirve para la descarga no tenga otra salida antes de servir el archivo. Lamento no haber respondido antes, debo haber perdido el mensaje de la bandeja de entrada. – drew010