Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pod FireFox chodzi pod IE nie
Forum PHP.pl > Forum > PHP
yaszko
WItam
posiadam skrypty uploadu (www.7images.pl).
pod firefoxem chodzi idealnie, ale kiedy odpalam pod IE i chce zuploadowac plik na serwer caly czas wykakuje blad (zly typ pliku dopuszczlene to JPG GIF ... ) , a uploaduje plik z formatem JPG . Pomocy exclamation.gif

oto zwartosc piku index.php (tam jest upload):

  1. <?php
  2.  
  3. include("./lang/lang_polish.php");
  4. include("config.php");
  5. include("include/common.php");
  6.  
  7.  
  8. if(isset($_POST['Submit']))
  9. {
  10. $uzyj_nazwy = $_FILES['image']['name'];
  11. $uzyj_nazwy_tmp = $_FILES['image']['tmp_name'];
  12. $uzyj_nazwy_roz = $_FILES['image']['size'];
  13. $uzyj_nazwy_typ = $_FILES['image']['type'];
  14.  
  15. if (isset($_FILES['image']['name'])) 
  16. {
  17. if($uzyj_nazwy_roz > $maxrozmiar)
  18. {
  19. include("template/header.php");
  20. errform('<CENTER>Rozmiar pliku jest za duży.<br>Maxymalny rozmiar to: <b>1000 kb</b><FORM>
  21. <INPUT TYPE="BUTTON" VALUE=" Powrót" ONCLICK="history.back(-1)">
  22. </FORM></CENTER><BR><BR>');
  23. require_once("template/footer.php");
  24. }
  25. else
  26. {
  27. $type = array('image/jpeg', 'image/gif', 'image/png', 'image/jpg');
  28. if($uzyj_nazwy_typ !== $type[0] and $uzyj_nazwy_typ !== $type[1] and $uzyj_nazwy_typ !== $type[2] and $uzyj_nazwy_typ !== $type[3])
  29. {
  30.  
  31. include("template/header.php");
  32. errform('<CENTER>Zły typ pliku.<br>Dopuszczalne to: <b>JPG, GIF, PNG</b><FORM>
  33. <INPUT TYPE="BUTTON" VALUE=" Powrót" ONCLICK="history.back(-1)">
  34. </FORM></CENTER><BR><BR>');
  35. require_once("template/footer.php");
  36. }
  37.  
  38. $numer = @rand(100000, 999999);
  39.  
  40. /*// Łączymy się z bazą danych:
  41. $sql = @mysql_connect($host, $user, $pass) or die('Blad laczenie');
  42. @mysql_select_db($baza, $sql) or die('blad wybieranie');*/
  43.  
  44. $data = @date('Y');
  45.  
  46. /*// Wykonujemy zapytanie, zapisując w bazie informacje o zdjęciu.
  47. $imageinfo = "INSERT INTO images VALUES ('NULL', '".$prefix."', '".$numer."', '".$uzyj_nazwy."', '".$uzyj_nazwy_typ."', '".$uzyj_nazwy_roz."', '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REMOTE_HOST']."', '".$data."')";
  48. @mysql_query($imageinfo) or die('blad wkladanie');*/
  49.  
  50.  
  51. $obrazek = $katalog . $numer . $uzyj_nazwy;
  52. $image = $adres . $katalog . $numer . $uzyj_nazwy;
  53.  
  54. $obrazek_min = $katmin . $prefix . $numer . $uzyj_nazwy;
  55. $image_thumb = $adres . $obrazek_min;
  56.  
  57. @move_uploaded_file($uzyj_nazwy_tmp, $obrazek);
  58. @chmod ($obrazek, @octdec(666));
  59.  
  60. $rozmiary = @getimagesize($obrazek);
  61.  
  62. $proporcje = $rozmiary[1] / $rozmiary[0]; 
  63.  
  64. if ($rozmiary[1] <= $rozmiar)
  65. {
  66. $nowa_szerokosc = $rozmiary[0];
  67. $nowa_wysokosc = $rozmiary[1];
  68. }
  69. else
  70. {
  71. $nowa_wysokosc = $rozmiar;
  72. $nowa_szerokosc = @abs($nowa_wysokosc / $proporcje);
  73. }
  74. $ext = $uzyj_nazwy_typ;
  75. $ext = @str_replace("image/jpeg", "ImageCreateFromJPEG", "$ext");
  76. $ext = @str_replace("image/jpg", "ImageCreateFromJPEG", "$ext");
  77. $ext = @str_replace("image/gif", "ImageCreateFromGIF", "$ext");
  78. $ext = @str_replace("image/png", "ImageCreateFromPNG", "$ext");
  79. $ext = @str_replace("image/JPG", "ImageCreateFromJPEG", "$ext");
  80.  
  81. $obrazek_zrodlowy=$ext($obrazek) or die($lang['source_img_error'] . $ext);
  82.  
  83. $hide_text = ($nowa_szerokosc < 150) ? 1 : 0;
  84.  
  85. $bar_height = ($hide_text) ? 0 : 15;
  86.  
  87. $res = @getimagesize("".$katalog . $numer . $uzyj_nazwy."");
  88. $typ = $res['mime'];
  89. $width = $res[0];
  90. $height = $res[1];
  91.  
  92. $fsize = @filesize($katalog . $numer . $uzyj_nazwy);
  93. $ext = 0;
  94. while($fsize > 1024)
  95. {
  96. $fsize = $fsize / 1024;
  97. $ext++;
  98. }
  99. $size = @explode(".", $fsize);
  100. $obrazek_docelowy = @imagecreatetruecolor( $nowa_szerokosc, $nowa_wysokosc + $bar_height );
  101. @imagerectangle( $obrazek_docelowy, 0, 0, $nowa_szerokosc, $nowa_wysokosc, @imagecolorallocate( $obrazek_docelowy, 0, 0, 0) );
  102.  
  103. $dw = $nowa_szerokosc;
  104.  
  105. @imagecopyresampled($obrazek_docelowy,$obrazek_zrodlowy,1,1,0,0, $nowa_szerokosc,$rozmiar,@ImageSX($obrazek_zrodlowy),@ImageSY($obrazek_zrodlowy));
  106.  
  107. if( !$hide_text )
  108. {
  109. @imagestring( $obrazek_docelowy, 2, 30, $nowa_wysokosc, "".$width."x".$height." ".$size[0]."kb", @imagecolorallocate( $obrazek_docelowy, 255, 255, 255 ) );
  110. }
  111. @imagegif($obrazek_docelowy, $obrazek_min, $jakosc);
  112. @imagedestroy($obrazek_zrodlowy);
  113. @imagedestroy($obrazek_docelowy);
  114. @chmod ($obrazek_min, @octdec(666));
  115.  
  116. require_once("./template/upload_done.php");
  117. }
  118. }
  119. }
  120. else if($_GET['act'])
  121. {
  122. require_once("./template/header.php");
  123. switch ($_GET['act'])
  124. {
  125. case 'kontakt':
  126. wczytaj(kontakt);
  127. break;
  128. case 'regulamin':
  129. wczytaj(regulamin);
  130. break;
  131. case 'pomoc':
  132. wczytaj(pomoc);
  133. break;
  134. default:
  135. }
  136. require_once("template/footer.php");
  137. }
  138. else
  139. {
  140. require_once("template/upload_start.php");
  141. }
  142.  
  143. ?>


prosze o pomoc z gory THX !
legorek
Bo IE lubi różne kosmosy wysłać w $_FILES['image']['type']; tyczy sie to szczególnie plików JPG. Po za tym twój skrypt łatwo oszukać wysyłając fałszywy nagłówek. Powiem twojemu skryptowi, że wysyłam mu image/jpeg, a wyśle mu piękne php z kodem, który wstrzyknę gdzieś i wyczyszcze ci DB ;-) getimagesize" title="Zobacz w manualu php" target="_manual jest lekiem na Twój problem
yaszko
mozna troche konkretnie j biggrin.gif
najlepiej gdyby ktos dal gotowy kod
z gory dziekuje
pozdro
skowron-line
uzyj funkji pathinfo() do sprawdzenia rozszezenia pliku jaki jest uplodowany i zrob warunek if
jak nie bedziesz wiedzial jak to poszukaj na forum bylo multum razy
dyktek
id jpega widzi jako image/pjpeg wiec dodaj sobie jeszcze

  1. <?php
  2. $ext = @str_replace("image/pjpg", "ImageCreateFromJPEG", "$ext"
  3. ?>


i powinno grać
yaszko
jeszcze jedno pytanie smile.gif
do skrypty ponizej chcialbym wstawic kod tworzenia miniaturek ze skryptu powyzej smile.gif

oto kod upload.php (skrypt bez miniaturek)

  1. <?
  2. include("include/common.php");
  3. include("include/header.php");
  4. if($loggedin){
  5. include("include/accmenu.php");
  6. }
  7. if( $_POST['submit'] && $_FILES['attached']['name'] ){
  8. $ok_filetypes = explode("|",$att_filetypes);
  9. if (!$_FILES['attached']['error'] && $_FILES['attached']['size'] > $att_max_size*1024){
  10. errform('<CENTER>Sorry, but the attached file is too large. Please reduce the size of it's contents.</CENTER><BR><BR>'); // #err
  11. $step = 1;
  12. }
  13. $filename = (!$_FILES['attached']['error'] ? substr( basename($_FILES['attached']['name']), -30 ) : '');
  14. $x = strtolower( substr($_FILES['attached']['name'], -3));
  15. if($filename && !in_array($x, $ok_filetypes) ){
  16. errform('<CENTER><b>Zły typ pliku. Dozwolone to: JPG, GIF, PNG</b></CENTER><BR><BR>');
  17. $step = 1;
  18. }
  19. if(!$posterr){
  20. if(!isset($_GET["ipaddress"]) || ($_GET["ipaddress"] == "")) {
  21. $ipaddress = $_SERVER['REMOTE_ADDR'];
  22. $local = 1;
  23. } else {
  24. $ipaddress = $_GET["ipaddress"];
  25. $local = 0;
  26. }
  27. $uniq = substr( md5(uniqid (rand())), 0, 10 );
  28. $ext = strtolower( substr($_FILES['attached']['name'], -3));
  29. move_uploaded_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext );
  30. $strQuery = "INSERT INTO images SET ";
  31. $strQuery .= "filename='".$uniq.".".$ext."',";
  32. $strQuery .= "ipaddress='{$ipaddress}',";
  33. $strQuery .= "date='".time()."',";
  34. $strQuery .= "pkey='{$uniq}',";
  35. if($myuid){
  36. $strQuery .= "user='{$myuid}',";
  37. }
  38. $strQuery .= "status='1'";
  39. $result = mysql_query($strQuery) or die( mysql_error() );
  40. $aid = mysql_insert_id();
  41. if($aid){
  42. $filen = $siteurl."/".str_replace('./', '', $att_path)."/".$uniq.".".$ext;
  43. $filen = str_replace('http://','%%',$filen);
  44. $filen = str_replace('//','/',$filen);
  45. $filen = str_replace('%%','http://',$filen);
  46. $step = 2;
  47. }else{
  48. $step = 1;
  49. }
  50. }
  51. }else{
  52. $step = 1;
  53. }
  54. if($step == 1){
  55. ?>
  56. <table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
  57. <tr>
  58. <td>
  59. <div align=center>
  60. <form ENCTYPE="multipart/form-data" method="post" name="form1">
  61. <INPUT NAME="attached" TYPE="file" size="50"><br>
  62. Typy plików: <b><?=implode("</b>, <b>",explode("|",$att_filetypes))?></b><br>
  63. Max Rozmiar <b><?=$att_max_size?>KB</b>
  64. <br><br>
  65. <input type="submit" name="submit" value="Wyślij" onclick="this.value='Wysyłam ...'">
  66. </form>
  67. </div>
  68. </td>
  69. </tr>
  70. </table>
  71. <?
  72. }else{ ?>
  73. <div align="center"><b>Upload przebiegł pomyślnie!</b><br>
  74. <br>
  75. </div>
  76. <table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
  77. <tr>
  78. <td><div align="center"><img src="<?=$filen?>"></div></td>
  79. </tr>
  80. <tr>
  81. <td><div align="center"><br>
  82. To insert this image in a message board post copy and paste the following
  83. code:<br>
  84. <textarea name="textarea" cols="100" wrap="soft" rows="3">[img]<?=$filen?>[/img]</textarea>
  85. </div></td>
  86. </tr>
  87. <tr>
  88. <td><div align="center"><br>
  89. To send this image to friends and family, copy and paste this code: <br>
  90. <textarea name="textarea2" cols="100" rows="4"><?=$filen?></textarea>
  91. </div></td>
  92. </tr>
  93. <tr>
  94. <td><div align="center"><br>
  95. To insert this image using HTML, copy and paste the following
  96. code:<br>
  97. <textarea name="textarea3" cols="100" wrap="soft" rows="3"><a href="<?=$siteurl?>" target="_blank"><img alt="Image Hosted by <?=$sitename?>" src="<?=$filen?>" /></a></textarea>
  98. </div></td>
  99. </tr>
  100. <tr>
  101. <td>&nbsp;</td>
  102. </tr>
  103. </table>
  104. <? } ?>
  105. <?
  106. include("include/footer.php");
  107. ?>


Skrypt z miniaturkami w pierwszym poscie smile.gif
z gory thx za pomoc smile.gif
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.