işte sen güncelleme işleminden önce öyle bir eposta ya da kullanıcı adının olup olmadığını kontrol edeceksin. Kontrol ederkende user_id'si şu an ki güncellenen üyenin id'sine eşit olmayna diye bakacaksın, o zaman bu hatayı almayıp güncelleme işlemini başarıyla yapacaksın.
redirect ve flash işlemini for dışında yaparsan problem çözülebilir.
aslında en basit update işleminde şunu söylemen lazım
where user_id != '1'
burada ki 1 update yapan kullanıcının id'si, bunu yaparsan sorunun çözülür :)
getComputedStyle()
metodu ile alman mümkün. Senin örneğin için ise şöyle bir kod verebilirim;
var fontSize = window.getComputedStyle(
document.getElementById('test'), ':before'
).getPropertyValue('font-size');
alert(fontSize);
Örneğin images klasörünün içinde .jpg uzantılı birden fazla arkaplan görselin olsun.
$images = [];
foreach(glob(__DIR__ . '/images/*.jpg') as $image){
array_push($images, $image);
}
$random = array_rand($images);
echo $images[$random]; // rasgele resmin
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