Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz uploadu
Forum PHP.pl > Forum > Przedszkole
JarekMk
Mam sktypt ktory pozwala na upload pliku na serwer ale mam teraz takie pytanie czy da sie go rozbudowac do takaiej formy:



Aby przy uploadzie dodawal plik tekstowy o nazwie takiej jak uploadowany plik w ktorym zawarte byly by powyzsze dane, adres email i krotka notatka...

Kod mojego formularza:
Kod
<?php
$katalog = 'upload/';
if(move_uploaded_file($_FILES['plik']['tmp_name'],
$katalog.$_FILES['plik']['name'])) {
echo 'Plik został przesłany, dziękujemy';
} else {
echo 'Wystapił bł±d!';
}
?>




pzdr!
erix
A czemu miałoby się nie dać?

Zwyczajnie przetwarzasz elementy formularza przez $_POST.
wipo
Możesz sobie utworzyć plik o ten nazwie i wpisac tam te dane.
JarekMk
A możecie mi jakoś pomóc to napisać? Bo ja narazie jestem całkiem ciemny...
I jak dodac aby sprawdzal rozszerzenie ? Tak aby zakazać np. php dl abezpieczeństwa... ?
wipo
Kod
<?php
if ($_POST['wgraj']){
    $katalog = 'upload/';
    if (!ereg('.php',$_FILES['plik']['name'])){
        if(move_uploaded_file($_FILES['plik']['tmp_name'],
            $katalog.$_FILES['plik']['name'])) {
            $plik=fopen($katalog.$_FILES['plik']['name'].".txt");
            fputs($plik,$_POST['email'].chr(10).$_POST['tresc']);
            fclose($plik);
            echo 'Plik został przesłany, dziękujemy';
        } else {
             echo 'Wystapił bł±d!';
        }
    } else print "php nie można wygrywać";
}
?>
<form action="" method="post" enctype="multipart/form-data">
Email <input type="text" name="emil" value=""><br>
Treść <textarea cols=30 rows=10 name=tresc></textarea><br>
<input type=file name=plik><br>
<input type="submit" name="wgraj" value="Wgraj"></form>

Powinno działać ale nie jestem pewien
JarekMk
tu wywala błąd:
$plik=fopen($katalog.$_FILES['plik']['name'].".txt");
fputs($plik,$_POST['email'].chr(10).$_POST['tresc']);
fclose($plik);



Warning: fopen() expects at least 2 parameters, 1 given in /home.8/a/n/t/antivirpl/www/load.php on line 7

Warning: fputs(): supplied argument is not a valid stream resource in /home.8/a/n/t/antivirpl/www/load.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /home.8/a/n/t/antivirpl/www/load.php on line 9
wipo
Cytat(JarekMk @ 3.10.2006, 22:17:59 ) *
tu wywala błąd:
$plik=fopen($katalog.$_FILES['plik']['name'].".txt");
fputs($plik,$_POST['email'].chr(10).$_POST['tresc']);
fclose($plik);
Warning: fopen() expects at least 2 parameters, 1 given in /home.8/a/n/t/antivirpl/www/load.php on line 7

Warning: fputs(): supplied argument is not a valid stream resource in /home.8/a/n/t/antivirpl/www/load.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /home.8/a/n/t/antivirpl/www/load.php on line 9

Fakt
$plik=fopen($katalog.$_FILES['plik']['name'].".txt","w+");
JarekMk
Prawie idealnie tylko nei dodaje maila do pliku tekstowego...
wipo
Cytat(JarekMk @ 3.10.2006, 22:25:39 ) *
Prawie idealnie tylko nei dodaje maila do pliku tekstowego...

Bo jest błąd w formularzu raz dałem emil a czytam email
popraw jedno albo drugie aby nazwa pola w obu przypadkach była taka sama
JarekMk
Poprawiłem ale nadal nei dodaje...
Sorki ze tak marusze... i tak jestem wdzięczny za pomoc smile.gif

A jednak dodaje... Mój błąd
A da się jeszcze zrobić tak aby wymagał wypełnieka wszystkich pól?
wipo
Cytat(JarekMk @ 3.10.2006, 22:32:07 ) *
Poprawiłem ale nadal nei dodaje...
Sorki ze tak marusze... i tak jestem wdzięczny za pomoc smile.gif

A jednak dodaje... Mój błąd
A da się jeszcze zrobić tak aby wymagał wypełnieka wszystkich pól?

<form action="" method="post" enctype="multipart/form-data" name="form1" onsubmit="
if (document.forms['form1'].email.value==''){
alert('Wpisz e-mail');
return false;
}
if (document.forms['form1'].tresc.value==''){
alert('Wpisz tresc');
return false;
}
if (document.forms['form1'].plik.value==''){
alert('Wybierz plik');
return false;
}
">
Coś takiego wstaw zamiast tamtego
JarekMk
Jesteś wielki!
A jak zrbić jeszcze tak aby po wyslaniu pliku wświetlał sam komunikat o powodzeniu albo o błędize anie razem z formularzem?

I jak zrobić jeszcze tak aby ustalić maxymalną dozwoloną wielkość pliku do załadowania? I jak doać pare wyjątków w rozszerzeniach np. *.php*
wipo
Cytat(JarekMk @ 3.10.2006, 22:43:46 ) *
Jesteś wielki!
A jak zrbić jeszcze tak aby po wyslaniu pliku wświetlał sam komunikat o powodzeniu albo o błędize anie razem z formularzem?

to po if ($_POST['wgraj']){

.....


}
daj else {




i na koncu }

Człowieku poszukaj troche na php.net tam jest wszystko
JarekMk
A i jeszcze ostatnie smile.gif Czy da się zrobić pasek postepu wgrywania? Albo określić procentwo? I np. z jaką prędkścią się wgrywa? <--- teraz to marusze ale ciekaw jestem czy jest taka opcja:P
wipo
AJAX
JarekMk
Cytat(wipo @ 3.10.2006, 22:47:45 ) *
to po if ($_POST['wgraj']){

.....
}
daj else {
i na koncu }

Człowieku poszukaj troche na php.net tam jest wszystko


Tego nei rozumiem tak jest już else i to 2....

Wiem żę ejst ale ja tego nei rozumie... Dopiero się uczzzze...
wipo
Kod
<?php
if ($_POST['wgraj']){
    $katalog = 'upload/';
    if (!ereg('.php',$_FILES['plik']['name'])){
        if(move_uploaded_file($_FILES['plik']['tmp_name'],
            $katalog.$_FILES['plik']['name'])) {
            $plik=fopen($katalog.$_FILES['plik']['name'].".txt","w+");
            fputs($plik,$_POST['email'].chr(10).$_POST['tresc']);
            fclose($plik);
            echo 'Plik został przesłany, dziękujemy';
        } else {
             echo 'Wystapił bł±d!';
        }
    } else print "php nie można wygrywać";
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
Email <input type="text" name="email" value=""><br>
Treść <textarea cols=30 rows=10 name=tresc></textarea><br>
<input type=file name=plik><br>
<input type="submit" name="wgraj" value="Wgraj"></form>
<? }

Proponuje poczytać jakieś samouczki albo kupić jakąkolwiek książke
JarekMk
A słuchaj ostatnia prośba smile.gif Jak dopisać zmienną ktora zapisze w pliku po treści date i godzine utworzenia i przebudować zapis do pliku aby po zapisaniu plik wyglądał następująco:


E-mail autora
kursphp@php.pl

Treść wiadomości:
Opis tego co wpisał

Dodano:
4 października 2006, 12:19


Oczywiście data momże być inaczej zapisana smile.gif
Mam nadzieje że nie zniechęcisz sięe do mnie tym żę tak marudze ciągle tongue.gif
Pozdrawiam!
wipo
Cytat(JarekMk @ 4.10.2006, 12:20:37 ) *
A słuchaj ostatnia prośba smile.gif Jak dopisać zmienną ktora zapisze w pliku po treści date i godzine utworzenia i przebudować zapis do pliku aby po zapisaniu plik wyglądał następująco:
E-mail autora
kursphp@php.pl

Treść wiadomości:
Opis tego co wpisał

Dodano:
4 października 2006, 12:19
Oczywiście data momże być inaczej zapisana smile.gif
Mam nadzieje że nie zniechęcisz sięe do mnie tym żę tak marudze ciągle tongue.gif
Pozdrawiam!

fputs($plik,"Email od autora:".chr(10).$_POST['email'].chr(10).chr(10)."Treść wiadomości:".chr(10).$_POST['tresc'].chr(10).chr(10)."Dodano: ".chr(10).date("d F Y, H:i"));
JarekMk
Jesteś najlepszy!
Wszystko działa tak jak powinno smile.gif
Dziękuje tongue.gif
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.