Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z uploadem pliku na serwer
Forum PHP.pl > Forum > Przedszkole
sunpietro
Mam problem ze skryptem uploadu pliku na serwer i wstawieniem danych o nim oraz linku do bazy.
Co tutaj jest źle? Po wypełnieniu fomularza i kliknięciu wyślij, w ogóle nie wyświetla nic, nawet komunikatów błędu.
  1. <h1>Upload pliku na serwer</h1>
  2.      <form action="upload.php?plik=dodaj" method="post" enctype="multipart/form-data"  name="form1">
  3.              <input name="plik" type="file" size="50"/>
  4.              <input name="max_file_size" type="hidden" value="1048576" /><br/>
  5.              <input value="Wyślij plik" type="submit" />
  6.      </form>
  7.      <form method="post" action="upload.php?plik=dodaj">
  8.          <label for="nazwa_filmu">Nazwa filmu: </label>
  9.          <input type="text" name="nazwa_filmu" id="nazwa_filmu"><br/>
  10.          <?php
  11.          include('connection.php');
  12.          $result=@mysql_query("SELECT kategoria_id, kategoria_nazwa FROM kategorie_filmow");
  13.          
  14.          echo '<label for="wybor_kategoria">Wybierz kategorię filmową:</label>
  15.          <select name="kategorie">';
  16.          while($row=mysql_fetch_assoc($result))
  17.          {
  18.              $kategoria_id=$row['kategoria_id'];
  19.              $kategoria_nazwa=$row['kategoria_nazwa'];
  20.              echo '<option value='.$kategoria_id.'>'.$kategoria_nazwa.'</option>';
  21.          }
  22.          echo '</select>';
  23.          ?>
  24.          </select><br/>
  25.          <label for="opis_filmu">Opis filmu: </label>
  26.          <textarea id="opis_filmu" cols="50" rows="5"></textarea><br/>
  27.      </form>
  28.      <?php
  29.      if(isset($_POST['submit']) && isset($_GET['plik']) && $_GET['plik']=='dodaj')
  30.      {
  31.          if(empty($_POST['kategorie']) || empty($_POST['nazwa_filmu']) || empty($_POST['opis_filmu']))
  32.          {
  33.              echo "Musisz wypełnić wszystkie pola";
  34.                      exit;
  35.          }
  36.          $wybrana_kategoria=$_POST['kategorie'];
  37.          $nazwa=$_POST['nazwa_filmu'];
  38.          $opis=$_POST['opis_filmu'];
  39.          $autor=$_SESSION['user_id'];
  40.          $data=date('d.m.Y, H:i');
  41.          $p_pojemnosc=$_FILES['plik']['size'];
  42.          $p_typ=$_FILES['plik']['type'];
  43.          if( strpos( $p_typ, 'video/x-flv' ) === false )
  44.                 die( 'Wybrany plik nie plikiem flv.' );
  45.          $p_nazwa=$_FILES['plik']['name'];
  46.          $p_smiec=$_FILES['plik']['tmp_name'];
  47.          
  48.          $p_roz= array_pop(explode(".", $p_nazwa));
  49.          
  50.          $max_size=round(($_POST['max_file_size']/2048576),3)."MB";
  51.  
  52.          $poj_MB=round(($p_pojemnosc/2048576),2).'MB';
  53.  
  54.          $p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
  55.          $folder="film/";
  56.          
  57.          if ($p_pojemnosc <= 0)
  58.          {
  59.              echo ("Plik jest pusty nie mogę go przesłać <b>".$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
  60.              echo "<a href=index.php>Wracaj ...</a>";
  61.              exit;
  62.          }
  63.          if ($poj_MB > $max_size)
  64.          {
  65.              echo("Plik jest za duży maksymalnie można wysłać <b>".$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$poj_MB.$f_koniec."</b></i><br />");
  66.              echo "<a href=index.php>Wracaj ...</a>";
  67.              exit;
  68.          }
  69.          if (file_exists($folder.$p_nazwa_zm))
  70.          {
  71.              echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />");
  72.              echo "<a href=index.php>Wracaj ...</a>";
  73.              exit;
  74.          }
  75.          else
  76.          {
  77.              if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
  78.                  exit('Nie można zachować pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');
  79.      
  80.              echo "Przesłanie udało się - <b>".$p_nazwa."</b>"." ".$poj_MB."<br />";
  81.              $path_file=$folder.$p_nazwa_zm;
  82.              include('connection.php');
  83.              $zapytanie=mysql_query("INSERT INTO film (film_nazwa, film_kategoria, film_autor, film_opis, film_data_dodania, film_link) VALUES ('$nazwa','$kategoria','$autor','$opis','$data','$path_file')");
  84.              echo "<a href=index.php>Wracaj ...</a>";
  85.          }
  86.      }
  87.      ?>


Bardzo bym prosił o pomoc lub wskazówki.
golaod
A ja poproszę o wstawienie kodu w odpowiedni tag dla php bo nie chce mi się w ten sposób analizować kodu.
sunpietro
musiałem ręcznie wstawić znacznik
  1. <?php
  2. ..
  3. ?>
inaczej nie chciał się wstawić
golaod
Włącz raportowanie błędów error_reporting(E_ALL);
Bo nie wiem czy błąd Ci się wywala na zapytaniu, na połączeniu z bazą czy gdzie indziej (i tu od razu dodam zamiast @mysql_.... zrób mysql_....() or die(mysql_error());
sunpietro
jak mam to włączyć?
----->
włączyłem uzywając coś takiego:
  1. <?php
  2.    ini_set("display_errors", 1);
  3. ?>
ale nic się nie dzieje
golaod
display_errors jest standardowo nastawione na 1 więc akurat to nie jest potrzebne.
A zamieniłeś to, co Ci pisałem odnośnie '@' i or die(mysql_error()); ?
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.