Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Upload plików na serwer
Forum PHP.pl > Forum > Przedszkole
szczalpi
Witam
Mam taki kod do uploadowania plików, który jest widoczny. Kod pobiera plik, lecz nie zmienia jego nazwy na serwerze po "id"_1 oraz nie chce zapisac jego nazwy do bazy.
Kiedy wgram plik na serwer za pomoca echo sql wywoluje "update atrakcje set foto_1='0_1.jpg' where id=''". Gubi gdzieś zmienną $pokaz i nie pobiera id z bazy, ale nie wiem gdzie jest błąd. Proszę o radę.

  1. <?$pokaz=$_GET['pokaz'];
  2. mysql_query("SET NAMES 'latin2'");
  3. $sql="select * from atrakcje where id='$pokaz' ";
  4. $result=mysql_query($sql);
  5. $row=mysql_fetch_array($result);?>
  6. <form action="zdjecia.php" method="POST" enctype="multipart/form-data">
  7. <div style="width:850px">
  8. <div style="float:left;width:300px;padding:10px;border:1px solid red">
  9. <td align="left"><img id="zdjecie" src="foto/<? echo $row['foto_1']; ?>" width="300px"></td>
  10.  
  11. </div>
  12. <div style="float:left;width:450px;margin-left:15px;">
  13. <input type="file" name="zdjecie_1" size="4">
  14. <input class="button_example" type="submit" name="zmien_1" value="Zmień zdjęcia" >
  15. <?php
  16.  
  17. if(isset($_POST['zmien_1']))
  18. {
  19.  
  20.  
  21. if (is_uploaded_file($_FILES['zdjecie_1']['tmp_name'])) {
  22.  
  23.  
  24.  
  25. {
  26.  
  27. $filename = $_FILES["zdjecie_1"]["name"];
  28. $file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
  29. $file_ext = substr($filename, strripos($filename, '.')); // get file name
  30. $filesize = $_FILES["zdjecie_1"]["size"];
  31. $allowed_file_types = array('.jpg','.docx','.rtf','.pdf');
  32.  
  33. if (in_array($file_ext,$allowed_file_types) && ($filesize < 5000000))
  34. {
  35. // Rename file
  36.  
  37. $id=$row['id'];
  38. $zdjecie_1 = $id."_1". $file_ext;
  39. if (file_exists("foto/" . $zdjecie_1))
  40.  
  41. {
  42. // file already exists error
  43. echo "<p>You have already uploaded this file.</p>" ;
  44. echo $row['id'];
  45. }
  46. else
  47. {
  48. move_uploaded_file($_FILES["zdjecie_1"]["tmp_name"], "foto/" . $zdjecie_1);
  49.  
  50.  
  51. include_once("a.php"); $target_file = "foto/$zdjecie_1"; $resized_file = "foto/$zdjecie_1"; $wmax = 800; $hmax = 600; ak_img_resize($target_file, $resized_file, $wmax, $hmax, $zdjecie_1);
  52.  
  53. }
  54. }
  55. elseif (empty($file_basename))
  56. {
  57. // file selection error
  58. echo "Please select a file to upload.";
  59. }
  60. elseif ($filesize > 5000000)
  61. {
  62. // file size error
  63. echo "The file you are trying to upload is too large.";
  64. }
  65. else
  66. {
  67. // file type error
  68. echo "Only these file typs are allowed for upload: " . implode(', ',$allowed_file_types);
  69. unlink($_FILES["zdjecie_1"]["tmp_name"]);
  70.  
  71. }
  72. }
  73.  
  74. $sql = "update atrakcje set foto_1='$zdjecie_1' where id='$pokaz'";
  75. mysql_query($sql);
  76. echo $sql;
  77. }
  78.  
  79.  
  80. }
  81.  
  82.  
  83.  
  84. ?>
  85. </div>
  86.  
  87. <input type="hidden" name="pokaz" value="<?php echo $pokaz;?>">
  88. <input type="hidden" name="s" value="zdjecia">
  89. </div>
  90. </form>
prz3kus
Jeżeli id to integer zapytania powinny wygladac tak

  1. $sql="select * from atrakcje where id=".$pokaz;

ewentualnie
  1. $sql="select * from atrakcje where id=$pokaz";

szczalpi
NIe działa.
prz3kus
To tez poprawiles ?
  1. $sql = "update atrakcje set foto_1='$zdjecie_1' where id='$pokaz'";

na
  1. $sql = "update atrakcje set foto_1='".$zdjecie_1."' where id=".$pokaz;


I wysietl sobie ta zmienna $pokaz czy ona posiada to co oczekujesz
szczalpi
nic sie nie zmienia. pPojawia sie komunikat "Notice: Undefined index: pokaz in /ogloszeniapoznan/aa/zdjecia.php on line 7

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /ogloszeniapoznan/aa/zdjecia.php on line 11".
Obecny kod:
  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors','1');
  4.  
  5. $pokaz=$_GET['pokaz'];
  6. mysql_query("SET NAMES 'latin2'");
  7. $sql="select * from atrakcje where id=".$pokaz;
  8. $result=mysql_query($sql);
  9. $row=mysql_fetch_array($result);
  10. ?>
  11.  
  12. <div style="border:0px solid grey">
  13. <h2 style="border-bottom: 3px solid #C6439A;
  14. color: #0896FF;
  15. font-family: open sans;
  16. padding: 10px;
  17. text-align: left;">
  18. Zdjęcia Obiektu <?php echo $row['tytul'];?>54</h2>
  19.  
  20. <form action="zdjecia.php" method="POST" enctype="multipart/form-data">
  21. <div style="width:850px">
  22. <div style="float:left;width:300px;padding:10px;border:1px solid red">
  23. <td align="left"><img id="zdjecie" src="foto/<? echo $row['foto_1']; ?>" width="300px"></td>
  24.  
  25. </div>
  26. <div style="float:left;width:450px;margin-left:15px;">
  27. <input type="file" name="zdjecie_1" size="4">
  28. <input class="button_example" type="submit" name="zmien_1" value="Zmień zdjęcia" >
  29. <?php
  30. echo $row['id'];
  31. if(isset($_POST['zmien_1']))
  32. {
  33.  
  34.  
  35. if (is_uploaded_file($_FILES['zdjecie_1']['tmp_name'])) {
  36.  
  37.  
  38.  
  39. {
  40.  
  41. $filename = $_FILES["zdjecie_1"]["name"];
  42. $file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
  43. $file_ext = substr($filename, strripos($filename, '.')); // get file name
  44. $filesize = $_FILES["zdjecie_1"]["size"];
  45. $allowed_file_types = array('.jpg','.docx','.rtf','.pdf');
  46.  
  47. if (in_array($file_ext,$allowed_file_types) && ($filesize < 5000000))
  48. {
  49. // Rename file
  50.  
  51. mysql_query("SET NAMES 'latin2'");
  52.  
  53. $id=$row['id'];
  54. $zdjecie_1 = $id."_1". $file_ext;
  55. if (file_exists("foto/" . $zdjecie_1))
  56.  
  57. {
  58. // file already exists error
  59. echo "<p>You have already uploaded this file.</p>" ;
  60. echo $row['id'];
  61. }
  62. else
  63. {
  64. move_uploaded_file($_FILES["zdjecie_1"]["tmp_name"], "foto/" . $zdjecie_1);
  65.  
  66.  
  67. include_once("a.php"); $target_file = "foto/$zdjecie_1"; $resized_file = "foto/$zdjecie_1"; $wmax = 800; $hmax = 600; ak_img_resize($target_file, $resized_file, $wmax, $hmax, $zdjecie_1);
  68.  
  69. }
  70. }
  71. elseif (empty($file_basename))
  72. {
  73. // file selection error
  74. echo "Please select a file to upload.";
  75. }
  76. elseif ($filesize > 5000000)
  77. {
  78. // file size error
  79. echo "The file you are trying to upload is too large.";
  80. }
  81. else
  82. {
  83. // file type error
  84. echo "Only these file typs are allowed for upload: " . implode(', ',$allowed_file_types);
  85. unlink($_FILES["zdjecie_1"]["tmp_name"]);
  86.  
  87. }
  88. }
  89.  
  90. $sql = "update atrakcje set foto_1='".$zdjecie_1."' where id=".$pokaz;
  91. mysql_query($sql);
  92. echo $sql;
  93. }
  94.  
  95.  
  96. }
  97.  
  98.  
  99.  
  100. ?>
  101. </div>
  102.  
  103. <input type="hidden" name="pokaz" value="<?php echo $pokaz;?>">
  104. <input type="hidden" name="s" value="zdjecia">
  105. </div>
  106. </form>
goartur

$result=mysql_query("SELECT * FROM atrakcje WHERE id=$pokaz");


A co fo undefined index to znaczy ze nie ustawiles zmiennej w linku naprzyklad index.php?pokaz=1
szczalpi
Nic to nie daje :/.

Nic to nie daje :/.
Podaje link jak to sie zachowuje Odwiedź moją stronę
prz3kus
No to jak przesylasz formularz POST to czemu odbierasz zmienną GET, a nie POST?

$pokaz=$_GET['pokaz'];

na

$pokaz=$_POST['pokaz'];
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.