Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload pliku do bazy lub na serwer
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
szamo
w orginale skrypt wyglada tak:

  1. <html>
  2. <head></head>
  3. <body>
  4.  
  5. <?php
  6. // code that will be executed if the form has been submitted:
  7.  
  8. if ($submit) {
  9.  
  10.     // connect to the database
  11.     // (you may have to adjust the hostname,username or password)
  12.  
  13.     MYSQL_CONNECT("host","root","pass");
  14.     mysql_select_db("db_name");
  15.  
  16.     $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
  17.  
  18.     $result=MYSQL_QUERY("INSERT INTO img (description,bin_data,filename,filesize,filetype) ".
  19.         "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
  20.  
  21.     $id= mysql_insert_id();
  22.     print "<p>This file has the following Database ID: <b>$id</b>";
  23.  
  24.     MYSQL_CLOSE();
  25.  
  26. } else {
  27.  
  28.     // else show the form to submit new data:
  29. ?>
  30.  
  31.     <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
  32.     Opis pliku:<br>
  33.     <input type="text" name="form_description"  size="40">
  34.     <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
  35.     <br>Plik:<br>
  36.     <input type="file" name="form_data"  size="40">
  37.     <p><input type="submit" name="submit" value="submit">
  38.     </form>
  39.  
  40. <?php
  41.  
  42. }
  43.  
  44. ?>
  45.  
  46. </body>
  47. </html>


chciałem go sobie przerobić i wyszło mi takie cuś:

  1. <HTML>
  2. <HEAD>
  3. </HEAD>
  4. <?
  5. require("polacz.htm");
  6.  
  7. function usun_zdj($id_obrazki, $tabela = "obrazki") {
  8.    $query = "delete from $tabela where id='$id_obrazki'";
  9.    $wynik = mysql_query($query);
  10.    if(!$wynik) {
  11.       print "Nie udało się.";
  12.    } else {
  13.       print "Udało się.<br>Poprawiłem ".mysql_affected_rows()." wiersz(y).";
  14.    }
  15. }
  16.  
  17. function edytuj_zdj($id_obrazki, $tabela, $form_description, $data, $form_data_name,
  18. $form_data_size, $form_data_type, $rodzaj) {
  19.    if(!$id_obrazki) {
  20.       $pobierz = mysql_query("select*from obrazki order by rodzaj,id");
  21.       echo "<table>";
  22.       echo "<tr><td>Akcja</td><td>Nazwa</td><td>Rodzaj</td><td>Obrazek</B></td></tr>";
  23.       while ($rekord = mysql_fetch_array($pobierz)) {
  24.            echo "<tr><td><a href=obrazki.php?akcja=edit&news=$rekord[id]>edytuj</a></td>
  25. <td><a href=obrazki.php?akcja=delete&news=$rekord[id]>usuń</a></td><td>$rekord[filename]</td><td>$rekord[rodzaj]</td>
  26. <td><img src=getdata.php?id=$rekord[id]></td></tr>";
  27.       }
  28.       echo "</table>";
  29.    } else {
  30.       if((!$description) || (!$filename) || (!$rodzaj)) {
  31.     $query = "select*from $tabela where id='$id_obrazki'";
  32.     $wynik = mysql_query($query);
  33.     $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
  34.     print "<form method="post" action=" $PHP_SELF " enctype="multipart/form-data">";
  35.     $rekord = mysql_fetch_array($wynik);
  36.       print "<table>";
  37.       print "<tr><td>EDYCJA OBRAZKA</td></tr></table>";
  38.       print "<table>";
  39.       print "<tr><td>Opis obrazka:</td>";
  40.       print "<td><input type="text" name="form_description" value="$rekord[form_description]"></td></tr>";
  41.       print "<input type="hidden" name="MAX_FILE_SIZE" value="10000000">";
  42.       print "<tr><td>Plik:</td>";
  43.       print "<td><input type="file" name="form_data" value="$rekord[form_data]"></td><</tr>";
  44.       print "<tr><td>Rodzaj:</td>";
  45.       print "<td>";      
  46.     print "<select name=rodzaj>";
  47.       print "<option value=1>Logo - news
  48.            <option value=2>Logo - mecz
  49.              <option value=3>Logo - nast./poprz.
  50.              <option value=4>Logo - zawodnik
  51.              <option value=5>Logo - inne";
  52.       print "</select>";
  53.       print "</td></tr>";
  54.       
  55.       print "<tr>";
  56.       print "<input type="submit" value="Zmień"></td></tr>";      
  57.  
  58.       print "</form></table>";
  59.       } else {
  60.          $query = "update $tabela set form_description='$form_description',
  61. data='$data', form_data_name='$form_data_name', form_data_size='$form_data_size',
  62. form_data_type='$form_data_type', rodzaj='$rodzaj' where id='$id_zdjecia'";
  63.          $wynik = mysql_query($query);
  64.          if(!$wynik) {
  65.             print "Nie udało się :(<br>".mysql_error();
  66.          } else {
  67.             print "Udało się.<br>Poprawiłem ".mysql_affected_rows()." wiersz(y).";
  68.          }
  69.       }
  70.    }
  71. }
  72.  
  73. function wyswietl_zdj() {
  74. require("polacz.htm");
  75.    $pobierz = mysql_query("select*from obrazki order by rodzaj,id");
  76.       print "<table>";
  77.       print "<tr><td>ID</td><td>Nazwa</td><td>Rodzaj</td><td>Obrazek</td></tr>";   
  78.    while ($rekord = mysql_fetch_array($pobierz)) {
  79.     print "<tr><td>$rekord[id]</td><td>$rekord[filename]</td>
  80. <td>$rekord[rodzaj]</td><td><img src=getdata.php?id=$rekord[id]></td></tr>";
  81.    }
  82. }
  83.  
  84. function dopisz_zdj($czy, $akcja, $description, $bin_data, $filename, $filesize, $filetype, $rodzaj) {
  85.     if($submit!="tak") {
  86.     echo "<form method="post" action="$PHP_SELF;" enctype="multipart/form-data">";
  87.       echo "<table>";
  88.       echo "<tr><td>DODAJ OBRAZEK</td></tr></table>";
  89.       echo "<table>";
  90.       echo "<tr><td>Opis obrazka:</td>";
  91.       echo "<td><input type="text" name="form_description"></td></tr>";    
  92.       echo "<input type="hidden" name="MAX_FILE_SIZE" value="10000000">";
  93.       echo "<tr><td>Plik:</td>";
  94.       echo "<td><input type="file" name="form_data"></td></tr>";
  95.       echo "<tr><td>Rodzaj:</td>";
  96.       echo "<td>";      
  97.       echo "<select name=rodzaj>";
  98.       echo "<option value=1>Logo - news
  99.                   <option value=2>Logo - mecz
  100.                   <option value=3>Logo - nast./poprz.
  101.                   <option value=4>Logo - zawodnik
  102.                   <option value=5>Logo - inne";
  103.         echo "</select>";
  104.         echo "</td></tr>";    
  105.     
  106.         echo "<tr><td>";
  107.         echo "<input type="submit" name="submit" value="Dodaj"></td></tr>";      
  108.  
  109.         echo "</form></table>";    
  110.    } else {
  111.     $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
  112.       $nowy = "insert into obrazki (description, bin_data, filename,
  113. filesize, filetype, rodzaj) values ('$form_description', '$data',
  114. '$form_data_name', '$form_data_size', '$form_data_type', '$rodzaj')";
  115.       $nowy_wpis = mysql_query($nowy);
  116.       if($nowy_wpis) {
  117.          echo "Adres: $adres<br>Dodałem nowy obrazek.";
  118.       } else {
  119.          echo "Nie udało się dodać obrazka.";
  120.       }
  121.    }
  122. }
  123.  
  124. switch($akcja) {
  125.    case "dopisz_zdj":
  126.    dopisz_zdj($czy, $akcja, $description, $bin_data, $filename, $filesize, $filetype, $rodzaj);
  127.    break;
  128.    case "delete_zdj":
  129.    usun_zdj($id_obrazki);
  130.    break;
  131.    case "edit_zdj":
  132.    edytuj_zdj($id_obrazki, "obrazki", $description, $bin_data, $filename, $filesize, $filetype, $rodzaj);
  133.    break;
  134.    case "edit_now_zdj":
  135.    edycja_zdj($id_obrazki, "obrazki", $description, $bin_data, $filename, $filesize, $filetype, $rodzaj);
  136.    break;
  137.    default:
  138.    wyswietl_zdj();
  139.    break;
  140. }
  141. ?>
  142. </BODY>
  143. </HTML>


oczywiście nie pisałbym tutaj, gdyby wszystko chodziło... no właśnie dlaczego nie chodzi? gdzie jest błąd? próbowałem już na kilka sposobów to zmieniać, ale nic mi nie wychodzi... jeżeli ktoś ma jakieś uwagi/zastrzeżenia to bardzo proszę o pomoc.

Chyba, że ktoś dysponuje podobnym skryptem, który albo wrzuca plik jako BLOB do sql'a albo zrzuca go na serwer jako ftp i w bazie danych wpisuje nazwę pliku. Warunkiem jest późniejsza możliwość edycji pliku i kolumn w bazie danych. Usunięcie pliku z serwera i danych z bazy.

Z góry wielkie dzięki za pomoc withstupidsmiley.gif
Lars
może kwestia Register_globals ? spróbuj na jakims innym serwerze
albo dopisz:

  1. <?php extract($_REQUEST); ?>
revyag
Nie widze tu kodu odpowiedzialnego za wrzucanie obrazków na serwer.
szamo
Cytat(revyag @ 2005-11-09 10:03:22)
Nie widze tu kodu odpowiedzialnego za wrzucanie obrazków na serwer.

ok, ok, bo jak na razie ten pierwszy wrzucał wszystko jako BLOB do bazy danych, a drugi miał robić to samo, tylko został powiedzmy 'zmodyfikowany' i ja chciałbym wiedzieć, co w nim niedziała. Gdzie zrobiłem błąd, bo tyle kombinacji już robiłem, że po prostu sam się w tym gubie.

Chyba, że ktoś będzie w stanie zmodyfikować ten drugi skrypt, żeby zamiast plik do bazy danych wrzucał na serwer do katalogu, a w bazie danych zapisywał informacje o nim (łącznie z lokalizacją). Żeby można było usunąć wpis z bazy danych wraz z plikiem z serwera, albo zedytować wpis w bazie i nadpisać plik na serwerze.

Cytat(Lars @ 2005-11-09 06:40:00)
może kwestia Register_globals ? spróbuj na jakims innym serwerze
albo dopisz:
  1. <?php extract($_REQUEST); ?>


Że tak się wyraże... jestem zielony, gdzie to wstawić?

Pozdrawiam i z góry dziękuje 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.