Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z formularzem w kilku krokach.
hippie
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 8.06.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Witam,

Jako, że na forum jestem po raz pierwszy jako zarejestrowany użytkownik, to chciałbym się serdecznie przywitać.

Przechodząc do meritum mojego problemu. Mam spory kłopot z formularzem, uściślając - dwa kłopoty. Uczę się dopiero PHP i muszę napisać dla kolegi pewien skrypt - formularz. Ma być on z założenia w trzech, góra czterech krokach. Pierwszy krok, to nie problem. Problem pojawił się przy kroku drugim i ogólnie kolejny problem przy skrypcie. Pokrótce opiszę:

1. Kod:

  1. <?php
  2. $uploaded = "themes/tmp/".$style."/".$_FILES['plik']['name'];
  3. $upload = $_FILES['plik']['tmp_name'];
  4.  
  5. /* ... */
  6.  
  7. case 2:
  8.        echo('<div id="main">
  9.        <h3>Nagłówek</h3>
  10.        <p>Treść.</p>
  11.        <form enctype="multipart/form-data" action="upload.php?step=2" method="POST">
  12.        <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
  13.        <input name="plik" type="file" />
  14.        <input type="submit" class="button" value="Send" />
  15.        </form>
  16.        </div>');
  17.        if(isset($upload))
  18.        {
  19.            if(is_uploaded_file($upload))
  20.                {
  21.                    move_uploaded_file($upload,$uploaded);
  22.                    echo("<p>Plik <strong>".$_FILES['plik']['name']."</strong> został pomyślnie załadowany na serwer</p>");
  23.                    echo("<script type='text/javascript'>
  24.                    window.location.href='index.php'
  25.                    </script>");
  26.                    exit;
  27.                }
  28.            else
  29.                {
  30.                    echo("<p>Zonk!</p>");
  31.                }
  32.        }
  33.        else
  34.        {
  35.        }
  36.    break;
  37. ?>


Załadowany plik jest pomyślnie wysyłany na serwer, jednakże nie dociera tam gdzie powinien, tj. do themes/tmp/$skrypt, lecz tylko do katalogu tmp. Jaki jest z tym problem?

2. Chcę jakoś zabezpieczyć skrypt, by użytkownik nie mógł, bez przejścia kroku pierwszego przejść do kroku drugiego. Próbowałem to zrobić na sesjach, jednakże nie umiem ich dostatecznie, przez co mi nic nie wyszło.

Z góry dziękuję za pomoc.

Pozdrawiam,
hippie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
TheaSiX
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


spróbuj tak:
  1. <?php
  2. $name = $_FILES["plik"]["tmp_name"];
  3. $uploaded = "themes/tmp/$style/$name";
  4. move_uploaded_file($name,$uploaded);
  5. ?>
Go to the top of the page
+Quote Post
hippie
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 8.06.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(TheaSiX @ 8.06.2009, 18:58:28 ) *
spróbuj tak:
  1. <?php
  2. $name = $_FILES["plik"]["tmp_name"];
  3. $uploaded = "themes/tmp/$style/$name";
  4. move_uploaded_file($name,$uploaded);
  5. ?>


Niestety, teraz w ogóle plik nie jest przesyłany.
Go to the top of the page
+Quote Post
TheaSiX
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


dziwne.. dla przykładu pokażę jak ja przesyłam zdjęcia na swojego bloga:

  1. <?php
  2. $uploaddir = "/home/_/ftp/pictures/$gallery_number/";
  3. $name = $_FILES['picture1']['tmp_name'];
  4. $uploadfile = $uploaddir.$name;
  5. move_uploaded_file($_FILES['picture1']['tmp_name'],$uploadfile);
  6. ?>


i nigdy nie miałem z tym problemu. Tworzy folder z kolejnym numerem automatycznie i do niego przesyła zdjęcie..
Go to the top of the page
+Quote Post
kefirek
post
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Skąd się bierze zmienna $style na początku ?
Może zmienna $style jest pusta i dlatego tak się dzieje.
Go to the top of the page
+Quote Post
hippie
post
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 8.06.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(kefirek @ 8.06.2009, 19:12:18 ) *
Skąd się bierze zmienna $style na początku ?
Może zmienna $style jest pusta i dlatego tak się dzieje.


Zapomniałem powiedzieć. Zmienna $style nie jest pusta, ponieważ zawiera dane przesłane przez użytkownika metodą POST z poprzedniego kroku formularza.

[EDIT]

Myślę, że wpadłem na pomysł. Jak dobrze pamiętam, wszystko z tablicy $_POST jest kasowane zaraz po wysłaniu formularza?

Ten post edytował hippie 8.06.2009, 18:17:53
Go to the top of the page
+Quote Post
kefirek
post
Post #7





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


To daj tak i zobacz czy bedzie działac.
  1. <?php
  2. $uploaded = "themes/tmp/".$_POST['style']."/".$_FILES['plik']['name'];
  3. ?>



I daj na początku
  1. <?php
  2. print_r($_POST);
  3. ?>


I zobacz co wyswietli

Ten post edytował kefirek 8.06.2009, 18:19:11
Go to the top of the page
+Quote Post
hippie
post
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 8.06.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No właśnie nic nie wyświetla, bo po prostu tablica $_POST jest pusta. Jak ja na to wcześniej nie wpadłem (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) Tylko teraz jak mam wydobyć tą zmienną?

[EDIT]

Postanowiłem zmienną przetrzymać w ciasteczku. Ustawiam ciasteczko za pomocą setcookie, wprowadzam nową zmienną, podstawiam do $uploaded, ale nie działa. W czym problem?

Ten post edytował hippie 8.06.2009, 20:41:00
Go to the top of the page
+Quote Post
TheaSiX
post
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


a pokaż formularz.. i jak te zmienne są przesyłane.. może wcale nie trzeba robić tego w ciastku. Głównie chodzi o metodę tworzenia $style itp.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jako, że na forum jestem po raz pierwszy jako zarejestrowany użytkownik, to chciałbym się serdecznie przywitać.

A ja proszę o lekturę regulaminu i poprawienie tytułu wątku.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:18