• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zabezpieczyć wysyłanie pustych formularzy?

0 głosów
1,297 wizyt
pytanie zadane 22 grudnia 2015 w PHP przez Paweł123 Nałogowiec (33,540 p.)

Cześć, próbuję zabezpieczyć formularz przed wysyłaniem pustych dany. Jednak coś mi nie wychodzi. Kiedy wysyłam pusty formularz to i tak pojawi mi się wiadomość, że wszystko przebiegło pomyślnie. Wiecie co robię źle? 

Wysyłam kod PHP 

<?php
if($_POST[upload]=="1")
    {
        
        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
       
}

if ($to){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
    
  
?>

 

4 odpowiedzi

0 głosów
odpowiedź 22 grudnia 2015 przez migacz100 Mądrala (5,410 p.)
wybrane 22 grudnia 2015 przez Paweł123
 
Najlepsza
Warto też zabezpieczyć przez javascript :v

A co do postu to masz błąd w ifie powinno być $_POST['upload']
komentarz 22 grudnia 2015 przez Paweł123 Nałogowiec (33,540 p.)

Czy tak to powinno być? 

<?php
if($_POST[upload]=="1")
    {
        
        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
       
}

if ($_POST['upload']){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
}
    
 Bo nadal nie działa :/

Jak coś jestem początkujący :P 

 

komentarz 22 grudnia 2015 przez migacz100 Mądrala (5,410 p.)
if($_POST['upload']=="1")
    {

        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
        
}
 

Powinno być tak a ja generalnie od siebie dodał bym takie coś żeby sprawdzało czy jest puste czy nie: 

if($_POST[upload]=="1" && !empty($_POST['tutajnazwainputuodpliku']))
    {
         
        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
        
} else {
echo "ERROR";
}
 

 

komentarz 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)

Zabezpieczyć należy po stronie serwera. Zabezpieczenia nie powinny opierać się na frontendzie.

W JS można zabezpieczyć tylko i wyłącznie w celach estetycznych. Równie dobrze można dodać required dla inputa, ale to takie samo zabezpieczenia jak to:

komentarz 22 grudnia 2015 przez migacz100 Mądrala (5,410 p.)
A czy ja napisałem, że ma zabezpieczać TYLKO w javascript? Czytanie ze zrozumieniem się kłania.
komentarz 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)
To po co o tym wspominałeś, skoro nie ma to żadnego związku z tematem?

Nauczcie się pisać swoje posty na temat!
komentarz 22 grudnia 2015 przez migacz100 Mądrala (5,410 p.)

"Cześć, próbuję zabezpieczyć formularz przed wysyłaniem pustych dany" Totalnie zero związku z tematem.

komentarz 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Dział: "PHP i Symfony", kod w PHP. Więc wspominanie o JS'ie nie ma żadnego związku z tematem.
0 głosów
odpowiedź 22 grudnia 2015 przez Danieter77 Bywalec (2,470 p.)

aha w ifie zmienna to nie ma warunku bravolaugh

0 głosów
odpowiedź 22 grudnia 2015 przez Paweł123 Nałogowiec (33,540 p.)

Teraz nie działa kiedy wysyłam poprawnie. Pokazuje się, że wiadomość nie została wysłana

<?php
if($_POST[upload]=="1")
    {
        
        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
       
}

if($_POST['upload']=="0"){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
}
    
  
?>

 

0 głosów
odpowiedź 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)
edycja 22 grudnia 2015 przez writen
Należy sprawdzić czy pole file nie jest puste.

Według twojego skryptu w prosty sposób można wysłać pusty formularz.
komentarz 22 grudnia 2015 przez Paweł123 Nałogowiec (33,540 p.)

Jednak nie udało mi się zabezpieczyć poprawnie.

<?php
if($_POST[upload]=="1")
    {
         
        $to = "uploads/".$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $to);
        
}
 
if($_FILES['file']=="0"){
 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
}
else{
     print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
     
   
?>

 

czemu to nie działa?? 

 

komentarz 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)
if(!empty($_FILES['file'])) {
          
    $to = "uploads/".$_FILES['file']['name'];
    $upload = move_uploaded_file($_FILES['file']['tmp_name'], $to);

    if(!upload) {
        // tutaj błąd wysyłania pliku
    } else {
        // Tutaj sukces, wysyłanie powiodło się.
    }
    
} else {
    // tu wróć do formularza, bo jest pusty
}

 

komentarz 22 grudnia 2015 przez Paweł123 Nałogowiec (33,540 p.)

Czy to tak powinno być? 

<?php

if(!empty($_FILES['file'])) {
           
    $to = "uploads/".$_FILES['file']['name'];
    $upload = move_uploaded_file($_FILES['file']['tmp_name'], $to);
 
    if(!upload) {
        print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">"; // tutaj błąd wysyłania pliku
    } else {
         print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";// Tutaj sukces, wysyłanie powiodło się.
    }
     
} else {
        print "<meta http-equiv=\"refresh\" content=\"0;URL=pusty.php\">"; // tu wróć do formularza, bo jest pusty
}
     
   
?>

 

komentarz 22 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Myślę, że w miarę może być.
komentarz 22 grudnia 2015 przez Paweł123 Nałogowiec (33,540 p.)
edycja 22 grudnia 2015 przez Paweł123
Nie działa :(

Co można jeszcze zrobić, aby zadziałało?
komentarz 22 grudnia 2015 przez efiku Szeryf (75,160 p.)
Pomyśleć, a nie kopiować bezmyślnie gotowy kod ^^. Jak widzisz if(!upload) , brakuje dolara.
komentarz 23 grudnia 2015 przez writen Nałogowiec (29,060 p.)

Jak widać, zapomniałem dodać cheeky

Podobne pytania

0 głosów
2 odpowiedzi 405 wizyt
pytanie zadane 1 marca 2016 w HTML i CSS przez Filip2248 Dyskutant (8,840 p.)
0 głosów
1 odpowiedź 220 wizyt

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...