Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem z uploadem
MateuszS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Witam, mam super długi kod, w skrócie chodzi o to że mam 10 obrazków opcjonalnych do wysłania i 1 obowiązkowy + inne opisy. Oto co próbowałem zrobić

http://wklej.org/id/119745/

Wiem że ten kod wydaje się bez sensu ale jest OK, tylko gdzieś mam tego buga, bo zawsze wywala "Pozostawiles puste pola" mimo ze wymagane 3 mam wypelnione.

Ten post edytował MateuszScirka 11.07.2009, 22:07:23
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Daj na wklej.org czy gdzieś ten kod a na forum tylko link.
Popraw też tytuł na bardziej sensowny.
Go to the top of the page
+Quote Post
Pr0100
post
Post #3





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

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


array + for
Go to the top of the page
+Quote Post
MateuszS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Pr0100 a moglbys troche wyjasnic? Co mi da petla?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




da Ci mniej linijek kodu. po to właśnie są pętle aby iterować po każdym elemencie. bo robisz np 100 if'ów w którym zmienia się tylko jedna cyferka - bez sensu. a tablice, ja dopiero teraz odkryłem jak poprawnie wprowadzone dane do tablic mogą ułatwić życie, i 100% się do nich przekonałem więc polecam.
Go to the top of the page
+Quote Post
MateuszS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Ok. Postaram się zaglebic w filozofie petel i tablic ale jeszcze ten jeden raz trzeba mi rozwiazac ten problem dlaczego wywala caly czas ten blad...

uproscilem
http://wklej.org/id/119791/

dziala tylko przy malych pliczkach. ;/
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(MateuszScirka @ 11.07.2009, 23:53:09 ) *
Ok. Postaram się zaglebic w filozofie petel i tablic ale jeszcze ten jeden raz trzeba mi rozwiazac ten problem dlaczego wywala caly czas ten blad...

uproscilem
<a href="http://wklej.org/id/119791/" target="_blank">http://wklej.org/id/119791/</a>

Jeżeli to nazywasz uproszczonym kodem...

Cytat(MateuszScirka @ 11.07.2009, 23:53:09 ) *
dziala tylko przy malych pliczkach. ;/


W php.ini masz coś takiego jak upload_max_filesize i właśnie ta wartość Cię może ograniczać.
Go to the top of the page
+Quote Post
MateuszS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


To nie to bo na serwerze tez mam blad ze puste pola. Poza tym w ini na 30 mb jest ustawione a obrazek ma 500 kb


Rozwiazalem tamten problem, ale mam nastepny. Pomyslalem troche nad tym co mowil Pr0100 i zastosowalem fora ale cos chyba zle

  1. <?php
  2. for($i=1 ; $i<=10 ; $i++)
  3.        {
  4.            $obrazektmp = $obrazektmp.$i;
  5.            $obrazekname = $obrazekname.$i;
  6.            
  7.            if(!empty($obrazektmp))
  8.            {
  9.                if(is_uploaded_file($obrazektmp))
  10.                {
  11.                    $b = move_uploaded_file($obrazektmp, 'zdjecia/'.$_SESSION['time'].'/'.$obrazekname);
  12.                    $obrazeczek.$i = 'zdjecia/'.$_SESSION['time'].'/'.$obrazekname;
  13.                }
  14.            }    
  15.        }
  16. ?>


Bo nie uploaduje mi tych zdjec ;/
Go to the top of the page
+Quote Post
f1xer
post
Post #9





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


nie
  1. <?php
  2. $obrazeczek.$i=
  3. ?>

tylko
  1. <?php
  2. $obrazeczek[$i]=
  3. ?>
Go to the top of the page
+Quote Post
MateuszS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Niestety to nie to. Probowalem tez tak ale bez skutku. Tu wiecej kodu zeby bylo all widac

  1. <?php
  2. $obrazektmp1 = $_FILES['obrazek1']['tmp_name'];
  3.    $obrazekname1 = $_FILES['obrazek1']['name'];
  4.    $obrazektmp2 = $_FILES['obrazek2']['tmp_name'];
  5.    $obrazekname2 = $_FILES['obrazek2']['name'];
  6.    $obrazektmp3 = $_FILES['obrazek3']['tmp_name'];
  7.    $obrazekname3 = $_FILES['obrazek3']['name'];
  8.    $obrazektmp4 = $_FILES['obrazek4']['tmp_name'];
  9.    $obrazekname4 = $_FILES['obrazek4']['name'];
  10.    $obrazektmp5 = $_FILES['obrazek5']['tmp_name'];
  11.    $obrazekname5 = $_FILES['obrazek5']['name'];
  12.    $obrazektmp6 = $_FILES['obrazek6']['tmp_name'];
  13.    $obrazekname6 = $_FILES['obrazek6']['name'];
  14.    $obrazektmp7 = $_FILES['obrazek7']['tmp_name'];
  15.    $obrazekname7 = $_FILES['obrazek7']['name'];
  16.    $obrazektmp8 = $_FILES['obrazek8']['tmp_name'];
  17.    $obrazekname8 = $_FILES['obrazek8']['name'];
  18.    $obrazektmp9 = $_FILES['obrazek9']['tmp_name'];
  19.    $obrazekname9 = $_FILES['obrazek9']['name'];
  20.    $obrazektmp10 = $_FILES['obrazek10']['tmp_name'];
  21.    $obrazekname10 = $_FILES['obrazek10']['name'];
  22.  
  23.        for($a = 1 ; $a <=10 ; $a++)
  24.        {
  25.            $obrazektmp[$a] = 'obrazektmp'.$a;
  26.            $obrazekname[$a] = 'obrazekname'.$a;
  27.        
  28.                if(!empty($obrazekname[$a]))
  29.                {
  30.                    if(is_uploaded_file($obrazektmp[$a]))
  31.                    {
  32.                        $b = move_uploaded_file($obrazektmp[$a],   'zdjecia/'.$_SESSION['time'].'/'.$obrazekname[$a]);
  33.                        $obrazeczek.$a = 'zdjecia/'.$_SESSION['time'].'/'.$obrazekname[$a];
  34.                    }
  35.                }    
  36.            
  37.        }
  38. ?>
Go to the top of the page
+Quote Post
f1xer
post
Post #11





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


nie tworz tyle zmiennych tylko jedną tablicę
$obrazektmp[1]=$_FILES...
$obrazekname[1]=$_FILES...

przeczytaj jeszcze raz dokładnie o tablicach.
Go to the top of the page
+Quote Post
MateuszS
post
Post #12





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


W akcie desperacji zrobilem tak:
  1. <?php
  2. $obrazektmp = array($_FILES['obrazek1']['tmp_name'], $_FILES['obrazek2']['tmp_name'], $_FILES['obrazek3']['tmp_name'],
  3.                    $_FILES['obrazek4']['tmp_name'], $_FILES['obrazek5']['tmp_name'], $_FILES['obrazek6']['tmp_name'],
  4.                    $_FILES['obrazek7']['tmp_name'], $_FILES['obrazek8']['tmp_name'], $_FILES['obrazek9']['tmp_name'],
  5.                    $_FILES['obrazek10']['tmp_name']);
  6.    $obrazekname = array($_FILES['obrazek1']['name'], $_FILES['obrazek2']['name'], $_FILES['obrazek3']['name'],
  7.                    $_FILES['obrazek4']['name'], $_FILES['obrazek5']['name'], $_FILES['obrazek6']['name'],
  8.                    $_FILES['obrazek7']['name'], $_FILES['obrazek8']['name'], $_FILES['obrazek9']['name'],
  9.                    $_FILES['obrazek10']['name']);
  10.  
  11.  
  12. for($a = 0 ; $a <=9 ; $a++)
  13.        {        
  14.                if(!empty($obrazekname[$a]))
  15.                {
  16.                    if(is_uploaded_file($obrazektmp[$a]))
  17.                    {
  18.                        $b = move_uploaded_file($obrazektmp[$a], 'zdjecia/'.$_SESSION['time'].'/'.$obrazekname[$a]);
  19.                        $obrazeczek.$a = 'zdjecia/'.$_SESSION['time'].'/'.$obrazekname[$a];
  20.                    }
  21.                }    
  22.            
  23.        }
  24. ?>


Szkoda ze nie dziala ;/ Caly czas sie uploaduje az pisze ze przekroczono limit czasu a mam to na localhoscie powinno szbko

Ten post edytował MateuszScirka 12.07.2009, 10:45:20
Go to the top of the page
+Quote Post
Pr0100
post
Post #13





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

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


Cytat
$obrazektmp[1]=$_FILES...
$obrazekname[1]=$_FILES...


jeżeli problem by dotyczył użytkowników to byś zrobił 20 tablic w stylu?

$user_nick[$i]
$user_login[$i]
$user_pass[$i]
$user_mail[$i]
$user_city[$i]
$user_sex[$i]
....

kiepskie rozwiązanie problemu (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)


zamiast:
  1. <?php
  2. $obrazektmp1 = $_FILES['obrazek1']['tmp_name'];
  3. $obrazekname1 = $_FILES['obrazek1']['name'];
  4. $obrazektmp2 = $_FILES['obrazek2']['tmp_name'];
  5. $obrazekname2 = $_FILES['obrazek2']['name'];
  6. $obrazektmp3 = $_FILES['obrazek3']['tmp_name'];
  7. $obrazekname3 = $_FILES['obrazek3']['name'];
  8. $obrazektmp4 = $_FILES['obrazek4']['tmp_name'];
  9. $obrazekname4 = $_FILES['obrazek4']['name'];
  10. $obrazektmp5 = $_FILES['obrazek5']['tmp_name'];
  11. $obrazekname5 = $_FILES['obrazek5']['name'];
  12. $obrazektmp6 = $_FILES['obrazek6']['tmp_name'];
  13. $obrazekname6 = $_FILES['obrazek6']['name'];
  14. $obrazektmp7 = $_FILES['obrazek7']['tmp_name'];
  15. $obrazekname7 = $_FILES['obrazek7']['name'];
  16. $obrazektmp8 = $_FILES['obrazek8']['tmp_name'];
  17. $obrazekname8 = $_FILES['obrazek8']['name'];
  18. $obrazektmp9 = $_FILES['obrazek9']['tmp_name'];
  19. $obrazekname9 = $_FILES['obrazek9']['name'];
  20. $obrazektmp10 = $_FILES['obrazek10']['tmp_name'];
  21. $obrazekname10 = $_FILES['obrazek10']['name'];
  22. ?>


zrób:
  1. <?php
  2. for($i=1; $i <= 10; $i++)
  3. {
  4.  $obrazki[$i] = array(
  5.    'name' => $_FILES['obrazek'.$i]['name'],
  6.    'tmp' => $_FILES['obrazek'.$i]['tmp_name']
  7.  );
  8. }
  9. ?>


  1. <?php
  2. echo 'Nazwa obrazku #3: '.$obrazki[3]['name'];
  3. echo "<br />";
  4. echo 'Tymczasowa nazwa obrazku #6: '.$obrazki[6]['tmp_name'];
  5.  
  6. echo "<br /><br /><br /><br />";
  7.  
  8.  
  9. echo 'Lista obrazków: <br/>';
  10. foreach ($obrazki as $obrazek)
  11. {
  12.  echo $obrazek['name'].'<br />';
  13. }
  14. ?>


masz przykład wykorzystania for, array oraz foreach

#####################################################

zamiast

  1. <?php
  2. if($_POST['jezyk']=='opis_pl')
  3.    {
  4.        $opispl = 1;
  5.        $opisen = 0;
  6.        $opisde = 0;
  7.    }    
  8.    if($_POST['jezyk']=='opis_en')
  9.    {
  10.        $opispl = 0;
  11.        $opisen = 1;
  12.        $opisde = 0;
  13.    }
  14.    if($_POST['jezyk']=='opis_de')
  15.    {
  16.        $opispl = 0;
  17.        $opisen = 0;
  18.        $opisde = 1;
  19.    }
  20. ?>


zrób
  1. <?php
  2. $opispl = $opisen = $opisde = 0;
  3.  
  4. switch($_POST['jezyk'])
  5. {
  6.  case 'opis_pl':
  7.    $opispl = 1;
  8.    break;
  9.  
  10.  case 'opis_en':
  11.    $opisen = 1;
  12.    break;
  13.  
  14.  case 'opis_de':
  15.    $opisde = 1;
  16.    break;
  17.  
  18.  default:
  19.   // komunikat nie wybrałeś języka, nieznany język lub coś w tym kierunku
  20.   break;
  21. }
  22. ?>


Ten post edytował Pr0100 12.07.2009, 19:29:28
Go to the top of the page
+Quote Post
f1xer
post
Post #14





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


jeżeli problem dotyczyłby użytkowników to zaproponowałbym inne rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale masz racje to twoje rozwiązanie jest lepisze
Go to the top of the page
+Quote Post
MateuszS
post
Post #15





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Ok dzieki, wieczorem sie pobawie.

PS Foreacha nigdy nie uzywalem ;]
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 08:22