Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa metoda POST - UNRECOGNIZED URI PATTERN
Forum PHP.pl > Forum > Serwery WWW > Apache
Theofilos
Drodzy forumowicze,

mam Debiana, na nim Apache/2.4.10 i PHP 5.6.7-1.
W sumie nie wiem, czy to w tej sekcji zadać pytanie, czy w PHP, ale spróbuję tu.

Co jest przyczyną podanych niżej błędów z charakterystycznym ”UNRECOGNIZED URI PATTERN” przy metodzie GET i POST?

Ze strony Mansfeld skopiowałem kod skryptu PHP do pliku zaladuj.php. Bez kodu do paska postępu. Tylko sam mechanizm wgrywania plików.

Stworzyłem stronkę zapisaną w pliku
  1. </head>
  2. <?php
  3. echo "wstawka PHP";
  4. ?>
  5. <br>
  6. <form action="zaladuj.php" method="POST" enctype="multipart/form-data">
  7. <input type="submit" value="Wyslij pliki"/>
  8. <input type="file" class="custom-file-import" name="image[]" multiple="">
  9. </form>
  10. </body>
  11. </html>


Przy próbie załadowania pliku na serwer pojawiają się w logach:
Kod
di=YwiPR0xtLE { mi:”web”, rm:”POST”, rurl:”UNRECOGNIZED URI PATTERN”, rp:”2887″, rsrc:”Mozilla/5.0 (Windows NT 10″, t:346074, s:200, I:467170, O:6951 }
di=YwiPR0xtLE { mi:”web”, rm:”GET”, rurl:”UNRECOGNIZED URI PATTERN”, rp:”2887″, rsrc:”Mozilla/5.0 (Windows NT 10″, t:14050, s:404, I:435, O:587 }


no i plik się nie wgrywa na serwer.

W sieci tylko jedną stronę z takimi błędami znalazłem i nic to nie wyjaśniło.

Z pozdrowieniami
Salvation
Pokaż strukturę katalogową jaką masz w swoim projekcie.
No i na boga! Zmień wersje na coś bardziej na czasie!
Theofilos
Struktura katalogów i plików wygląda następująco:

Dla kompletności źródło skryptu PHP:
  1. <?php
  2. if(isset($_FILES['image'])){
  3. $errors= array();
  4. $file_name = $_FILES['image']['name'];
  5. $file_size =$_FILES['image']['size'];
  6. $file_tmp =$_FILES['image']['tmp_name'];
  7. $file_type=$_FILES['image']['type'];
  8. $extensions= array("jpeg","jpg","png", "webp", "pdf");
  9.  
  10. foreach($file_name as $key => $value){
  11. $tmp = explode('.',$_FILES['image']['name'][$key]);
  12. $file_ext = strtolower(end($tmp));
  13.  
  14. if(in_array($file_ext,$extensions)=== false){
  15. $errors[]="Rozszerzenie niedozwolone.";
  16. }
  17.  
  18. if($file_size[$key] > 2097152){
  19. $errors[]='Plik nie może byc wiekszy niż 2 MB.';
  20. }
  21. }
  22.  
  23. if(empty($errors)==true){
  24. foreach($file_name as $key => $value){
  25. move_uploaded_file($file_tmp[$key],"pliki/".$file_name[$key]);
  26. echo "Pliki poprawnie wyslane!";
  27. }
  28. }
  29.  
  30. else{
  31. print_r($errors);
  32. }
  33. }
  34. ?>


Chętnie bym zmienił wersję systemu, apache i PHP, ale nie da się raczej tego zrobić w prosty sposób.
Samodzielna ingerencja w konfigurację może skończyć się źle.
To jest system na dysku sieciowym WD My Cloud. Od 16 kwietnia przestanie być wspierany.
Dlatego właśnie szukam rozwiązania, które zastąpi obecną jeszcze możliwość ze https://files.mycloud.com.
Czyli chcę stworzyć na lokalnym serwerze WWW (na tym dysku) podobną możliwość wgrywania plików przez prosty formularza.
Potem jeszcze chcę dodać wcześniejsze logowanie się, aby nie każdy mógł ładować, ale najpierw chcę się skupić na rozwiązaniu umożliwiającym załadowanie plików.

Już mi to działa.
Nie wiem co było nie tak. Skasowałem wszystko z katalogu.
Stworzyłem od nowa pliki i katalog i działa.
StrefaPi
a czy stworzenie takiego rozwiazania nie jest droższe niż zakup podobnego nowego gotowca?

ja bym nie trzymał tego wd kupił nowe rozwiązanie - ten stary dysk ma php które nie jest wspierane, dlaczego sam sobie podkładasz bombe z opoźnionym wybuchem? a tworzenie prostego przesyłana plików w tym systemie też zajmuje za dużo czasu - szkoda go tracić...
Theofilos
Dla mnie nie jest to droższe, bo za dysk nic nie płaciłem. Dysk jest w pewnym sensie wypożyczony. Nie chcę tu rozpisywać się w szczegółach, bo nie o to chodzi.

Na razie dość szybko, dzięki życzliwości różnych osób (forum, blog) znalazłem rozwiązanie do wgrywania plików.
Obecnie problem polega jeszcze na jakimś dziwnym cache’owaniu na poziomie serwera, o czym napisałem w tym wątku.
Potem pozostanie dodanie opcji logowania na stronie. Rozwiązanie też jest dostępne podobno w Internecie. Zatem skorzystam z gotowego źródła dostosowując je do potrzeb.
Poza tym, strona do przesyłania pików będzie dostępna jedynie okresowo, więc jest ograniczone zagrożenie jakimś niepożądanym działaniem wykorzystującym przestarzałe PHP.
W sumie, mógłbym zrezygnować z dodania opcji logowania, ale jeżeli można to zrobić, wykorzystując gotowe rozwiązanie, to warto zrobić.
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.