Stworzyłem razem całkiem prosty Odkupiciela kodu w .php (dzięki pomocy od tego miejsca) i mam trudność w ustaleniu, jaki jest najlepszy sposób na pobranie pliku jeśli walidacja się powiedzie. Zasadniczo -Serwery do pobrania po przesłaniu formularza w/sprawdzanie poprawności
Użytkownik wprowadza nieprawidłowy kod -> Strona jest odświeżana z komunikatem o błędzie. Użytkownik wprowadza poprawny kod -> Podaj pobranie "Zapisz jako" -> odśwież stronę.
W momencie, w którym używam pliku http://www.zubrag.com/scripts/download.php, ale po rozpoczęciu pobierania mój formularz odświeża stronę, ale tylko połowa ładuje zawartość ?!
To jest formularz ze skryptem PHP, który zrobiłem.
<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>
Czy ktoś ma pomysły na to, jak najlepiej służyć do pobrania? Wiem, że obecnie każdy, kto miał lokalizację pliku, mógł pobrać plik, ale nie jestem pewien, jak mógłbym zabezpieczyć i
Cześć ponownie narysowałem, dzięki, był to bardzo przydatny projekt. Próbowałem Twojego powyższego rozwiązania, ale nawet jeśli ustawię plik $ w lokalizacji dostępnej z sieci i zmieni nazwę pliku na tę, na którą wskażę, pobieranie nie będzie obsługiwane, a strona odświeży się i załaduje tylko połowę! – Bantros
Czy używasz ścieżek bezwzględnych lub względnych? – dizas
Zmieniłem nieco strukturę twojego kodu, ponieważ jeśli chcesz wysyłać nagłówki, nie możesz wypuścić html lub białych znaków, zanim to zrobimy, szczególnie, jeśli mamy służyć do pobrania. Czy jest inny kod HTML powyżej tego bloku kodu, który wysyła nagłówki, które nie zostały pokazane w przykładzie? Jeśli tak, upewnij się, że skrypt obsługujący pobieranie nie ma innych danych wyjściowych przed udostępnieniem pliku. Przepraszam, że nie odpowiedziałem wcześniej, ale przegapiłem wiadomość w skrzynce odbiorczej. – drew010