Merhabalar,
Öncelikle bir metin belgem mevcut bu metin belgemin içerisinde alt alta bazı yazılar yazılı ve bunların oyunda aktif olmaması başında noktalı virgül olup olmamasına bağlı;
;m4a1
;ak47
;usp
glock
NOT: Eğer başında noktalı virgül yoksa oyunda yasaklı noktalı virgül varsa oyunda yasaklı değildir.
bu .ini dosyasının ismi weaprest.ini olsun ve bu .ini dosyasını internet sitemde ekrana şu şekilde içerisindekinleri okutarak yazdırıyorum;
<?
$dosya_icerigi = file_get_contents('../dosyayolu/dosyayolu/weaprest.ini');
// PHP_EOL = satır ayracı. Explode ile satırlara ayırıyoruz.
$satirlar = explode(PHP_EOL, $dosya_icerigi);
// foreach ile satırlarda dolaşıyoruz.
?>
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">Silah İsimleri</th>
<th scope="col">İŞLEM</th>
<th scope="col">DURUM</th>
</tr>
</thead>
<tbody>
<?
foreach($satirlar as $satir) {
if (!empty($satir)){
?>
<tr>
<td><? echo $satir;?></td>
<td>
<button class="btn btn-primary btn-sm rounded-0" onclick="ekstra_eklenti('<? echo $satir;?>','silah','on');" type="button" data-toggle="tooltip" data-placement="top" title="AÇ"><i class="bi bi-toggle-on"></i> AÇ</button>
<button class="btn btn-info btn-sm rounded-0" onclick="ekstra_eklenti('<? echo $satir;?>','silah','off');" type="button" data-toggle="tooltip" data-placement="top" title="KAPAT"><i class="bi bi-toggle-off"></i> KAPAT</button>
</td>
<td><?
if($satir[0] === ';') {
echo '<div id="acik_'.$satir.'" class="btn btn-danger btn-sm">YASAKLI DEĞİL</div>';
echo '<div id="kapali_'.$satir.'" class="btn btn-success btn-sm" style="display:none">YASAKLI</div>';
}
else
{
echo '<div id="acik_'.$satir.'" class="btn btn-danger btn-sm" style="display:none">YASAKLI DEĞİL</div>';
echo '<div id="kapali_'.$satir.'" class="btn btn-success btn-sm">YASAKLI</div>';
}?></td>
</tr>
<?}}?>
</tbody>Bu işlemleri yaptık dan sonra sayfayı yenilemeden .txt dosyasından seçtiğim satırların başında noktalı virgülü kaldırıp koyuyorum kaldırıp koyma işleminden önce js kodunu paylaşayım;
function ekstra_eklenti(eklenti_id,eklenti_turu,durums)
{
$.ajax({
type: "POST",
url: "eklenti_uygula.php",
data: {
amxx: eklenti_id,
tip: eklenti_turu,
durum: durums,
durumtekrar: "acipkapama"
},
cache: false,
success: function(data) {
if (data=="OK")
{
if(eklenti_turu == "silah")
{
if(durums == "on"){
document.getElementById("acik_"+eklenti_id).style.display = "none";
document.getElementById("kapali_"+eklenti_id).style.display = "";
}else if(durums == "off"){
document.getElementById("acik_"+eklenti_id).style.display = "";
document.getElementById("kapali_"+eklenti_id).style.display = "none";
}
}
if(eklenti_turu == "silah")
{
$(document).ready(function(){
toastr.success('Yasaklama işlemi güncellendi.');
});
}
}
if (data=="NO")
{
$(document).ready(function(){
toastr.error('Hata oldu sayfayı yenileyiniz!');
});
}
},
error: function(xhr, status, error) {
$(document).ready(function(){
toastr.error('Hata oldu sayfayı yenileyiniz!');
});
}
});
}BU Js kodu ile açıp kapatma butonlarına bastığım zaman
eklenti_uygula.php dosyasından gelen NO - OK yazısına bağlı olarak div deki YASAKLI ya da YASAKLI DEĞİL yazısını değiştirebiliyorum buraya kadar sorun yok şimdi
eklenti_uygula.php sayfasını paylaşayım;
if($_POST)
{
if($_POST['durumtekrar'] == "acipkapama"){
$value = $_POST['amxx'];
$type = $_POST['durum'];
$statuname = $value;
if($_POST['tip'] == "silah"){
$file = "../dosyayolu/dosyayolu/weaprest.ini";
$logyazdir = "SILAH YASAKLA";
}
$dosya_icerigi = file_get_contents($file);
if ($type == "on") {
$newfile = str_replace($value,str_replace(";",null,$value),$dosya_icerigi);
}
else if ($type=="off")
{
$newfile = str_replace($value,";".$value,$dosya_icerigi);
}
file_put_contents($file, $newfile);
if($_POST['tip'] == "silah"){
$statu = ($type == "on")? "Yasaklandı!" : "Yasak Kaldırıldı!" ;
$log_adds = $sql->prepare("INSERT INTO pnluserlog SET pnl_user_id = ?, pnl_user_name = ?, pnl_user_serveripadress = ?, pnl_user_ipadress = ?, pnl_tarih = ?, pnl_log = ?");
$adss_log = $log_adds->execute(array($user_id,$username,$ipadress,$ipadresicik,$tarihcik,"<b>$statuname <u>($logyazdir)</u> $statu!</b>"));
echo "OK";
}
}
}
else
{
echo "NO";
}Şimdi bu işlemlerin olduğu sayfayı yeniliyorum ve örnek veriyorum M4A1 silahına aç tuşuna basıyorum ve otomatik olarak sayfa yenilenmeden başındaki noktalı virgül kalkıyor ve div güncelleniyor aynı şekilde kapat tuşuna bastığım zaman m4a1 silahının başına .ini dosyasında tekrar noktalı virgül koyuyor ama ard arda kapat tuşuna bastığım zaman .ini dosyasında m4a1 yazısının önüne kapat tuşuna bastığım kadar noktalı virgül koyuyor ve aç tuşuna bastığım zaman o m4a1 yazsının başındaki noktalı virgüllerinin hepsini silmesi gerekirken silmiyor ancak sayfayı yenilediğim zaman siliyor bunun sebebide sayfayı yenilediğim zaman tablodaki onclick içerisindeki satır kısmı tekrar okunduğu için aç tuşuna bastığım zaman m4a1 yazısının önündeki tüm noktalı virgüller sorunsuz siliniyor biraz uzun anlatmış olabilirim arkadaşlar ama ben bunu nasıl yapabilirim sanırım bizim işimiz sadece burada;
if ($type == "on") {
$newfile = str_replace($value,str_replace(";",null,$value),$dosya_icerigi);
}Anlamanız için uzun uzun anlattım umarım yardım olabilirsiniz.