Witajcie,
Mam problem podobnej natury. Też nie dodaje mi pliku, ale tylko pod Internet Explorerem. Pod Mozillą i Operą skrypt działa bez zarzutów. Podobnie inny skrypt - do dodawania newsów; kiedy nie dołączam zdjęcia, pod IE wszystko zapisuje się w bazie. A kiedy chcę dodać fotkę, to nic się nie wykonuje - ani MySQL, ani upload. Czym to może być spowodowane? Z góry dziękuję za wszelkie sugestie.
class formularz
{
private $galeria;
private $zdjecie;
private $rozszerzenie;
private $nazwafotki;
private $opis;
private $autor;
private $submit;
private $submit2;
private $data;
public $nazwapodf;
private $mime;
private $nazwakat;
private $idkat;
function __construct()
{
$this ->rozszerzenie = $_FILES['plik']['tmp_name'];
$this ->zdjecie = $_FILES['plik']['name'];
$this ->mime = $_FILES['plik']['type'];
$this ->galeria = $_POST['galeria'];
$this->submit = $_POST['submit'];
$this->submit2 = $_POST['submit2'];
$this->opis = $_POST['opis'];
$this->autor = $_POST['autor'];
$this->data = date("Y-m-d");
$zastap = array("ą" , "Ą" , "ć" , "Ć" , "ę" , "Ę" , "ł" , "Ł" , "ń" , "Ń" , "ó" , "Ó" , "ś" , "Ś" , "ż" , "Ż" , "ź" , "Ź" ," ");
$zastap2 = array("a" , "a" , "c" , "c" , "e" , "e" , "l" , "l" , "n" , "n" , "o" , "o" , "s" , "s" , "z", "z", "z", "z", "_");
$nazwafotki2 = strtolower("min_$this->zdjecie");
$this->nazwafotki = str_replace($zastap, $zastap2, $nazwafotki2);
}
private function robMysql()
{
mysql_query("INSERT INTO zdjecia (nazwa_zdjecia , opis_zdjecia , data_zdjecia , galeria_zdjecia , autor_zdjec
ia)
VALUES ('$this->nazwafotki' , '$this->opis' , '$this->data' , '$this->galeria' , '$this->autor') ");
}
private function zmiennazwe()
{
$zastap = array("ą" , "Ą" , "ć" , "Ć" , "ę" , "Ę" , "ł" , "Ł" , "ń" , "Ń" , "ó" , "Ó" , "ś" , "Ś" , "ż" , "Ż" , "ź" , "Ź" ," ");
$zastap2 = array("a" , "a" , "c" , "c" , "e" , "e" , "l" , "l" , "n" , "n" , "o" , "o" , "s" , "s" , "z", "z", "z", "z", "_");
$nazwafotki2 = strtolower("min_$this->zdjecie");
$this->nazwafotki = str_replace($zastap, $zastap2, $nazwafotki2);
}
private function robkatalog()
{
$zastapa = array("ą" , "Ą" , "ć" , "Ć" , "ę" , "Ę" , "ł" , "Ł" , "ń" , "Ń" , "ó" , "Ó" , "ś" , "Ś" , "ż" , "Ż" , "ź" , "Ź" ," ");
$zastapa2 = array("a" , "a" , "c" , "c" , "e" , "e" , "l" , "l" , "n" , "n" , "o" , "o" , "s" , "s" , "z", "z", "z", "z", "_");
$nazwapodf2 = strtolower($this->galeria);
$this->nazwapodf = str_replace($zastapa, $zastapa2, $nazwapodf2);
}
private function katalogowanie()
{
$this->robkatalog();
$this->katalog = "galerie/$this->nazwapodf";
if(!is_dir($this->katalog))
{
mkdir($this->katalog, 0777);
chmod($this->katalog, 0777);
}
chdir($this->katalog);
}
public function upjpg()
{
$this->zmiennazwe();
$this->katalogowanie();
move_uploaded_file("$this->rozszerzenie", "$this->zdjecie");
$img = imagecreatefromjpeg("$this->zdjecie");
$width = imagesx($img);
$height = imagesy($img);
if ($width > 700 || $height > 700)
{
$height_mini = 100;
$width_mini = 270;
}
elseif ($width < 700 && $height < 700)
{
$height_mini = $height/2;
$width_mini = $width/2;
}
$img_mini = imagecreatetruecolor($width_mini, $height_mini);
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
imagejpeg($img_mini, "$this->nazwafotki", 80);
imagedestroy($img);
imagedestroy($img_mini);
unlink("$this->zdjecie");
echo "<span>Udało Ci się wgrać $this->nazwafotki</span>";
}
public function upgif()
{
$this->zmiennazwe();
$this->katalogowanie();
move_uploaded_file("$this->rozszerzenie", "$this->zdjecie");
$img = imagecreatefromgif("$this->zdjecie");
$width = imagesx($img);
$height = imagesy($img);
if ($width > 700 || $height > 700)
{
$height_mini = 350;
$width_mini = 350;
}
elseif ($width < 700 && $height < 700)
{
$height_mini = $height/2;
$width_mini = $width/2;
}
$img_mini = imagecreatetruecolor($width_mini, $height_mini);
$tlo=ImageColorAllocate($img_mini,255 ,255 ,255);
ImageFill($img_mini, 0, 0, $tlo) ;
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
imagegif($img_mini, "$this->nazwafotki", 80);
imagedestroy($img);
imagedestroy($img_mini);
unlink("$this->zdjecie");
echo "<span>Udało Ci się wgrać $this->nazwafotki</span>";
}
public function pokazf()
{
?>
<div id="zawartosc">
<div class="contenu">
<span><h2>dodaj zdjęcie</h2></span>
<form method="post" enctype="multipart/form-data" name="inputform">
<span>Dodaj zdjęcie</span>
<span><input name="plik" type="file" class="wgranie" /></span>
<span>Opis zdjęcia</span>
<span><textarea name="opis" rows="10" cols="40"></textarea></span>
<span>Autor zdjęcia</span>
<span><input type="text" name="autor" /></span>
<span>Nazwa galerii</span>
<span><select name="galeria">
<?php $this->wyborgalerii(); ?>
</select>
</span>
<span><input type="submit" name="submit" value="dodaj"> <input type="submit" name="submit2" value="cofnij"></span>
</form>
</div>
</div>
<?php
$this->robupdate();
}
private function wyborgalerii()
{
$this->polka = mysql_query("SELECT * FROM galeria ORDER BY nazwa_galeria "); {
$this->nazwakat = $this->wiersz['nazwa_galeria'];
$this->idkat = $this->wiersz['id_galeria'];
?>
<option value="
<?php echo $this->idkat;?>">
<?php echo $this->nazwakat;?></option>
<?php
}
}
private function robupdate()
{
if ($this->submit && $this->zdjecie != '')
{
switch($this->mime)
{
case 'image/gif':
$this->robMysql();
$this->upgif();
echo "<span>Udało Ci się dodać nowe zdjęcie</span>"; break;
case 'image/jpeg':
$this->robMysql();
$this->upjpg();
echo "<span>Udało Ci się dodać nowe zdjęcie</span>"; break;
}
}
elseif ($this->submit && $this->zdjecie == '')
{
echo "<span>Musisz wgrać zdjęcie</span>"; }
elseif ($this->submit2)
{
header("Location: zarzadzajfot.php"); }
}
}//koniec klasy
$nowka = new formularz;
$nowka ->pokazf();