Şimdi aşama aşama anlatayım
tayfunun dedıgı gıbı karmasıktır
localde denedım sorunsuz calısıyor Fileinfo hatası verırse php.ini den fileinfo yu ayarla
<?php session_start(); ?>
<?php
$_SESSION['yetki']="yonetici"; //bunu yazmayı unutmusum :)
$_SESSION['uyeid']=1; // kendi sessionunu kullan üye girişinde yetki vs belirliyorsan onu. ckfinder da config.php de YAZDIGIM UYARILARI DIKKATE AL
$_SESSION['onay']=1; // ekstra kontrol uyelık onayı
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ck editör</title>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="ckfinder/ckfinder.js"></script>
</head>
<body>
<textarea class="ckeditor" name="icerik"></textarea>
<script>
CKEDITOR.replace( 'icerik', {
filebrowserBrowseUrl: 'ckfinder/ckfinder.html',
filebrowserUploadUrl: 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'
} );
</script>
</body>
</html>
BURASI ckfinder içindeki config.php
<?php session_start();
if(isset($_SESSION['yetki']) && ($_SESSION['onay']==1)){ // uye id ve uyelıgı onaylıysa işlem yaptır istersen onayı sılersın *** BURAYI BEN EXTRA GUVENLIK ICIN EKLEDIM
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
ini_set('display_errors', 0);
$config = array();
$config['authentication'] = function() {
return isset($_SESSION['yetki']) && $_SESSION['yetki'] && $_SESSION['onay']==1; // BURADAA YUKARIDAKININ AYNISINI YAPACAKSIN
};
$config['licenseName'] = '';
$config['licenseKey'] = '';
$config['privateDir'] = array(
'backend' => 'default',
'tags' => 'B/.ckfinder/tags',
'logs' => 'B/.ckfinder/logs',
'cache' => 'B/.ckfinder/cache',
'thumbs' => 'B/.ckfinder/cache/thumbs',
);
$config['images'] = array(
'maxWidth' => 1000,
'maxHeight' => 800,
'quality' => 100,
'sizes' => array(
'small' => array('width' => 480, 'height' => 320, 'quality' => 80),
'medium' => array('width' => 600, 'height' => 480, 'quality' => 80),
'large' => array('width' => 800, 'height' => 600, 'quality' => 80)
)
);
$config['backends'][] = array(
'name' => 'default',
'adapter' => 'local',
'baseUrl' => $_SESSION["yol"].'/img/', //BEN BURADA SESSION ILE DOSYA YOLUNU BELIRTTIM ISTERSEN SEN DIREK SITE ADRESI ILE BERABER YOLU YAZARSIN http://siteadi.com/img/ gibi
// 'root' => '', // Can be used to explicitly set the CKFinder user files directory.
'chmodFiles' => 0777,
'chmodFolders' => 0755,
'filesystemEncoding' => 'UTF-8',
);
$config['defaultResourceTypes'] = '';
/*
$config['resourceTypes'][] = array(
'name' => 'Files', // Single quotes not allowed.
'directory' => 'files',
'maxSize' => 0,
'allowedExtensions' => '7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip',
'deniedExtensions' => '',
'backend' => 'default'
);
*/
$config['resourceTypes'][] = array(
'name' => 'Fotoğraf',
'directory' => 'B/'.$_SESSION['uyeid'], //BURADA UYEYE OZEL DOSYA BELIRLIYORUM B DOSYA SI ALTINA UYE ID OLARAK KLASOR OLUSUR KENDINE GORE AYARLARSIN img/B/1 gıbı dusun burayı
'maxSize' => 0,
'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
'deniedExtensions' => '',
'backend' => 'default'
);
$config['roleSessionVar'] = 'yetki'; // ****** BURAYA DIKKAT *****
$config['accessControl'][] = array(
'role' => 'yonetici', /// ******* BURAYADA DIKKAT BURASI VERDIGIN IZINLER YENIDEN BOYUTLANDIR SİL VS YONETICILERIN YETKILERI
'resourceType' => '*',
'folder' => '/',
'FOLDER_VIEW' => true,
'FOLDER_CREATE' => true,
'FOLDER_RENAME' => true,
'FOLDER_DELETE' => true,
'FILE_VIEW' => true,
'FILE_CREATE' => true,
'FILE_RENAME' => true,
'FILE_DELETE' => true,
'IMAGE_RESIZE' => true,
'IMAGE_RESIZE_CUSTOM' => true
);
$config['accessControl'][] = array(
'role' => 'uye', /// ******* BURAYADA DIKKAT BURASI VERDIGIN IZINLER YENIDEN BOYUTLANDIR SİL VS UYELERIN YETKILERI
'resourceType' => '*',
'folder' => '/',
'FOLDER_VIEW' => true,
'FOLDER_CREATE' => true,
'FOLDER_RENAME' => true,
'FOLDER_DELETE' => true,
'FILE_VIEW' => true,
'FILE_CREATE' => true,
'FILE_RENAME' => true,
'FILE_DELETE' => true,
'IMAGE_RESIZE' => true,
'IMAGE_RESIZE_CUSTOM' => true
);
$config['overwriteOnUpload'] = false;
$config['checkDoubleExtension'] = true;
$config['disallowUnsafeCharacters'] = true;
$config['secureImageUploads'] = true;
$config['checkSizeAfterScaling'] = true;
//$config['htmlExtensions'] = array('html', 'htm', 'xml', 'js');
$config['htmlExtensions'] = array('html', 'htm', 'xml', 'js');
$config['hideFolders'] = array('.*', 'CVS', '__thumbs');
$config['hideFiles'] = array('.*');
$config['forceAscii'] = true;
$config['xSendfile'] = false;
$config['debug'] = true;
$config['debugLoggers'] = array('ckfinder_log', 'error_log', 'firephp');
$config['pluginsDirectory'] = __DIR__ . '/plugins';
$config['plugins'] = array();
$config['cache'] = array(
'imagePreview' => 24 * 3600,
'thumbnails' => 24 * 3600 * 365,
'proxyCommand' => 0
);
$config['tempDirectory'] = sys_get_temp_dir();
$config['sessionWriteClose'] = true;
$config['csrfProtection'] = true;
$config['headers'] = array();
return $config;
}
inputta
value="<?php echo $uruncek['urun_id']; ?>&urunresimsil=<?php echo $urunresimcek['urun_resimyol']; ?>"
yapmıssın boyle olurmu hıc :)
value="burada urun_id" olmalı ornek value="83" olacak sen bıldıgın lınk gıbı value vermıssın
https://ckeditor.com/ckfinder/download/
bunu kullanacaksın sunucu veya kendı localınde calısır
verot upload kullanıyorsun ve ındırdıgın dosya ıcerısınde multi upload ornegı var
$files = array();
foreach ($_FILES['resim'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
$handle = new Upload($file);
KODLARINI BUNUN ICINE KOY
}
name="resim[]" şeklinde olacak
implode yerıne foreach kullanacaksın urun sılmeyıde foto sılmeyıde
ayrıca
header("refresh: 2; url=urun.php"); yerıne Location kullan
header("Location: urun.php");
FOTO YOLLARININ DOGRU OLDUGUNA EMIN OL
foreach($_POST['sil'] as $sil){
$delete = $db->query("DELETE FROM urunler WHERE urun_id=$sil");
if($delete){
$urunfotosil=$_POST['urunresimsil'];
unlink("../$urunfotosil");
echo '<h4>secilen Ürünler basarıyla silindi</h4>';
header("refresh: 2; url=urun.php");
}else {
echo "<h3>secilen Ürünler silinirken bir hata olustu</h3>";
}
}
foreach kullan sorunun cozulur
CSS VE JS LERİ ÖN TANIMLI YÜKLEME çok çok önemli bir konu
<link rel="preload" as="style" href="css/bulma.css">
<link href="css/bulma.css" rel="stylesheet" type="text/css">
<link rel="preload" href="https://cdn.dogadakiler.com/jquery/genel.js" as="script">
<script src="https://cdn.dogadakiler.com/jquery/genel.js" type="text/javascript"></script>
bugunluk bu kadar devamı gelecek
Sayfa Cache Özelliği
Amerikayı yeniden keşfetmekle uğraşmadım bu kodu kullandım
https://github.com/saltun/sCache
Burada sorgulamayı sıfırladıgım için buda sayfanın açılış hızını epey arttrıdı
Dikkat edilmesi gereken şey üye girişi yapmadıysa cache özelliği aktif olmalı
Google Adsense veya benzeri reklam kodlarıda degerlerı dusurmekte
Bunu şu şekilde basitçe çözdüm
$(document).ready( function() {
setTimeout( function() {
$(".google").load("api/google.php");
$(".google2").load("api/google.php");
$(".google3").load("api/google.php");
}, 3500);
});
reklam kodlarını bir sayfada tutup sayfa açıldıktan 3,5 saniye sonra yükletiyorum hem kodlar çalışıyor hemde sayfa puanim yükseliyor
evet daha yazacagım 10 larca şey var vakıt buldukca yazıcam
aşırı dom muhabbeti şu ve ŞAUN SİTEDE TEK SORUN AŞIRI DOM ONUDA YAKINDA HALLEDECEĞİM
<div class="row is-4 mobile-4 vs vs">
<div class="row resim bilmem ne">
<p>
<a href="sss">
<img src="img">
</a>
</p>
</div>
</div>
bunu şu şekilde kullanabılırsın ve aşırı dom olmaz diyor
<a href="sss" class="row">
<img src="img">
</a>
https://dogadakiler.com/Blog/yamac-parasutu-nasil-yapilir/ test edebılırsın
evet makale işi github dan yapılıyorda cok uzun ıs :) dırek makale yazacak alan olsa guzel olur.
anonım olarak sorarken bır uyarı eklemıs bende ondan bunu yazayım dedım ınsanlar aratıp bulsun.
Soruna gelırse ben wight ve height değerlerini şu şekil hesaplayıp yazıyorum işte bu yazıda her şeyi kısmetse yazıcam
$size=getimagesize('img/B/'.$row_foto['f_yol'].'/'.$row_foto['f_byk'].'');
genıslık zaten standart verıyorum sen istersen onuda hesaplatabılırsın
<img class="is-rounded lazy" data-src="img/B/'.$row_foto['f_yol'].$row_foto['f_byk'].'" width="888" height="'.$size[1].'"
$size[1] bu yukseklıgı hesaplıyor
fonksiyon haline getirebilirmişiz aslında bunu neyse bakarız :)
mobilde 6 sn de açılır diyor öyle bir durumda yok neye göre bunları diyor onuda pek anlamış değilim
diye sormussun google testlerı 3g hızında ve düşük hızda mobil smilatörler ile yapıyor yanı oyle son model telefon ve 5g hızında degıl ondan 6 sanıye suruyor dıyor
sonuçta analizlere göre hareket edıyor mısal kullanım analizlerine bakarsan %85 cep den gırıyor sıtelere mobil cihaz bilgileride cabası