Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]sesion przerywa skrypt
kondziu9516
post 8.10.2012, 08:24:21
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 1
Dołączył: 9.08.2011
Skąd: Bielsko Biała

Ostrzeżenie: (20%)
X----


Witam,
mój problem wygląda następująco:

Mam skrypt uploadu.
Chciałbym, aby zapisało mi do bazy nazwy obrazków.
Narazie próbuję na nazwie byle jakiej.

Do zapisu zrobiłem osobny plik, a w skrypcie uploadu go dołączam.
Ale coś przerywa dalsze działanie.
Tak jakby session_start();

Ktoś wie czym to jest spowodowane i dlaczego ?

oto skrypt tego uploadu:
  1. <?php
  2.  
  3. // Jeśli chcesz zignorować przesyłane pliki,
  4. // ustaw $demo_mode na true;
  5.  
  6. $demo_mode = false;
  7. $upload_dir = 'uploads/';
  8. $allowed_ext = array('jpg','jpeg','png','gif');
  9.  
  10.  
  11. if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
  12. exit_status('Error! Wrong HTTP method!');
  13. }
  14.  
  15.  
  16. if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
  17.  
  18. $pic = $_FILES['pic'];
  19.  
  20.  
  21. if(!in_array(get_extension($pic['name']),$allowed_ext)){
  22. exit_status('Tylko '.implode(',',$allowed_ext).' pliki są dozwolone!');
  23. }
  24.  
  25. if($demo_mode){
  26.  
  27. // Przesyłanie plików jest wyłączone. Zapisujemy tylko logi.
  28.  
  29. $line = implode(' ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
  30. file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
  31.  
  32.  
  33. exit_status('');
  34. }
  35.  
  36.  
  37. // Przeniesienie pliku z folderu tymczasowego
  38. // do folderu docelowego:
  39.  
  40. if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
  41. include("zapis-baza.php");
  42. exit_status('Plik wrzucony poprawnie!');
  43.  
  44. }
  45.  
  46. }
  47.  
  48. exit_status('Coś poszło nie tak z Twoim uploadem!');
  49.  
  50.  
  51. // Funkcje pomocnicze
  52.  
  53. function exit_status($str){
  54. echo json_encode(array('status'=>$str));
  55.  
  56.  
  57. }
  58.  
  59. function get_extension($file_name){
  60. $ext = explode('.', $file_name);
  61. $ext = array_pop($ext);
  62. return strtolower($ext);
  63.  
  64. }
  65.  
  66.  
  67.  
  68. ?>


A tu skrypt zapisu do bazy:

  1. <?
  2.  
  3.  
  4. require_once ('../../strony/db2.php');
  5.  
  6.  
  7.  
  8. mysql_query("INSERT INTO obrazkitymczasowe SET pic1='nazwaobrazka'") or die(mysql_error());
  9.  
  10. die(); // przerywam wykonywanie skryptu
  11. ?>
Go to the top of the page
+Quote Post
sowiq
post 8.10.2012, 08:27:43
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


  1. ini_set('display_errors', '1');
Go to the top of the page
+Quote Post
kondziu9516
post 8.10.2012, 08:30:50
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 1
Dołączył: 9.08.2011
Skąd: Bielsko Biała

Ostrzeżenie: (20%)
X----


myślałem o tym, ale wywołanie uploadu jest w js KOD:

  1. $(function(){
  2.  
  3. var dropbox = $('#dropbox'),
  4. message = $('.message', dropbox);
  5.  
  6. dropbox.filedrop({
  7. //
  8. paramname:'pic',
  9.  
  10. maxfiles: 5,
  11. maxfilesize: 2,
  12. url: 'post_file.php',
  13.  
  14.  
  15.  
  16. uploadFinished:function(i,file,response){
  17. $.data(file).addClass('done');
  18.  
  19. const x = 12;
  20. const bla = file.name+' zostało zapisane na serwerze';
  21. alert(bla);
  22.  
  23.  
  24. },
  25.  
  26. error: function(err, file) {
  27. switch(err) {
  28. case 'BrowserNotSupported':
  29. showMessage('Twoja przeglądarka nie wspiera uploadu plików HTML5!');
  30. break;
  31. case 'TooManyFiles':
  32. alert('Za dużo zdjęć! Wybierz co najwyżej 5.');
  33. break;
  34. case 'FileTooLarge':
  35. alert(file.name+' jest za duże!. Wrzuć zdjęcie o wadze najwyżej 2 MB.');
  36. break;
  37. default:
  38. break;
  39. }
  40. },
  41.  
  42.  
  43. beforeEach: function(file){
  44. if(!file.type.match(/^image\//)){
  45. alert('Tylko zdjęcia są dozwolone!');
  46.  
  47.  
  48. return false;
  49. }
  50. },
  51.  
  52. uploadStarted:function(i, file, len){
  53. createImage(file);
  54. },
  55.  
  56. progressUpdated: function(i, file, progress) {
  57. $.data(file).find('.progress').width(progress);
  58. }
  59.  
  60. });
  61.  
  62. var template = '<div class="preview">'+
  63. '<span class="imageHolder">'+
  64. '<img />'+
  65. '<span class="uploaded"></span>'+
  66. '</span>'+
  67. '<div class="progressHolder">'+
  68. '<div class="progress"></div>'+
  69. '</div>'+
  70. '</div>';
  71.  
  72.  
  73. function createImage(file){
  74.  
  75. var preview = $(template),
  76. image = $('img', preview);
  77.  
  78. var reader = new FileReader();
  79.  
  80. image.width = 100;
  81. image.height = 100;
  82.  
  83. reader.onload = function(e){
  84.  
  85.  
  86.  
  87. image.attr('src',e.target.result);
  88. };
  89.  
  90.  
  91. reader.readAsDataURL(file);
  92.  
  93. message.hide();
  94. preview.appendTo(dropbox);
  95.  
  96.  
  97.  
  98. $.data(file,preview);
  99.  
  100. }
  101.  
  102. function showMessage(msg){
  103. message.html(msg);
  104. }
  105.  
  106.  
  107. });


Wywołanie jest tą linijką: url: 'post_file.php',

Ten post edytował kondziu9516 8.10.2012, 08:31:35
Go to the top of the page
+Quote Post
sowiq
post 8.10.2012, 08:35:57
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat
myślałem o tym, ale wywołanie uploadu jest w js

No i? Piszesz, że session_start() przerywa Ci działanie skryptu. Wklej na początku tego skryptu włączenie raportowania błędów żeby zobaczyć, co tak na prawdę powoduje błąd. A testować łatwiej Ci na początek będzie zwykłym formularzem HTML niż jakimiś JS-owymi widżetami.
Go to the top of the page
+Quote Post
kondziu9516
post 8.10.2012, 08:40:38
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 1
Dołączył: 9.08.2011
Skąd: Bielsko Biała

Ostrzeżenie: (20%)
X----


a jest jakiś inny sposób, żeby przekazać po prostu zmienną z nazwą obrazka do całkiem innego pliku ?
Bo myślałem, żeby zapisywać do bazy, ale po co jak może być zmiennymi.
Go to the top of the page
+Quote Post
sowiq
post 8.10.2012, 08:49:04
Post #6





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Na samym początku pliku, do którego wysyłasz zapytanie, ustaw error reporting (wkleiłem Ci dokładny kod) i zobacz jakie błędy Ci wypluje. Jeśli koniecznie chcesz używać tego JS do testowania, to sprawdzaj w Firebugu co otrzymujesz w odpowiedzi.

Mam nieodparte wrażenie, że szukasz nie tam, gdzie powinieneś.
Go to the top of the page
+Quote Post
kondziu9516
post 8.10.2012, 09:13:43
Post #7





Grupa: Zarejestrowani
Postów: 142
Pomógł: 1
Dołączył: 9.08.2011
Skąd: Bielsko Biała

Ostrzeżenie: (20%)
X----


nie ogarniam ;/

A inny sposób przekazania zmiennej ?
Go to the top of the page
+Quote Post
sowiq
post 8.10.2012, 09:18:51
Post #8





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Zaczynasz nowy temat od tezy, że session_start() przerywa Ci działanie skryptu. Napisałem Ci jak sprawdzić jaki dokładnie masz błąd. A Ty zamiast sprawdzić, pytasz teraz o jakieś przekazywanie zmiennych. Sorry, ale przestałem ogarniać o co pytasz.
Go to the top of the page
+Quote Post
kondziu9516
post 8.10.2012, 09:24:32
Post #9





Grupa: Zarejestrowani
Postów: 142
Pomógł: 1
Dołączył: 9.08.2011
Skąd: Bielsko Biała

Ostrzeżenie: (20%)
X----


Okej to tak:

Chodzi o to, że pobrałem skrypt uploadu.
Wszystko działa super i zapisuje mi do folderu uploads.
Ale chciałbym pobrać nazwe zapisanego pliku po to, żeby potem ją pobrać do bazy.
Myślałem, żeby przekazać zmiennymi, ale nie wiem jak.

Początkowo chciałem to zrobić, że za każdym razem w bazie zapisze te nazwy,
potem sobie je pobiorę i wyczyszczę tabele.
I tak w kółko.

Cały upload jest dodany w znacznikach: <iframe title="REGULAMIN" align="left" src="upload_drop/index.php" width="900" height="400"></iframe>
do formularza z polami, które też chcę potem przesłać (ale to już co innego)

I jak pobrać tą nazwę zapisanego zdjecia do początkowej strony.
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: 15.06.2025 - 07:06