Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sesje. Problem z nazwą pliku
Forum PHP.pl > Forum > PHP
felixk
Witam, mam formularz do uploadu plików i potrzebuje zapisać w sesji nazwę pliku ładowanego, która jest w zmiennej $plik_nazwa a potem w innym pliku tą nazwę odczytać. Do niedawna
spisywało się świetnie, ale teraz muszę to zmienić z racji aktualizacji wersji PHP do 5.3 w firmie hostingowej i nie wiem jak to zapisać z wykorzystaniem $_SESSION[]. Zechciałby ktoś pomóc?

formularz:

  1. <form enctype="multipart/form-data" action="dodaj_dokument.php" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="20971520" />
  3. <input name="plik" type="file" />
  4. <input type="submit" value="Wyślij plik" />
  5. </form>



dodaj_dokument.php:

  1. <?php
  2.  
  3.  
  4. $_SESSION['plik']=$plik_nazwa;
  5. if(isset($_SESSION['plik'])) { echo 'działa';} else { echo 'nie działa'; }
  6. $a = var_dump(plik_nazwa);
  7.  
  8.  
  9. $dozwolone = array (mp4, avi, wmv, mp3, wav, wma, doc, docx, pdf, rar, zip);
  10.  
  11. $plik_tmp = $_FILES['plik']['tmp_name'];
  12. $plik_nazwa = $_FILES['plik']['name'];
  13. $plik_rozmiar = $_FILES['plik']['size'];
  14.  
  15. $roz = end(explode(".", $plik_nazwa));
  16.  
  17. $tab = explode('.', $plik_nazwa);
  18. for($i=0; $i<=count($tab)-2; $i++){
  19. $nazwa .= $tab[$i];
  20. }
  21.  
  22. $plik_nazwa = strtolower($plik_nazwa);
  23. $plik_nazwa = str_replace("ż","z",$plik_nazwa);
  24. $plik_nazwa = str_replace("ą","a",$plik_nazwa);
  25. $plik_nazwa = str_replace("Ľ","z",$plik_nazwa);
  26. $plik_nazwa = str_replace("ę","e",$plik_nazwa);
  27. $plik_nazwa = str_replace("ł","l",$plik_nazwa);
  28. $plik_nazwa = str_replace("Ł","L",$plik_nazwa);
  29. $plik_nazwa = str_replace("ś","s",$plik_nazwa);
  30. $plik_nazwa = str_replace("ń","n",$plik_nazwa);
  31. $plik_nazwa = str_replace("ć","c",$plik_nazwa);
  32. $plik_nazwa = str_replace("ó","o",$plik_nazwa);
  33. $plik_nazwa = str_replace(" ", "_",$plik_nazwa);
  34.  
  35. if (empty($plik_nazwa))
  36. {echo 'dalsze instrukcje';
  37. die();
  38. }
  39.  
  40. if (in_array($roz, $dozwolone))
  41. {
  42. if(is_uploaded_file($plik_tmp))
  43. {
  44. if(move_uploaded_file($plik_tmp, "data/files/$plik_nazwa"))
  45. {
  46. echo 'dalsze instrukcje';
  47. }
  48. else
  49. {
  50. echo 'Wystąpił problem z przesyłaniem pliku. Spróbuj ponownie poĽniej<br /> <a href="java script:history.go(-1)">Powrót do uploadu</a>';
  51. }
  52. }
  53. else
  54. {
  55. echo "Plik nie zostal przeslany";
  56. echo "BَD! <a href=\"java script:history.go(-1)\">Powrót do uploadu</a>";
  57. }
  58. }
  59. else
  60. {
  61. echo 'dalsze instrukcje';
  62. }
  63.  
  64. ?>
memory
tak jak napisales $_SESSION['plik']=$plik_nazwa; odczyt

  1.  
  2. function get($name)
  3. {
  4. if (isset($_SESSION[$name])
  5. return $_SESSION[$name];
  6. else return false;
  7. }
  8.  
felixk
Cytat(memory @ 9.04.2012, 11:15:45 ) *
tak jak napisales $_SESSION['plik']=$plik_nazwa; odczyt

  1.  
  2. function get($name)
  3. {
  4. if (isset($_SESSION[$name])
  5. return $_SESSION[$name];
  6. else return false;
  7. }
  8.  


zrobiłem tak:

  1. function get($name)
  2. {
  3. if (isset($_SESSION[$name])
  4. {
  5. return $_SESSION[$name];
  6. }
  7. else
  8. {
  9. return false;
  10. }


W efekcie dostaje:

  1. Parse error: syntax error, unexpected '{'


wygląda na brak "{". Kombinowałem trochę, ale jakoś nie szło tego zrobić
memory
  1. function get($name)
  2.  
  3. {
  4.  
  5. if (isset($_SESSION[$name])
  6.  
  7. {
  8.  
  9. return $_SESSION[$name];
  10.  
  11. }
  12.  
  13. else
  14.  
  15. {
  16.  
  17. return false;
  18.  
  19. }
  20. }
  21.  


Brakuje ci nawiasu.To jest funkcja odczytuje się w taki sposób get('plik');. Możesz normalnie się odwołać do echo $_SESSION['plik'] bez funkcji.
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.