PHP - urun ekleme resim upload ta sorun
PHP - urun ekleme resim upload ta sorun
Simdi basit bi urun girisi formu var.
<form action="ekle.php" method="POST" enctype="multipart/form-data">
Urun Adi: <input type="text" name="txt_urun_adi"><br>
Urun Fiyati: <input type="text" name="txt_urun_fiyat"><br>
Aciklama:<br>
<textarea style="width: 300" rows="3" name="txt_urun_acik"></textarea>
<br><input type="hidden" name="MAX_FILE_SIZE" value="250000"><br>
Resim Dosyasi: <input name="file" type="file" id="file">
<br><input type="submit" name="submit" value="Urun Ekle">
</form>
<?php
require("db_config.php");
dolarconnection = @mysql_connect(dolardb_host, dolardb_user, dolardb_password) or die("Database e ulasimda hata.");
echo "database e balglandi <br>";
mysql_select_db(dolardb_name, dolarconnection);
dolarfname = dolar_FILES[´file´][´name´];
copy(dolar_FILES[´file´][´tmp_name´], "/urun/".dolar_FILES[´file´][´name´]) or die ("Could not copy");
dolarvar = dolar_POST["txt_urun_adi"];
dolarvar2 = dolar_POST["txt_urun_fiyat"];
dolarvar3 = dolar_POST["txt_urun_acik"];
dolarlen = strlen(dolarvar);
dolarlen2 = strlen(dolarvar2);
dolarlen3 = strlen(dolarvar3);
if(len<0 || len2<0 || len3<0)
{
echo "Giris yapiniz";
exit();
}
dolarisim = dolar_POST["txt_urun_adi"];
dolarfiyat = dolar_POST["txt_urun_fiyat"];
dolaraciklama = dolar_POST["txt_urun_acik"];
dolarquery = "INSERT INTO urunler (urun_id, urun_adi, urun_fiyat, urun_acik, urun_resim) VALUES (NULL, ´dolarisim´, ´dolarfiyat´, ´dolaraciklama´, ´dolarfname´)";
mysql_query(dolarquery,dolarconnection) or die(mysql_error());
// }
?>
fakat dosya upload u yapmiyor bu soruna yardimci olabilecek bir arkadas varsa memnuniyet duyarim.
Cvp
copy(dolar_FILES[´file´][´tmp_name´], "/urun/".dolar_FILES[´file´][´name´]) or die ("Could not copy");
>>
copy(dolar_FILES[´file´][´tmp_name´], "urun/".dolar_FILES[´file´][´name´]) or die ("Could not copy");
Ben bu şekliyle denedim upload ediyor ve db ye yazıyor. Buradaki tırnakları değiştiriyor. Normal tırnak oalcak. Sadece klasörün başındaki / iaşeretini kaldırdım.
Birde bazı serverlar cdmode 755 de upload ediyor bazıları 777 istiyor.
Kolay gelsin.
Cvp
oldu sagolasin bi o sekilde deneme yapim , Bu arada resize thumb icin tavsiye edebilecegin bi script varmi.
Cvp
imagecopyresampled [url]http://tr2.php.net/manual/en/function.imagecopyresampled.php[/url] fonksiyonu çok başarılı.
[pre]
<?php
if(!dolar_POST[txt_urun_adi]=="" and !dolar_POST[txt_urun_fiyat]=="" and !dolar_POST[txt_urun_acik]==""){
dolaruploadfolder = "urun/";
dolarfilename = dolaruploadfolder.dolar_FILES[´file´][´name´];
dolarcopy = copy(dolar_FILES[´file´][´tmp_name´],dolarfile_name);
if(dolarcopy){
echo "Resim gönderildi";
dolarisim = htmlspecialchars(dolar_POST[txt_urun_adi], ENT_QUOTES);
dolarfiyat = htmlspecialchars(dolar_POST[txt_urun_fiyat], ENT_QUOTES);
dolaraciklama = htmlspecialchars(dolar_POST[txt_urun_acik], ENT_QUOTES);
dolarquery = "INSERT INTO urunler (urun_id, urun_adi, urun_fiyat, urun_acik, urun_resim) VALUES ("", ´dolarisim´, ´dolarfiyat´, ´dolaraciklama´, ´dolarfilename´)";
mysql_query(dolarquery);
}
else{
dolarhata = "Resim gönderimi hatali";
echo "<meta http-equiv="refresh" content="2;url=gonderi.php">";
}
}else{
dolarhata = "Alanlari bos birakmayiniz";
echo "<meta http-equiv="refresh" content="2;url=gonderi.php">";
}
if(dolarhata){echo "<script language="JavaScript">alert(´".dolarhata."´)</script>";}
?>
[/pre]
buna benzer birşekilde düzenlersen daha iyi olabilir. Girişlerin olup olmadığını bunun yerine javascriptle gönderi dosyasında kontrol edersen daha iyi olur bence. Resize işlemini de burada halledersin. Kopyaladığın dosyayı gösterip, işlem yapıtırıp yazdırırsın.
Kolay gelsin.
Cvp
değişkenleri şu şekilde alırsanız daha güvenli olur.
birçok server standart olarak addslashes() fonksiyonu uyguluyor ama yinede işi garantiye almak lazım.
şu şekilde kullanın:
dolarvar = htmlspecialchars(dolar_POST["txt_urun_adi"]);
Thumbnail için şöyle birşey var:
[pre]
function tirnakJPG(dolardosyadizin, dolarad)
{
dolarfile= dolardosyadizin . ´/´. dolarad .".jpg";
dolarkayitdosya= dolardosyadizin . ´/´. dolarad ."_t.jpg";
dolarsize = getimagesize(dolarfile);
dolaruret = imagecreatefromjpeg(dolarfile);
dolarempt = imagecreatetruecolor(164,100); //thumbnail boyu
imagecopyresized(dolarempt, dolaruret, 0, 0, dolarbolum, 0, 164, 100, dolarsize[0], dolarsize[1]);
imagejpeg(dolarempt,dolarkayitdosya,70);
imagedestroy(dolarempt);
imagedestroy(dolaruret);
}
/pre]