Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PROBLEM - skrypt ladowania obrazka na serwer przez input file, PROBLEM - skrypt ladowania obrazka na serwer przez input file
Ardo
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


Witam mam taki maly problem i nie moge dosc dlaczego nie dziala, mi sie wydaje ze wszystko jest OK ale jednak cos jest nie tak, moze ktos zerknie i da znac wczym jest problem. Oglnie zachowanie tego skryptu jest takie, laduje jakis plik na serwer w bazie on jest zapisany ale do okreslonego katalgu np reklama nie zostaje zapisany, moze ktos widzi powod dlaczego nie chce sie zapisac na serwer.

ponizej kod

<?php
if(isset($edycja) && $co == "2"){
$url = strip_tags($_POST['url']);
$q = mysql_fetch_array(mysql_query('SELECT * FROM reklama ORDER BY id DESC LIMIT 0,1'));
$i = $q['id'];
$i++;
$path = pathinfo($_FILES['baner']['name']);
$roz = $path['extension'];
$plik = '/reklama/' . $i . '.' . $roz;
$uploaddir = '/katalogA' . $plik;
$link ='http://jakis adres/katalogA/reklama/' . $i . '.' . $roz;
if(is_uploaded_file($_FILES['baner']['tmp_name'])) {
move_uploaded_file($_FILES['baner']['tmp_name'], $uploaddir);
//

echo $uploaddir . '<br />';

//
}
else{
echo 'error';
exit();
}

mysql_connect("localhost","webnet_moto","vaiper");
mysql_select_db("webnet_moto");
$zapyt = 'INSERT INTO reklama VALUES(\'\', \'' .$baner. '\', \'' .$url. '\')';
$query = mysql_query($zapyt);
if($query){
echo '<br />dodano do bazy <br/>';
}

}


?>

zgory dzieki za wszelkie rady czy pomysly.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Jak dodasz BBCode to może ktoś będzie chciał sprawdzić, a mi się rzuciło w oczy:


  1. <?php
  2. $url = strip_tags($_POST['url']);
  3.  
  4. $zapyt = 'INSERT INTO reklama VALUES('', '' .$baner. '', '' .$url. '')';
  5. ?>


strip_tags nie wycina apostrofów/cudzysłowów smile.gif, podatność na SQL Injection.


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Ardo
post
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


dziekuje za pomoc ale nie calkiem oto chodzi. tak jak pisalem do bazy wczytuja sie dane ale plik nie jest przeslany na serwer i tu jest problem, co nie dziala ? ze nie chce przenis pliku na serwer do konretnego katalogu.
Go to the top of the page
+Quote Post
sowiq
post
Post #4





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

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


Cytat
<form enctype="multipart/form-data" ... >
ustawione?

Ten post edytował sowiq 25.05.2009, 10:03:42
Go to the top of the page
+Quote Post
Ardo
post
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


form enctype="multipart/form-data" ... >

tak ustawione dalej nie dziala i nie mam pojecia co podsylam raz jezcze pelniejszy kod:

<form enctype="multipart/form-data" action="?id=baner" method="post">
<table align=center WIDTH="500" class="tab1"> <tr><td colspan=2>
<input type=hidden name=id value=baner>
<input type=hidden name=co value=1>
<input type=hidden name=edycja value=true></td></tr>

<tr><td>Dodaj button (w:145):</td><td align=left> <input name="button" type="file" /></td></tr>
<tr><td>Link buttonu: </td><td align=left><input type="text" name="url" /></td></tr>
<tr><td colspan=2 align=center><input type=submit name=dodaj value=" DODAJ " class=btn></form></td></tr>
</table>
<?php
if(isset($edycja) && $co =="1"){
$url = strip_tags($_POST['url']);
$q = mysql_fetch_array(mysql_query('SELECT * FROM button ORDER BY id DESC LIMIT 0,1'));
$i = $q['id'];
$i++;
$path = pathinfo($_FILES['button']['name']);
$roz = $path['extension'];
$plik = '/button/' . $i . '.' . $roz;
$uploaddir = 'http://www.webnet.webr.pl/automoto' . $plik;
$link = 'http://www.webnet.webr.pl/automoto/button/' . $i . '.' . $roz;
if(is_uploaded_file($_FILES['button']['tmp_name'])) {
move_uploaded_file($_FILES['button']['tmp_name'], $uploaddir);
//
echo $uploaddir . '<br />';


//
}
else{
echo 'error';
exit();
}
if($roz == "swf"){
$baner = '<object type="application/x-shockwave-flash" data="' .$link. '" width="145"><param name="movie" value="' .$link. '" /></object>';
}
else{
$baner = '<img src="' .$link. '" style="border:0px;" width="145" alt="automoto" border="0" />';
}

mysql_connect("localhost","xxx","yyy");
mysql_select_db("xxxx");
$zapyt = 'INSERT INTO button VALUES(\'\', \'' .$baner. '\', \'' .$url. '\')';
$query = mysql_query($zapyt);
if($query){
echo '<br />dodano do bazy<br />';
}
}
?>

podkreslam przesylanie do bazy dziala ale nie dziala przeslanie pliku czyli banera na serwer do katalogu.
i nie mam pojecia dlaczego sad.gif

Ten post edytował Ardo 26.05.2009, 09:24:49
Go to the top of the page
+Quote Post
sowiq
post
Post #6





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

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


Zrób sobie:
1. print_r($_FILES);
2. if(is_uploaded_file($_FILES['baner']['tmp_name'])) echo $_FILES['baner']['tmp_name'];

i zobacz co się wydrukuje.
Go to the top of the page
+Quote Post
Ardo
post
Post #7





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


1. print_r($_FILES);
2. if(is_uploaded_file($_FILES['baner']['tmp_name'])) echo $_FILES['baner']['tmp_name'];

to to chyba to samo co to:
$uploaddir = 'http://www.webnet.webr.pl/automoto' . $plik;
$link = 'http://www.webnet.webr.pl/automoto/button/' . $i . '.' . $roz;
if(is_uploaded_file($_FILES['button']['tmp_name'])) {
move_uploaded_file($_FILES['button']['tmp_name'], $uploaddir);
//
echo $uploaddir . '<br />';

//
}

tak czy inaczej odpowiedz mam taka z tego
http://www.webnet.webr.pl/automoto/button/25.jpg

dodano do bazy

tylko ze tego pliku nie ma na serwerze a w bazie jest





moge podeslac plik jesli wczyms by to pomoglo

wstawilem
1. print_r($_FILES);
2. if(is_uploaded_file($_FILES['baner']['tmp_name'])) echo $_FILES['baner']['tmp_name'];

i takainformacje dostalem

Array ( [button] => Array ( [name] => baner_145.jpg [type] => image/pjpeg [tmp_name] => /home/webnet/tmp/phpxPBaho [error] => 0 [size] => 17334 ) )
Go to the top of the page
+Quote Post
fedek6
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 2
Dołączył: 26.05.2009

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


Ścieżkę do tej funkcji podaje się wg. mojej wiedzy, bez wyszczególnienia protokołu smile.gif
  1. <?php
  2. $uploaddir = 'http://www.webnet.webr.pl/automoto' . $plik;
  3. ?>


zmień na:

  1. <?php
  2. $uploaddir = './automoto' . $plik;
  3. ?>


Albo coś z:
  1. <?php
  2. $uploaddir = dirname(__FILE__).'/automoto' . $plik;
  3. ?>
Go to the top of the page
+Quote Post
Ardo
post
Post #9





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


zmienilem troche twoj kod na taki:
if( is_uploaded_file( $_FILES['button']['tmp_name'] ) )
{
$strUploadDir = 'http://www.webnet.webr.pl/automoto/button/' . $_FILES['button']['name'];
if( move_uploaded_file( $_FILES['button']['tmp_name'], $strUploadDir ) )
{ echo 'Plik został pomyślnie uploadowany! <br />'; }
else
{ echo 'Upload pliku nie powiódł się!'; }
echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r( $_FILES, true ) . '</pre>';
}
else
{ echo 'Wystąpił błąd podczas wysyłania pliku na serwer!'; }

=====================================
odpowiedz taka dostaje:
Upload pliku nie powiódł się!Dodatkowe informacje o uploadowanym pliku: Array( [button] => Array ( [name] => AleBiba_468x62.swf [type] => application/x-shockwave-flash [tmp_name] => /home/webnet/tmp/phpMgwlCD [error] => 0 [size] => 20245 ))
dodano do bazy
==========================================

Ten post edytował Ardo 26.05.2009, 09:55:20
Go to the top of the page
+Quote Post
sowiq
post
Post #10





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

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


  1. Array ( [button] => Array ( [name] => baner_145.jpg [type] => image/pjpeg [tmp_name] => /home/webnet/tmp/phpxPBaho [error] => 0 [size] => 17334 ) )

Wnisek z tego jest bardzo prosty. Nie istnieje coś takiego jak $_FILES['baner']['tmp_name'], tylko $_FILES['baner']['button']['tmp_name'] itp.
Zapewne w formularzu masz:
  1. <input type="file" name="baner[buton]">
?

Ten post edytował sowiq 26.05.2009, 10:12:23
Go to the top of the page
+Quote Post
Ardo
post
Post #11





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


NIESTETY TO TEZ NIE POMOGLO
1
2
3
4

<?php
$uploaddir = dirname(__FILE__).'/automoto' . $plik;
?>
sad.gif DALEJ NIE LADUJE NA SERWER PLIKU
Go to the top of the page
+Quote Post
sowiq
post
Post #12





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

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


Pokaż kod HTML formularza.
Go to the top of the page
+Quote Post
Ardo
post
Post #13





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


W FORMULARZU MAM

<input name="button" type="file" />


<form enctype="multipart/form-data" action="?id=reklama" method="post">

<input type=hidden name=id value=reklama>
<input type=hidden name=co value=1>
<input type=hidden name=edycja value=true>

<input name="button" type="file" />
<input type="text" name="url" />
<input type=submit name=dodaj value=" DODAJ " class=btn>
</form>
Go to the top of the page
+Quote Post
sowiq
post
Post #14





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

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


Nie:
$path = pathinfo($_FILES['baner']['name']);

Tylko:
$path = pathinfo($_FILES['button']['name']);

I tak samo wszędzie. W HTML masz name="button", to czemu w PHP używasz $_FILES['baner'] ?
Go to the top of the page
+Quote Post
Ardo
post
Post #15





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


hmm tylko ja w kodzie nie mam
$path = pathinfo($_FILES['baner']['name']);


albo ja tego nie widze
ja mam :
$path = pathinfo($_FILES['button']['name']);
Go to the top of the page
+Quote Post
fedek6
post
Post #16





Grupa: Zarejestrowani
Postów: 5
Pomógł: 2
Dołączył: 26.05.2009

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


A próbowałeś z pełną ścieżką przez $_SERVER['DOCUMENT_ROOT'] oczywiście rozbudowując ją o Twój folder z obrazkami?

Ewentualnie uprawnienia do folderu z obrazkami.

Ten post edytował fedek6 26.05.2009, 10:19:42
Go to the top of the page
+Quote Post
sowiq
post
Post #17





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

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


Ok, po kolei:

1. isset($edycja) => isset($_POST['edycja'])
2. $uploaddir = 'http://www.webnet.webr.pl/automoto' . $plik; => $uploaddir = '/automoto' . $plik;
3. echo $uploaddir . '<br />'; => echo $link . '<br />';

Zrób te 3 zmiany, ustaw na początku pliku error_reporting(E_ALL) i napisz co się dzieje.

Ten post edytował sowiq 26.05.2009, 10:23:41
Go to the top of the page
+Quote Post
Ardo
post
Post #18





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

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


chyba masz racje w dobrym kierunku naprowadiziles ale mam taki problem teraz

dostaje informacje ze:
Plik został pomyœlnie uploadowany!
Dodatkowe informacje o uploadowanym pliku: ......

tylko ze teraz szukam na serwerze czy naprawde plik zostal preniesiony i nic nie ma go
napsialem taki kod:
===============
$i = $q['id'];
$i++;
$path = pathinfo($_FILES['button']['name']);
$roz = $path['extension'];
$plik = '/button/' . $i . '.' . $roz;
$r = $_SERVER['DOCUMENT_ROOT'];
$uploaddir = $r.'/automoto' . $plik;

============
Go to the top of the page
+Quote Post
fedek6
post
Post #19





Grupa: Zarejestrowani
Postów: 5
Pomógł: 2
Dołączył: 26.05.2009

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


Sprawdź jeszcze czy ścieżka uzyskana w ten sposób na pewno jest poprawna. Podaj:
  1. <?php
  2. echo $_SERVER['DOCUMENT_ROOT'].'/automoto';
  3. ?>
Go to the top of the page
+Quote Post
sowiq
post
Post #20





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

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


  1. <?php
  2.  
  3. $dir = $_SERVER['DOCUMENT_ROOT'] . '/automoto/button/';
  4.  
  5. $path = pathinfo($_FILES['button']['name']);
  6. $id = '1'; // id pobrane z bazy
  7. $plik = $id . '.' . $path['extension'];
  8.  
  9. if(move_uploaded_file( $_FILES['button']['tmp_name'], $path . $plik )){
  10.    echo 'ok';
  11. }
  12. ?>


Ten post edytował sowiq 26.05.2009, 10:35:48
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 19:13