Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload
Forum PHP.pl > Forum > Przedszkole
glass
Mam pytanko, próbuje przy uploadowaniu stworzyć dwie bariery, dokładnie dwa formularze następujące po sobie:
pierwszy przechodzi w przypadku pobrania właściwego typu pliku drugi właściwego hasła:
teraz mam takie polecenie sprawdzające:

Kod
if (is_uploaded_file($_FILES['plik']['tmp_name']))
{echo"upload";}


oczywiście działa w przypadku gdy wysłałem plik na serwer, ale tylko po pierwszym wywołaniu formularza, chodzi mi o to czy da się zapisać te dane na przykład do ciasteczka, tak bym mógł wywołać ten warunek ponownie, po użyciu kolejnego formularza?

jeśli trzeba jaśniej to dam kod, dzięki za uwagę snitch.gif
ayeo
Witaj!

Możesz ustawić jakąś flagę w sesji po prostu i zerować ją przy wyświetlaniu drugiego formularza.

Pozdrawiam!
glass
rozumiem że chodzi Ci o takie rozwiązanie:

Kod
<?php

if (is_uploaded_file($_FILES['plik']['tmp_name']))
        {
    session_start();
    $_SESSION['file']=$_FILES['plik']['tmp_name'];
        }
?>

po pierwszym wywołaniu formularza, mogę wywołać sesję i nadać jej ścieżkę pliku uploadowanego, ale co mi z tego?

to polecenie po przejściu do kolejnego formularza nie będzie aktywne:

Kod
move_uploaded_file($_SESSION['file'], $lokacja);

będę miał jedynie sesje, ale co z nią zrobić, czy mogę zamiast powyższej komendy użyć polecenia copy, czy to wypada w przypadku uploadu?
nospor
zaraz po uploaddzie musisz plik skopiowac do swojego jakiegos katalogu tymczasowego.
Przy drugim formie bedziesz pobieral plik wlasnie z tamtej lokalizacji.
Swoj plik tymczasowy czysc co jakis czas by usunac smieci - pliki pozostale, bo ktos nie doszedl do kroku drugiego
glass
dzięki za pomoc, ok jest to jakieś rozwiązanie, doszedłem do kopiowania przez copy i jest coś nie tak:

Kod
<?php
$_SESSION['file']=$_FILES['plik']['tmp_name'];
$_SESSION['lokacja']=$_SERVER['DOCUMENT_ROOT'] . '/lama/include/' . basename($_FILES['plik']['name']);
?>


Kod
<?php
$potwierdz=$_POST['potwierdz'];
$haslo=$_POST['haslo'];

if(($haslo == "ff") or ($haslo == "haslo:ff") and ($potwierdz == "ok"))
{
session_start();
copy($_SESSION['file'], $_SESSION['lokacja']);

setcookie('haslo', 'ff');
echo"<div id='gotowe'>GOTOWE</div>";
}

?>


w sposób powyżej nie chce kopiować, natomiast jeśli umieszczę copy poza warunkiem to kopiuje bez problemu, o co chodzi?
nospor
zdajesz sobie sprawe, iz ten warunek:
($haslo == "ff") or ($haslo == "haslo:ff") and ($potwierdz == "ok")
zachowa sie inaczej niz ten:
(($haslo == "ff") or ($haslo == "haslo:ff")) and ($potwierdz == "ok")
?
Podobnie z dzialaniem arytmetycznym:
2+3*4 da ci inny wynik niz (2+3)*4
glass
zaraz to poprawie, działanie matematyczne faktycznie mówi co innego!
dzienx, powyższy problem już rozwiązałem używając do przenoszenia danych move_uploaded_file i tyle :A
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.