@rustemxyzdn teşekkür babında sorunun cevabını youtube da ki video da yoruma sabitledim tekrar teşekküer ederim..
evet sorunu çözdü çok teşekkür ederim htaccess den hiç aklıma gelmedi araştırmadım da bu konu da şahsen
kişinin login olduğunun bilgisini session da tutuyorsanona göre aksiyon alabilirsiniz...
elbette sağlanabilir fakat bunun için fonksiyonların sürüm notlarını kontrol ediniz örneğin file_put_contents fonksiyonu php5 ve üzerinden itibaren geçerli gibi
hocam bunu direkt chat gpt yazabilirsiniz bence anında sonuç alacaksınız ben sizin için yaptım buyurun bakın
Aşağıda, verdiğiniz CSS kodunu React Native'e dönüştürülmüş hali bulunmaktadır:
import React from 'react';
import { StyleSheet, TouchableOpacity, Text } from 'react-native';
const AppButton = () => {
return (
<TouchableOpacity style={styles.button}>
<Text style={styles.buttonText}>Test button</Text>
</TouchableOpacity>
);
};
const styles = StyleSheet.create({
button: {
borderRadius: 30,
borderWidth: 2,
borderColor: '#FFF',
backgroundColor: 'linear-gradient(345deg, #FFF2DC 10.58%, #FFF 100%)',
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 4,
},
shadowOpacity: 0.13,
shadowRadius: 4,
elevation: 3,
paddingVertical: 10,
paddingHorizontal: 30,
height: 60,
justifyContent: 'center',
alignItems: 'center',
},
buttonText: {
color: '#CE7F41',
fontWeight: 'bold',
},
});
export default AppButton;
Bu React Native bileşeni, TouchableOpacity
bileşenini kullanarak bir düğme oluşturur. Stil tanımlamaları için StyleSheet
kullanılır. button
stilleri, buttonText
stilleri ile birleştirilir ve TouchableOpacity
bileşeninin içine yerleştirilir.
Lütfen dikkat edin ki, CSS'ten farklı olarak, React Native'de bazı stil özellikleri ve değerleri farklı olabilir. Bu nedenle, bazı özellikleri React Native'in kendi stilleriyle uyumlu hale getirmek için düzenlemek gerekebilir.
yukarı da ki kodunuz 5 sürümleri ile çalışacaksanız gayet sağlıklı fakat en önemli güvenlik bence daima bir teknoloji de yeni proje ye başlarken güncel versiyonda başlatmak olmalı derim vesselam işin özü php 8.1 ve üstü versiyonlar da uyumlu hale getirdim ve yapmış olduğum değişiklik güncelleme vs durumlarını yorum satırları ile aşağı da belirtim
function cleaninput($input) {
$search = array(
'@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments
);
$output = preg_replace($search, '', $input);
return $output;
}
function sanitize($input) {
if (is_array($input)) {
foreach ($input as $var => $val) {
$output[$var] = sanitize($val);
}
} else {
// Değişiklik: Çift tırnak ve tek tırnakları aynı anda kaldırmak için str_replace güncellendi
$input = str_replace(['"', "'"], '', $input);
$input = cleaninput($input);
// Değişiklik: ENT_HTML5 flag'i eklendi
$output = htmlentities($input, ENT_QUOTES | ENT_HTML5);
}
return @$output;
}
function executeSecurity() {
$_POST = sanitize($_POST);
$_GET = sanitize($_GET);
$_REQUEST = sanitize($_REQUEST);
$_COOKIE = sanitize($_COOKIE);
if (isset($_SESSION)) {
$_SESSION = sanitize($_SESSION);
}
$request_uri = $_SERVER['REQUEST_URI'];
$query_string = $_SERVER['QUERY_STRING'];
// Değişiklik: patterns dizisi yorum satırları eklenerek güncellendi
$patterns = array(
"union", // Güncelleme: Union sorgularını engelleme
"coockie", // Eksik: Doğru yazım "cookie" olmalı
"concat", // Güncelleme: Concat sorgularını engelleme
"alter", // Güncelleme: Alter sorgularını engelleme
"table", // Güncelleme: Table sorgularını engelleme
"where", // Güncelleme: Where sorgularını engelleme
"exec", // Güncelleme: Exec sorgularını engelleme
"shell", // Güncelleme: Shell sorgularını engelleme
"wget", // Güncelleme: Wget sorgularını engelleme
"**/", // Güncelleme: Özel karakterleri engelleme
"/**", // Güncelleme: Özel karakterleri engelleme
"0x3a", // Güncelleme: Özel karakterleri engelleme
"null", // Güncelleme: Null sorgularını engelleme
"DR/**/OP/", // Güncelleme: Özel karakterleri engelleme
"drop", // Güncelleme: Drop sorgularını engelleme
"/*", // Güncelleme: Özel karakterleri engelleme
"*/", // Güncelleme: Özel karakterleri engelleme
"*", // Güncelleme: Özel karakterleri engelleme
"--", // Güncelleme: Özel karakterleri engelleme
";", // Güncelleme: Özel karakterleri engelleme
"||", // Güncelleme: Özel karakterleri engelleme
"'", // Güncelleme: Özel karakterleri engelleme
"' #", // Güncelleme: Özel karakterleri engelleme
"or 1=1", // Güncelleme: Özel karakterleri engelleme
"'1'='1", // Güncelleme: Özel karakterleri engelleme
"BUN", // Güncelleme: Özel karakterleri engelleme
"S@BUN", // Güncelleme: Özel karakterleri engelleme
"char", // Güncelleme: Char sorgularını engelleme
"OR%", // Güncelleme: Özel karakterleri engelleme
"`", // Güncelleme: Özel karakterleri engelleme
"[", // Güncelleme: Özel karakterleri engelleme
"]", // Güncelleme: Özel karakterleri engelleme
"<", // Güncelleme: Özel karakterleri engelleme
">", // Güncelleme: Özel karakterleri engelleme
"++", // Güncelleme: Özel karakterleri engelleme
"script", // Güncelleme: Script sorgularını engelleme
"select", // Güncelleme: Select sorgularını engelleme
"1,1", // Güncelleme: Özel karakterleri engelleme
"substring", // Güncelleme: Substring sorgularını engelleme
"ascii", // Güncelleme: Ascii sorgularını engelleme
"sleep(", // Güncelleme: Sleep sorgularını engelleme
"&&", // Güncelleme: Özel karakterleri engelleme
"insert", // Güncelleme: Insert sorgularını engelleme
"between", // Güncelleme: Between sorgularını engelleme
"values", // Güncelleme: Values sorgularını engelleme
"truncate", // Güncelleme: Truncate sorgularını engelleme
"benchmark", // Güncelleme: Benchmark sorgularını engelleme
"sql", // Güncelleme: Sql sorgularını engelleme
"mysql", // Güncelleme: Mysql sorgularını engelleme
"%27", // Güncelleme: Özel karakterleri engelleme
"%22", // Güncelleme: Özel karakterleri engelleme
"(", // Güncelleme: Özel karakterleri engelleme
")", // Güncelleme: Özel karakterleri engelleme
"<?", // Güncelleme: Özel karakterleri engelleme
"<?php", // Güncelleme: Özel karakterleri engelleme
"?>", // Güncelleme: Özel karakterleri engelleme
"../", // Güncelleme: Özel karakterleri engelleme
"/localhost",// Güncelleme: Özel karakterleri engelleme
"127.0.0.1", // Güncelleme: Özel karakterleri engelleme
"loopback", // Güncelleme: Özel karakterleri engelleme
":", // Güncelleme: Özel karakterleri engelleme
"%0A", // Güncelleme: Özel karakterleri engelleme
"%0D", // Güncelleme: Özel karakterleri engelleme
"%3C", // Güncelleme: Özel karakterleri engelleme
"%3E", // Güncelleme: Özel karakterleri engelleme
"%00", // Güncelleme: Özel karakterleri engelleme
"%2e%2e", // Güncelleme: Özel karakterleri engelleme
"input_file",// Güncelleme: Özel karakterleri engelleme
"execute", // Güncelleme: Execute sorgularını engelleme
"mosconfig", // Güncelleme: Mosconfig sorgularını engelleme
"environ", // Güncelleme: Environ sorgularını engelleme
"scanner", // Güncelleme: Scanner sorgularını engelleme
"path=.", // Güncelleme: Özel karakterleri engelleme
"mod=.", // Güncelleme: Özel karakterleri engelleme
"eval\(", // Güncelleme: Eval sorgularını engelleme
"javascript:", // Güncelleme: Javascript protokolünü engelleme
"base64_", // Güncelleme: Özel karakterleri engelleme
"boot.ini", // Güncelleme: Özel karakterleri engelleme
"etc/passwd",// Güncelleme: Özel karakterleri engelleme
"self/environ", // Güncelleme: Özel karakterleri engelleme
"md5", // Güncelleme: Md5 sorgularını engelleme
"echo.*kae", // Güncelleme: Özel karakterleri engelleme
"=%27$" // Güncelleme: Özel karakterleri engelleme
);
foreach ($patterns as $pattern) {
// Değişiklik: strlen yerine mb_strlen kullanıldı
if (mb_strlen($query_string) > 255 || stripos($query_string, $pattern) !== false) {
$activity = json_encode(['post' => $_POST, 'get' => $_GET, 'request' => $_REQUEST, 'url' => $_SERVER['REQUEST_URI'], 'IP' => hacker_ip(), 'time' => date('d-m-Y H:i:s')]);
$new_filename = date('d-m-Y') . "_" . 'suspicious_activity';
file_put_contents('logs/' . $new_filename . '.log', $activity, FILE_APPEND);
echo "IP RECORDED and ACTIVITY BLOCKED";
exit(1);
}
}
}
function hacker_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP')) {
$ipaddress = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_X_FORWARDED')) {
$ipaddress = getenv('HTTP_X_FORWARDED');
} elseif (getenv('HTTP_FORWARDED_FOR')) {
$ipaddress = getenv('HTTP_FORWARDED_FOR');
} elseif (getenv('HTTP_FORWARDED')) {
$ipaddress = getenv('HTTP_FORWARDED');
} elseif (getenv('REMOTE_ADDR')) {
$ipaddress = getenv('REMOTE_ADDR');
} else {
$ipaddress = 'UNKNOWN';
}
return $ipaddress;
}
executeSecurity();
anlık realtime işlemi için bunu öneririm https://pusher.com/ onun dışında zaten ana bilgisayarı projeksiyon yansıtması yapacağın için süre dolana kadar ana ekran da boş sayfa göstertirsin sonuçlar pusher ile anlık güncelleyeceğin için istediğin soncu elde edersin
inner join yapısını araştırabilirsiniz efendim
tablonuzu zaten oluşturmuşsunuz beyfendi muhtemelen chat-gpt den yardımla yazılmış bir kod bu belli ki yine aynı prompt ta bunun mysql bağlanımını da yazdırabilirsiniz...
https://rapidapi.com/tr da pek çok api bulunuyor bir inceleyin isterseniz...