Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z uploadem
Forum PHP.pl > Forum > Przedszkole
MateuszS
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.
Spawnm
Daj na wklej.org czy gdzieś ten kod a na forum tylko link.
Popraw też tytuł na bardziej sensowny.
Pr0100
array + for
MateuszS
Pr0100 a moglbys troche wyjasnic? Co mi da petla?
piotrooo89
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.
MateuszS
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. ;/
Fifi209
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ć.
MateuszS
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 ;/
f1xer
nie
  1. <?php
  2. $obrazeczek.$i=
  3. ?>

tylko
  1. <?php
  2. $obrazeczek[$i]=
  3. ?>
MateuszS
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. ?>
f1xer
nie tworz tyle zmiennych tylko jedną tablicę
$obrazektmp[1]=$_FILES...
$obrazekname[1]=$_FILES...

przeczytaj jeszcze raz dokładnie o tablicach.
MateuszS
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
Pr0100
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 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. ?>
f1xer
jeżeli problem dotyczyłby użytkowników to zaproponowałbym inne rozwiązanie smile.gif ale masz racje to twoje rozwiązanie jest lepisze
MateuszS
Ok dzieki, wieczorem sie pobawie.

PS Foreacha nigdy nie uzywalem ;]
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.