Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload pliku po wpisaniu hasła
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
damianZG
Witam!
Mam nadzieje, że temat wpisany jest w odpowiednim miejscu;-)

Mam skrypt do upload'u plików na serwer:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  2. transitional.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <title>Upload</title>
  7. </head>
  8. <body>
  9.  
  10. <div>
  11. <form enctype="multipart/form-data" action="wyslij.php" method="POST">
  12. <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
  13. <input name="plik" type="file" />
  14.  
  15. <input type="submit" value="Wyślij" />
  16. </form>
  17. </div>
  18.  
  19. <?php
  20. $plik_tmp = $_FILES['plik']['tmp_name'];
  21. $plik_nazwa = $_FILES['plik']['name'];
  22. $plik_rozmiar = $_FILES['plik']['size'];
  23.  
  24.  
  25. if(is_uploaded_file($plik_tmp))
  26. {
  27. move_uploaded_file($plik_tmp, "pliki/$plik_nazwa");
  28. print("<br>");
  29. print("<br>");
  30. echo "<H2>Plik: <strong>$plik_nazwa</strong> o rozmiarze
  31. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!</H2>";
  32. }
  33. ?>
  34. </body>
  35. </html>
  36.  


ale jest to strona, która nie wymaga logowania więc chciałbym aby upload mógł być zrobiony tylko po wpisaniu hasła. Chciałbym mieć dodatkowe pole na to hasło i dopiero po jego poprawnym wpisaniu mógł nastąpić upload.

Czy mógłby mi ktoś podpowiedzieć jakieś rozwiązanie?
uhutaf
Kod
<?
if ($_GET['wyloguj'])
{
setcookie('haslo', 'zle');
          print '<FORM ACTION="panel.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
}
if ($_COOKIE['haslo']!=dobrze)
  {
echo("<p style=\"center\">");
       $hasla = array ('login' => 'haslo', 'login2' => 'haslo2');
        if (($_POST['uzytkownik']) && ($_POST['haslo'])) {
          if ($hasla[$_POST['uzytkownik']] == $_POST['haslo']) {
           setcookie('haslo', 'dobrze');
          } else {
            print ("Wpisano niepoprawne dane o użytkowniku i haśle.<BR>");
            print ('<A HREF="panel.php">Wróć</A> i spróbuj ponownie.');
            exit;
          }
        } else {
          print '<FORM ACTION="panel.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
        }
echo("</p>");
  }
?>

Tutaj to co chcesz... A na koniec to:
Kod
<a href="panel.php?wyloguj=tak">WYLOGUJ</a>

Działa na cookie. Masz opcję wyloguj, ale to samo da wyłączenie przeglądarki. Jest dość uniwersalny. Na górze możesz podać loginy i hasła, których możesz używać. Drugi kod odpowiedzialny za wylogowywanie nie musi być w znaczniku<? ?> winksmiley.jpg I to tyle tongue.gif



















Trochę to urozmaiciłem winksmiley.jpg :
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload</title>
</head>
<body>
<?
if ($_GET['wyloguj'])
{
setcookie('haslo', 'zle');
          print '<FORM ACTION="przeslij.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
}
if ($_COOKIE['haslo']!=dobrze)
{
echo("<p style=\"center\">");
       $hasla = array ('login' => 'haslo', 'login2' => 'haslo2');
        if (($_POST['uzytkownik']) && ($_POST['haslo'])) {
          if ($hasla[$_POST['uzytkownik']] == $_POST['haslo']) {
           setcookie('haslo', 'dobrze');
          } else {
            print ("Wpisano niepoprawne dane o użytkowniku i haśle.<BR>");
            print ('<A HREF="przeslij.php">Wróć</A> i spróbuj ponownie.');
            exit;
          }
        } else {
          print '<FORM ACTION="przeslij.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
        }
echo("</p>");
}
?>
<div>
<form enctype="multipart/form-data" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
<input name="plik" type="file" />
<input type="submit" value="Wyślij" />
</form>
</div>
<?
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
if(is_uploaded_file($plik_tmp))
{
move_uploaded_file($plik_tmp, "pliki/$plik_nazwa");
print("<br />");
print("<br />");
echo "<H2>Plik: <strong>$plik_nazwa</strong> o rozmiarze
<strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!</H2>";
}
echo("Pliki znajdujące się w katalogu <u>pliki</u>:<ul>");
if ($a = opendir('pliki')) {
   while (false !== ($file = readdir($a))) {
       if ($file != "." && $file != "..") {
           echo "<li><a href=\"pliki/$file\">$file</a></li>";
       }
   }
   closedir($a);
}
echo("</ul>");
?>
<a href="przeslij.php?wyloguj=tak">WYLOGUJ</a>
</body>
</html>

tongue.gif plik ma nazwę przeslij.php
damianZG
Wielkie dzięki za pomoc, trochę za bardzo poszalałeś, ale chodzi super!
webdice
Ostatnio pisałem na szybko znajomemu.

  1. <?php
  2.  
  3. if( empty($_POST) ) {
  4.  
  5. ?>
  6. <html>
  7. <head>
  8. <title>Upload</title>
  9.  
  10. <style>
  11. .container{ margin:auto; width:500px; }
  12. .field{ float:left; margin:5px; width: 500px; }
  13. label{ float:left; width:70px; }
  14. input{ background-color:#FFFFFF; border:1px #000000 solid; color:#000000; font-family:tahoma; padding:3px; }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="container">
  19. <form action="" enctype="multipart/form-data" method="post">
  20. <div class="field">
  21. <label>Haslo:</label>
  22. <input name="password" type="password" />
  23. </div>
  24. <div class="field">
  25. <label>Plik:</label>
  26. <input name="file" type="file" />
  27. </div>
  28. <div class="field">
  29. <label> </label>
  30. <input name="send" type="submit" value="OK" />
  31. </div>
  32. </form>
  33. </div>
  34. </body>
  35. </html>
  36. <?php
  37.  
  38. }
  39. else if( ( $_POST['send'] == 'OK' ) && ( $_POST['password'] == 'haslo' ) ) {
  40. if( is_uploaded_file( $_FILES['file']['tmp_name'] ) ) {
  41. if( move_uploaded_file( $_FILES['file']['tmp_name'], 'uploads/p.jpg' ) ) {
  42. header( 'location: /' );
  43. else
  44. print 'Cos tam zle, sprobuj ponownie.';
  45. }
  46. }
  47. else
  48. print 'Cos tam zle, sprobuj ponownie.';
  49.  
  50. ?>


Przerób sobie tak, aby nazwa pliku była dynamiczna.
uhutaf
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload</title>
</head>
<body>
<?
if (!($_POST[haslo]))
{
          print '<FORM ACTION="plik.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
} else {
       $hasla = array ('login' => 'haslo');
        if (($_POST['uzytkownik']) && ($_POST['haslo'])) {
          if ($hasla[$_POST['uzytkownik']] == $_POST['haslo']) {
          } else {
            print ("Wpisano niepoprawne dane o użytkowniku i haśle.<BR>");
            print ('<A HREF="przeslij.php">Wróć</A> i spróbuj ponownie.');
            exit;
          }
        } else {
          print '<FORM ACTION="plik.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
        }
}
?>



I reszta
damianZG
Cytat(uhutaf @ 26.10.2009, 15:55:15 ) *
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload</title>
</head>
<body>
<?
if (!($_POST[haslo]))
{
          print '<FORM ACTION="plik.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
} else {
       $hasla = array ('login' => 'haslo');
        if (($_POST['uzytkownik']) && ($_POST['haslo'])) {
          if ($hasla[$_POST['uzytkownik']] == $_POST['haslo']) {
          } else {
            print ("Wpisano niepoprawne dane o użytkowniku i haśle.<BR>");
            print ('<A HREF="przeslij.php">Wróć</A> i spróbuj ponownie.');
            exit;
          }
        } else {
          print '<FORM ACTION="plik.php" METHOD=POST>';
          print '<TABLE><TR><TD>Użytkownik: </TD><TD><INPUT TYPE="text" ';
          print "NAME=\"uzytkownik\" VALUE=\"".$_POST['uzytkownik']."\"></TD></TR>";
          print '<TR><TD>Hasło: </TD><TD><INPUT TYPE="password" ';
          print 'NAME="haslo"></TD></TR></TABLE>';
          print '<INPUT TYPE="submit" VALUE="Wyślij">';
          print '</FORM>';
          exit;
        }
}
?>



I reszta



przerobiłem sobie troche ten twoj wczesniejszy skrypt i pięknie śmiga!
Wielkie dzięki za pomoc!
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-2024 Invision Power Services, Inc.