Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP][JavaScript] Problem z przekazaniem zmiennej w jQuery File Upload
McGal
post 13.05.2015, 14:43:40
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.04.2015

Ostrzeżenie: (0%)
-----


Skorzystałem z dostępnego skryptu dodawania zdjęć na serwer i do bazy MySql jQuery File Upload

Przerobiłem go na moje potrzeby i działa rewelacyjnie lecz tylko w 99%.

Potrzebuję wprowadzić INSERTEM do bazy ID które przekazuję do jQuery File Upload z poprzedniej strony

  1. <a href="upload/index.php?set_id=<?php echo $query2['set_id']; ?>" class="btn yellow">


korzystałem wcześniej przy tego typu zabiegach z

  1. $set_id = $_REQUEST['set_id'];


i w Insert podawałem wartość zmiennej i była przekazywana do bazy razem z linkiem

Niestety w przypadku tego skryptu wyskakuje błąd "nieprawidłowy token" przy dodawaniu zdjęcia i nie jest to już taka prosta sprawa

Poniżej główny skrypt jQFU

  1. $options = array(
  2. 'delete_type' => 'POST',
  3. 'db_host' => 'localhost',
  4. 'db_user' => '',
  5. 'db_pass' => '',
  6. 'db_name' => '',
  7. 'db_table' => 'files'
  8. );
  9.  
  10. error_reporting(E_ALL | E_STRICT);
  11. require('UploadHandler.php');
  12.  
  13. class CustomUploadHandler extends UploadHandler {
  14.  
  15. protected function initialize() {
  16. $this->db = new mysqli(
  17. $this->options['db_host'],
  18. $this->options['db_user'],
  19. $this->options['db_pass'],
  20. $this->options['db_name']
  21. );
  22. parent::initialize();
  23. $this->db->close();
  24. }
  25.  
  26. protected function handle_form_data($file, $index) {
  27. $file->title = @$_REQUEST['title'][$index];
  28. $file->description = @$_REQUEST['description'][$index];
  29. }
  30.  
  31. protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
  32. $index = null, $content_range = null) {
  33. $file = parent::handle_file_upload(
  34. $uploaded_file, $name, $size, $type, $error, $index, $content_range
  35. );
  36. if (empty($file->error)) {
  37. $sql = 'INSERT INTO `'.$this->options['db_table']
  38. .'` (`name`, `size`, `type`, `title`, `description`)'
  39. .' VALUES (?, ?, ?, ?, ?)';
  40. $query = $this->db->prepare($sql);
  41. $query->bind_param(
  42. 'sisss',
  43. $file->name,
  44. $file->size,
  45. $file->type,
  46. $file->title,
  47. $file->description
  48. );
  49. $query->execute();
  50. $file->id = $this->db->insert_id;
  51. }
  52. return $file;
  53. }
  54.  
  55. protected function set_additional_file_properties($file) {
  56. parent::set_additional_file_properties($file);
  57. if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  58. $sql = 'SELECT `id`, `type`, `title`, `description` FROM `'
  59. .$this->options['db_table'].'` WHERE `name`=?';
  60. $query = $this->db->prepare($sql);
  61. $query->bind_param('s', $file->name);
  62. $query->execute();
  63. $query->bind_result(
  64. $id,
  65. $type,
  66. $title,
  67. $description
  68. );
  69. while ($query->fetch()) {
  70. $file->id = $id;
  71. $file->type = $type;
  72. $file->title = $title;
  73. $file->description = $description;
  74. }
  75. }
  76. }
  77.  
  78. public function delete($print_response = true) {
  79. $response = parent::delete(false);
  80. foreach ($response as $name => $deleted) {
  81. if ($deleted) {
  82. $sql = 'DELETE FROM `'
  83. .$this->options['db_table'].'` WHERE `name`=?';
  84. $query = $this->db->prepare($sql);
  85. $query->bind_param('s', $name);
  86. $query->execute();
  87. }
  88. }
  89. return $this->generate_response($response, $print_response);
  90. }
  91.  
  92. }
  93.  
  94. $upload_handler = new CustomUploadHandler($options);



Jak poradzić sobie z tym problemem questionmark.gif
Go to the top of the page
+Quote Post
Comandeer
post 13.05.2015, 14:51:07
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


To jest błąd po stronie PHP czy JS?


--------------------
Go to the top of the page
+Quote Post
McGal
post 13.05.2015, 15:10:35
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.04.2015

Ostrzeżenie: (0%)
-----


Raczej po php
Go to the top of the page
+Quote Post
Comandeer
post 13.05.2015, 18:01:33
Post #4





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


A pokaż odpowiedź serwera na żądanie Ajaksem


--------------------
Go to the top of the page
+Quote Post
McGal
post 13.05.2015, 19:57:36
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.04.2015

Ostrzeżenie: (0%)
-----


Na stronce w miejscu załadowania zdjęcia wyświetla się "SyntaxError: Unexpected token <"

a firebug pokazuje:

Notice: Undefined index: set_id in /upload/server/php/index.php on line 39

Fatal error: Call to a member function bind_param() on a non-object in /upload/server/php/index.php on line 44
Go to the top of the page
+Quote Post
Comandeer
post 13.05.2015, 20:48:00
Post #6





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Pokaż całość index.php, bo np teraz nie ma w ogóle linijki z set_id


--------------------
Go to the top of the page
+Quote Post
McGal
post 14.05.2015, 08:01:59
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.04.2015

Ostrzeżenie: (0%)
-----


Nie ma ponieważ wkleiłem czysty kod który działa, ale niestety nie spełnia do końca oczekiwań.

Po dodaniu zmiennej 'set_id' która ma przypisać zdjęcie do konkretnego zbioru niestety się rozsypuje, jak świadczą powyższe błędy.

Czy macie pomysł na wprowadzenie tej zmiennej do tego kodu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 19:02