function cot_installConfigReplace(&$file_contents, $config_name, $config_value)
{
file_put_contents('debug-log.txt', "GELEN DEĞER: $config_value\n", FILE_APPEND);
// Şifre içinde çift tırnak varsa kaçış yap
$config_value_escaped = '"' . addslashes($config_value) . '"';
file_put_contents('debug-log.txt', "DÜZENLENEN ŞİFRE: $config_value_escaped\n", FILE_APPEND);
$file_contents = preg_replace(
"/(\\\$cfg\\['" . preg_quote($config_name, '/') . "'\\]\\s*=\\s*)('|\").*?\\2;/m",
"\$1$config_value_escaped;",
$file_contents
);
file_put_contents('config-debug.php', $file_contents);
}$config_value = str_replace('@', '\\@', $config_value);Bunu addslashes() ile birlikte kullanırsan, @ işaretinin düzgün şekilde dosyaya yazıldığından emin olabilirsin.
file_put_contents('test-config.php', "\$cfg['mysqlpassword'] = \"$config_value_escaped\";\n");Bu dosyayı açarak sonucu kontrol edebilirsin. Eğer yanlış yazılıyorsa, yazılmadan önceki debug-log.txt içeriğini inceleyerek
şifrenin nasıl işlendiğini görebilirsin.