sen bi base path belirleyeceksin. Örneğin;
$path = 'var/www/html';
$url = $path . '/' . str_replace('..', null, $_GET['url']);
echo $url;
çağırırkende şöyle çağıracaksın;
http://siteadi.com/?url=app/init.php
böylece şu şekilde denese bile çalışmayacak;
http://siteadi.com/?url=../../app/init.php
Bir örneğini yaptım, inceleyip kendine göre uyarlayabilirsin;
https://codepen.io/tayfunerbilen/pen/eYmMEPb
Html kodların;
<div class="words"></div>
<div id="result"></div>
<input type="text" id="input">
css kodların;
.words {
border: 2px solid #aaa;
border-radius: 20px;
padding: 15px;
display: flex;
flex-wrap: wrap;
span {
height: 30px;
line-height: 30px;
padding: 0 15px;
border-radius: 30px;
font-size: 20px;
margin-right: 10px;
&.active {
background: #eee;
}
&.correct {
background: green;
color: #fff;
}
&.incorrect {
background: red;
color: #fff;
}
}
}
input {
margin-top: 20px;
width: 400px;
height: 40px;
line-height: 40px;
border-radius: 40px;
border: 1px solid #ccc;
}
javascript kodların;
const words = ['tayfun', 'erbilen', 'prototurk', 'test', 'şeker', 'şey'];
const wordsBox = $('.words');
let input = $('#input');
let current = 0;
$.each(words, (key, word) => {
wordsBox.append(`<span data-id='${key}'>${word}</span>`)
});
wordsBox.find('span:first').addClass('active');
input.on('keyup', function(e) {
if (e.keyCode == 32){
var elem = wordsBox
.find('span')
.eq(current);
if ($.trim($(this).val()) == words[current]){
elem
.removeClass()
.addClass('correct');
} else {
elem
.removeClass()
.addClass('incorrect');
}
current += 1;
input.val('');
if (current == words.length){
finish();
}
}
});
function finish(){
var correct = $('span.correct').length,
incorrect = $('span.incorrect').length;
$('#result').html('<b>Doğru:</b> ' + correct + '<br><b>Yanlış:</b> ' + incorrect);
}
artık window penceresi açtırmıyor tarayıcılar güvenlikten dolayı, o yüzden en fazla fullscreen butonu koyup tam ekran yaptırabilirsin o kadar :/
htaccess'inde kuralının sonuna (/?)
eklersen problem düzelir.
RewriteEngine On
RewriteRule ^([0-9a-zA-Z-_]+)(/?)$ index.php?do=$1 [QSA]
diyor ki bu paket kurulurken exif extension'a ihtiyacı varmış. php.ini dosyandan bunu aktif edip öyle kur diyor :)
Buradan nasıl yapılacağına bakabilirsin
sen sorgunda tek tırnak kullanıp $my_user_id
diye değişken kullanmaya çalışmışsın ama burada değişkenin değerini değil direk string olarak değişkenin adını bastırır :) O yüzden :par
kısmına yaptığın gibi bu değer içinde aynı şekilde tanımlaman lazım. Yani kısaca aşağıdaki gibi;
$sorgu = $db->prepare('SELECT * FROM tbl_dokuman WHERE
Status LIKE 1 and (FIND_IN_SET(:my_user_id, yetkililer) or (ilgilisi = :my_user_id)) and (CONCAT(`dokumanadi`, `aciklama`)) LIKE :par');
$sorgu->execute(array(
'my_user_id' => $my_user_id,
'par' => '%'.$search.'%'
));
Evet ne yazık ki doğrudan img etiketine before ve after kullanamazsın. En basit çözümü bir kapsayıcı içine alıp ona before ve after uygulamak. img içinde en uygun kapsayıcı <picture>
etiketidir muhtemelen. Yani;
<picture>
<img src="sample.png" alt="">
</picture>
<style>
picture::before {
content: 'Öncesi';
}
picture::after {
content: 'Sonrası';
}
</style>
Aslında mantık çok basit. Sen konunu ileri bir tarihe göre kaydettin diyelim. Örneğin 2 gün sonrasına.
Konuları listelerken şöyle bir koşulda listeleyeceksin.
$query = $db->query('SELECT * FROM posts WHERE date <= NOW()')->fetchAll(PDO::FETCH_ASSOC);
foreach ($query as $row){
// konularını listele
}
Bu sayede sadece şu an ki zamana eşit ya da öncesi tarihte ekli konular listelenir. Ve hiçbir işlem yapmadan, 2 gün sonra otomatik olarak eklediğin konuda gözükür :) Panelinde de listelerken eğer şu anki tarihten büyükse henüz yayınlanmadı gibi bir işaret koyarsın, böylece hiç uğraşmadan basitçe problemini çözmüş olursun.
basit bir regex işini çözer;
$metin = "418941232ALINACAK KISIM4509k2";
preg_match('@^[0-9]{9}(.*?)[0-9a-zA-Z]{6}$@i', $metin, $result);
echo $result[1];
mantık olarak kaç gün olduğunu bilmek yetiyor çünkü -1 diyerek kaç gece olduğu da çıkıyor. Örnek vermek gerekirse;
function dayCalculate($startDate, $endDate){
$start = strtotime($startDate);
$end = strtotime($endDate);
$days_between = ceil(abs($end - $start) / 86400);
return ($days_between - 1) . ' Gece ' . $days_between . ' Gün';
}
echo dayCalculate('2019-12-21', '2019-12-23');