Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Problem z uploadem...
Forum PHP.pl > Forum > Przedszkole
Darill
Mam problem.
Jestem poczatkujacy i nie chodzi mi scrypt z ksiazki Vademecum programisty z rozdzialu 28.
Nie wiem co sie dzieje sprawdzalem z ksiazka ale dalej mi nie chce pojsc.
Wszystko chodzi oprocz zaladunku pliku na server i podania nazwy do bazy danych.
Mam nadzieje ze mi pomozecie.

  1. <?php
  2.  
  3. include ('funkcje_dolacz.php');
  4.  
  5. if (isset($_REQUEST['artykul']))
  6. $a = pobierz_rekord_artykulu($_REQUEST['artykul']);
  7.  
  8. ?>
  9.  
  10. <form action="artykul_wyslij.php" method="post" enctype="multipart/form-data">
  11. <input type="hidden" name="artykul" value="<?php print $_REQUEST['artykul'];?>">
  12. <input type="hidden" name="przeznaczenie" 
  13. value="<?php print $_SERVER['HTTP_REFERER'];?>">
  14. <table>
  15.  
  16. <tr>
  17. <td>Nagłówek<td>
  18. </tr>
  19. <tr>
  20. <td><input size="80" name="naglowek"
  21. value="<?php print $a['naglowek'];?>"></td>
  22. </tr>
  23.  
  24. <tr>
  25. <td>Strona</td>
  26. </tr>
  27. <tr>
  28. <td>
  29. <?php 
  30. if (isset($_REQUEST['artykul']))
  31. {
  32. $sql = "select s.kod, s.opis
  33. from strony s, uprawnienia_autora ua, artykuly a
  34. where s.kod = ua.strona and
  35. ua.autor = a.autor and
  36. a.id = ".$_REQUEST['artykul'];
  37. }
  38. else
  39. {
  40. $sql = "select s.kod, s.opis
  41. from strony s, uprawnienia_autora ua
  42. where s.kod = ua.strona and
  43. ua.autor = '{$_SESSION['uwierz_uzyt']}'";
  44. }
  45. echo zapytanie_select('strona', $sql, $a['strona']);
  46. ?>
  47. </td>
  48. </tr>
  49.  
  50. <tr>
  51. <td> Tekst artykułu (może zawierać znaczniki HTML) </td>
  52. </tr>
  53. <tr>
  54. <td><textarea cols="80" rows="7" name="tekst_artykulu"
  55.  wrap="virtual"><?php echo $a['tekst_artykulu'];?></textarea>
  56. </td>
  57. </tr>
  58.  
  59. <tr>
  60. <td> Lub wysłanie pliku HTML </td>
  61. </tr>
  62. <tr>
  63. <td><input type="file" name="html" size="40"></td>
  64. </tr>
  65.  
  66. <tr>
  67. <td>Obrazek</td>
  68. </tr>
  69. <tr>
  70. <td><input type="file" name="obrazek" size="40"></td>
  71. </tr>
  72.  
  73. <?php 
  74. if ($a[obrazek]) {
  75. $rozmiar  = GetImageSize('../'.$a['obrazek']);
  76. $szerokosc = $rozmiar[0];
  77. $wysokosc = $rozmiar[1];
  78. ?>
  79. <tr>
  80. <td>
  81. <img src="<?php echo '../'.$a['obrazek'];?>
  82. width="<?php print $szerokosc;?>" height="<?php print $wysokosc;?>">
  83. </td>
  84. </tr>
  85. <?php 
  86. }
  87. ?>
  88.  
  89. <tr>
  90. <td align="center"><input type="submit" value="Wysłanie"></td>
  91. </tr>
  92.  
  93. </table>
  94. </form>


  1. <?php
  2.  
  3. // artykul_wyslij.php
  4. // dodanie / modyfikacja rekordu artykułu
  5.  
  6. include_once('funkcje_dolacz.php');
  7.  
  8. $lacz = lacz_bd();
  9.  
  10. $naglowek = $_REQUEST['naglowek'];
  11. $strona = $_REQUEST['strona'];
  12. $czas = time();
  13.  
  14. if ( (isset($_FILES['html']['name']) && 
  15.  (dirname($_FILES['html']['type']) == 'text') &&
  16.  is_uploaded_file($_FILES['html']['tmp_name']))) 
  17. {
  18. $tekst_artykulu = file_get_contents($_FILES['html']['tmp_name']);
  19. }
  20. else
  21. {
  22. $tekst_artykulu = $_REQUEST['tekst_artykulu'];
  23. }
  24.  
  25. $tekst_artykulu = addslashes($tekst_artykulu);
  26.  
  27. if (isset($_REQUEST['artyklu']) && $_REQUEST['artykul']!='') 
  28. {  // uaktualnienie
  29. $artykul = $_REQUEST['artykul'];
  30.  
  31. $sql = "update artykuly
  32. set naglowek = '$naglowek', 
  33. tekst_artykulu = '$tekst_artykulu',
  34. strona = '$strona',
  35. zmodyfikowany = $czas
  36. where id = $artykul";
  37. }
  38. else {  // nowy artykuł
  39. $sql = "insert into artykuly 
  40. (naglowek, tekst_artykulu, strona, autor, utworzony, zmodyfikowany)
  41. values 
  42. ('$naglowek', '$tekst_artykulu', '$strona', '"
  43.  .$_SESSION['uwierz_uzyt']."', $czas, $czas)";
  44. }
  45.  
  46. $wynik = $lacz->query($sql);
  47.  
  48. if (!$wynik)
  49. {
  50. echo " Wystąpił błąd bazy danych podczas wykonywania <pre>$sql</pre>";
  51. echo mysqli_error();
  52. }
  53.  
  54.  
  55. if ( (isset($_FILES['image']['name']) && 
  56. is_uploaded_file($_FILES['image']['tmp_name']))) 
  57. {
  58.  
  59. if (!isset($_REQUEST['artykul']) || $_REQUEST['artykul'] == '')
  60. {
  61. $artykul = mysqli_insert_id($lacz);
  62. }
  63. $typ = basename($_FILES['image']['type']);
  64.  
  65. switch ($typ) {
  66. case 'jpeg':
  67. case 'pjpeg':  $nazwapliku = "obrazki/$artykul.jpg";
  68. move_uploaded_file($_FILES['image']['tmp_name'], '../'.$nazwapliku);
  69. $sql = "update artykuly
  70. set obrazek = '$nazwapliku'
  71. where id = $artykul";
  72. $wynik = $lacz->query($sql);
  73. break;
  74. default: echo 'Nieprawidłowy format obrazka: '.
  75. $_FILES['image']['type'];
  76. }
  77. }
  78.  
  79. header('Location: '.$_REQUEST['przeznaczenie']);
  80.  
  81. ?>
nexis
Możesz łaskawie też dać kod pliku funkcje_dolacz.php?
Darill
Jezeli to ma pomoc ...
Ale wszystko chodzi do chwili gdy ma nastapic zaladowanie pliku na server oraz wpis do bazy danych nazwy pliku...

funkcje_dolacz.php
  1. <?php
  2.  
  3. include_once('../funkcje_bazy.php');
  4. include_once('funkcje_uwierz.php');
  5. include_once('funkcje_select.php');
  6.  
  7. ?>


funkje_bazy.php
  1. <?php
  2.  
  3. function lacz_bd()
  4. {
  5.  $wynik = new mysqli ('localhost', 'zawartosc', 'haslo', 'zawartosc'); 
  6.  if (!$wynik)
  7. return false;
  8.  
  9.  return $wynik;
  10. }
  11.  
  12. function pobierz_rekord_autora($nazwa_uz)
  13. {
  14. $lacz = lacz_bd();
  15. $sql = "select * from autorzy where nazwa_uz = '$nazwa_uz'";
  16. $wynik = $lacz->query($sql);
  17. return($wynik->fetch_assoc());
  18. }
  19.  
  20. function pobierz_rekord_artykulu($artykul)
  21. {
  22. $lacz = lacz_bd();
  23. $sql = "select * from artykuly where id = '$artykul'";
  24. $wynik = $lacz->query($sql);
  25. return($wynik->fetch_assoc());
  26. }
  27.  
  28. ?>


funkcje_uwierz.php

  1. <?php
  2. function loguj($nazwa_uz, $haslo)
  3.  
  4. {
  5. // łączenie z bazą danych
  6. $lacz = lacz_bd();
  7. if (!$lacz)
  8. return 0;
  9.  
  10. $wynik = $lacz->query("select * from autorzy
  11.  where nazwa_uz='$nazwa_uz'
  12.  and haslo = sha1('$haslo')");
  13. if (!$wynik)
  14.  return 0;
  15.  
  16. if ($wynik->num_rows>0)
  17.  return 1;
  18. else 
  19.  return 0;
  20. }
  21.  
  22. function sprawdz_uwierz_uzyt()
  23. // sprawdzenie zalogowania i powiadomienie jeżeli nie
  24. {
  25. global $_SESSION;
  26. if (isset($_SESSION['uwierz_uzyt']))
  27. return true;
  28. else
  29. return false;
  30. }
  31.  
  32. function formularz_logowania()
  33. {
  34. ?>
  35. <form action="logowanie.php" method="post">
  36. <table border="0">
  37. <tr>
  38. <td>Nazwa użytkownika</td>
  39. <td><input size="16" name="nazwa_uz"></td>
  40. </tr>
  41. <tr>
  42. <td>Hasło</td>
  43. <td><input size="16" type="password" name="haslo"></td>
  44. </tr>
  45. </table>
  46. <input type="submit" value="Logowanie">
  47. </form>
  48. <?php
  49. }
  50.  
  51. function sprawdz_uprawnienia($nazwa_uz, $artykul)
  52. // sprawdzenie, czy użytkownik ma prawo zmieniać wskazany artykuł
  53. {
  54. // połączenie z bazą danych
  55. $lacz = lacz_bd();
  56. if (!$lacz)
  57. return 0;
  58.  
  59. if(!$_SESSION['uwierz_uzyt'])
  60. return 0;
  61.  
  62. $wynik = $lacz->query("select * from uprawnienia_autora ua, artykuly a
  63.  where ua.autor = '{$_SESSION['uwierz_uzyt']}' and
  64.  ua.strona = a.strona and
  65.  a.id = $artykul
  66. ");
  67. if (!$wynik)
  68. {
  69. return 0;
  70. }
  71. if ($wynik->num_rows>0)
  72. {
  73. return 1;
  74. }
  75. else 
  76. {
  77. return 0;
  78. }
  79. }
  80.  
  81. ?>


funkcje_select.php
  1. <?php
  2.  
  3. function zapytanie_select($nazwa, $zapytanie, $domyslny='')
  4. {
  5.  
  6. $lacz = lacz_bd();
  7.  
  8. $wynik = $lacz->query($zapytanie);
  9.  
  10. if (!$wynik)
  11. return(0);
  12.  
  13. $select = "<SELECT NAME=\"$nazwa\">";
  14. $select .= "<OPTION VALUE=\"\">-- Wybór --</OPTION>";
  15.  
  16. for ($i=0; $i < $wynik->num_rows; $i++) {
  17. $wiersz = $wynik->fetch_row();
  18. $opt_kod = $wiersz[0];
  19. $opt_opis = $wiersz[1];
  20. $select .= "<OPTION VALUE=\"$opt_kod\"";
  21. if ($opt_kod == $domyslny) {
  22. $select .= ' SELECTED';
  23. }
  24. $select .= ">[$opt_kod] $opt_opis</OPTION>";
  25. }
  26. $select .= "</SELECT>\n";
  27.  
  28. return($select);
  29.  
  30. }
  31. ?>
erix
Przyjrzyj się uważnie. winksmiley.jpg
Cytat
  1. <?php
  2. if (isset($_REQUEST['artyklu']) && $_REQUEST['artykul']!='')
  3. ?>
Darill
Tak juz to poprawilem dzieki...
Powodowalo mi to duplikowanie ale nie ma wplywu na moj problem...
Dalej nie dziala mi ta czesc scryptu i nie wiem dlaczego....
  1. <?php
  2. if ( (isset($_FILES['image']['name']) && 
  3. is_uploaded_file($_FILES['image']['tmp_name']))) 
  4. {
  5.  
  6. if (!isset($_REQUEST['artykul']) || $_REQUEST['artykul'] == '')
  7. {
  8. $artykul = mysqli_insert_id($lacz);
  9. }
  10. $typ = basename($_FILES['image']['type']);
  11.  
  12. switch ($typ) {
  13. case 'jpeg':
  14. case 'pjpeg':  $nazwapliku = "obrazki/$artykul.jpg";
  15. move_uploaded_file($_FILES['image']['tmp_name'], '../'.$nazwapliku);
  16. $sql = "update artykuly
  17. set obrazek = '$nazwapliku'
  18. where id = $artykul";
  19. $wynik = $lacz->query($sql);
  20. break;
  21. default: echo 'Nieprawidłowy format obrazka: '.
  22. $_FILES['image']['type'];
  23. }
  24. }
  25. ?>
erix
Nie działa, to znaczy? Wyświetla jakiś błąd, czy ani be, ani me?
Darill
Tak jak pisalem na gorze wszystko chodzi do ostatniej czesci scryptu ktora powinna wzocic plik do katalogu a jego nowa nazwe zapisac do bazy danych...
Ani jedno ani drugie nie jest wykonane...
Posiadam konto na bezplatnym serwerze ...
Czy jest mozliwosc ze moge miec zablokowane upload obrazow ?
Jak to sprawdzic ?
erix
Cytat
Posiadam konto na bezplatnym serwerze ...

Prawdopodobnie przenosisz plik do katalogu, który ma inny UID, a włączony jest safemode.
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.