Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodanie do kodu wyłączenia pol znaków
DreqX
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.08.2009

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


Witam, mam upload i jest coś źle z polskimi znakami. Tzn nie działają prawidłowo jak sie wrzuci plik. Kod uploadu:
  1. <h1>Darmowy upload plików</h1>
  2. <p>
  3. Maksymalny rozmiar pliku:
  4. <?php
  5. $divd = 1024;
  6. $isize = $max_size / $divd;
  7. $isize2 = round($isize);
  8. echo $isize2.' KB';
  9. ?>
  10. <br />
  11. Dozwolone rozszerzenia:
  12. <?php
  13. foreach($dozwolone as $r)
  14. {
  15. echo '<u>'.$r.'</u> ';
  16. }
  17. ?>
  18. </p>
  19. <form enctype="multipart/form-data" action="index.php" method="POST">
  20. <input name="plik" type="file" />
  21. <input name="submit" onclick="document.getElementById('ladowanie').style.display='block'" type="submit" value="Wyslij plik" />
  22. </form>
  23. <div id="ladowanie" style="display:none;">
  24. <p>
  25. Proszę czekać! Trwa wgrywanie pliku!<br />
  26. <img src="loading.gif" />
  27. </p>
  28. </div>
  29. <?php
  30. if (isset($_POST['submit']))
  31. {
  32. $plik_tmp = $_FILES['plik']['tmp_name'];
  33. $plik_nazwa = $_FILES['plik']['name'];
  34. $plik_rozmiar = $_FILES['plik']['size'];
  35. if ($plik_rozmiar>$max_size)
  36. {
  37. echo '<font color="red">Plik jest za duży!</font><br>'; return 0;
  38. }
  39. if(is_uploaded_file($plik_tmp))
  40. {
  41. $roz = explode('.',$plik_nazwa);
  42. $roz = strtolower($roz[count($roz)-1]);
  43. $unikat = str_replace('.'.$roz, '', $plik_nazwa).'_'.substr(md5(time()), 0, 10);
  44. if(in_array($roz, $dozwolone))
  45. {
  46. move_uploaded_file($plik_tmp, "files/$unikat.$roz");
  47. chmod("files/$unikat.$roz", 0666);
  48. $adres = $domain.'/files/'.$unikat.'.'.$roz;
  49. echo '<p>Plik: <strong>'.$plik_nazwa.'</strong> o rozmiarze <strong>'.$plik_rozmiar.' bajtów</strong> został przesłany na serwer! </p>';
  50. echo '<table>
  51. <tr>
  52. <td>URL:</td>
  53. <td><input type="text" onClick="highlight(this);" value="'.$adres.'" style="width:400px;"></td>
  54. </tr>
  55. <tr>
  56. <td>HTML:</td>
  57. <td><input type="text" onClick="highlight(this);" value="<a href=\''.$adres.'\'>'.$plik_nazwa.'</a>" style="width:400px;"></td>
  58. </tr>
  59. <tr>
  60. <td>BBCode:</td>
  61. <td><input type="text" onClick="highlight(this);" value="'.$plik_nazwa.'" style="width:400px;"></td>
  62. </tr>
  63. </table>';
  64. }
  65. else echo '<font color="red">Niedozwolone rozszerzenie!</font><br>';
  66. }
  67. else echo '<font color="red">Wystąpił błąd!</font><br>';
  68. }
  69. }
  70. ?>

Proszę kogoś o dodanie do tego kodu, czegoś co zamieni polskie znaki, spacje itp. na inne znaki, przyjmowane w uploadzie.
Go to the top of the page
+Quote Post
neverever
post
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

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


podpowiedź iconv + translit
http://php.net/manual/en/function.iconv.php


--------------------
neverever
Go to the top of the page
+Quote Post
DreqX
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.08.2009

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


Ok, znalazłem jeden kod, jednak dalej zamiana nie działa:

Kod
    $plik_tmp = $_FILES['plik']['tmp_name'];
    $plik_nazwa = $_FILES['plik']['name'];
    $plik_nazwa = strtr($plik_nazwa,"ĄĆĘŁŃÓŚŻŹąćęłńóśżź","ACELNOSZZacelnoszz");
    $plik_rozmiar = $_FILES['plik']['size'];


Proszę o poprawienie tak, aby zamieniało.
Go to the top of the page
+Quote Post
piotr94
post
Post #4





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


dobrze, a ja poproszę o 50 zł ;-)
powiedz jakie masz pojęcie o php??
wystarczy za pomocom choćby str_replace zamieniać wszystko na znaki akceptowane przez serwer ;-)


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
DreqX
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.08.2009

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


To mógłbyś podać? Dla Ciebie to tylko jedna linijka kodu tongue.gif
Go to the top of the page
+Quote Post
bartg
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Jeśli dla niego to jedna linijka kodu, to dla ciebie też...

Ludzie zrozumcie jak to brzmi:
Proszę o poprawienie tak, aby zamieniało.

Jak polecenie z roboty... A nie można: Niestety nie wiem jak to zrobić, czy ktoś wie?


--------------------
Go to the top of the page
+Quote Post
DreqX
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.08.2009

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


Niestety nie wiem jak to zrobić, czy ktoś wie?

pasuje? :x
Go to the top of the page
+Quote Post
piotr94
post
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


spokojnie biggrin.gif, po prostu jak pytasz na forum, to nie wydawaj poleceń ;-)
ja używałem czegoś takiego:
  1. function clean_chars($text){
  2. $text=str_replace('ę','_',$text);
  3. $text=str_replace('Ę','_',$text);
  4. $text=str_replace('ó','_',$text);
  5. $text=str_replace('Ó','_',$text);
  6. $text=str_replace('ą','_',$text);
  7. $text=str_replace('Ą','_',$text);
  8. $text=str_replace('?','_',$text);
  9. $text=str_replace('ˇ','_',$text);
  10. $text=str_replace('ś','_',$text);
  11. $text=str_replace('Ś','_',$text);
  12. $text=str_replace('?','_',$text);
  13. $text=str_replace('?','_',$text);
  14. $text=str_replace('ł','_',$text);
  15. $text=str_replace('Ł','_',$text);
  16. $text=str_replace('ż','_',$text);
  17. $text=str_replace('Ż','_',$text);
  18. $text=str_replace('ź','_',$text);
  19. $text=str_replace('Ź','_',$text);
  20. $text=str_replace('Ľ','_',$text);
  21. $text=str_replace('?','_',$text);
  22. $text=str_replace('ć','_',$text);
  23. $text=str_replace('Ć','_',$text);
  24. $text=str_replace('ń','_',$text);
  25. $text=str_replace('Ń','_',$text);
  26. $text=str_replace(' ','_',$text);
  27. return($text);
  28. }

działa zarówno pod UTF-8 jak i ISO, zastępuje wszystkie "krzaki" znakami "_"
potem dajesz
  1. $plik_nazwa=clean_chars($_FILES['plik']['name']);

;-)

Ten post edytował piotr94 31.01.2010, 13:22:12


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
DreqX
post
Post #9





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.08.2009

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


Wtedy mi wyskakuje, że złe rozszerzenie
Go to the top of the page
+Quote Post
darko
post
Post #10





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


tip of the day: funkcja str_replace przyjmuje jako parametr również tablicę i nie trzeba jej 25 razy wywoływać tongue.gif


--------------------
Nie pomagam na pw, tylko forum.
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 Aktualny czas: 21.08.2025 - 13:07