Srylius adlı üyeden alıntı:
mesajı görüntüle
Arkadaş konu ile ilgili çözüm için sorunu tam anlamıyla açık ifade edememiş o yüzden gözden kaçan nokta şu. Talep ettiği şey kullanıcılar sunucusu varsa giriş yapabiliyor yoksa giriş yapamıyor bu sorgunun ortadan kalkmasını istiyor. Bunun için gereken çözüm sunucu ile ilgili sorgulamaları giriş yapma esnasında kaldırıp kullanıcının oturum açabilmesini sağlamak.
Şimdi öncelikle init.php dosyasında ki sorgunun düzeltilmesi gerekiyordu "Hata=2" olarak post edildiği kısmı. Bu sebepten buradaki kısımda ki sunucu kontrolünü aşağıda verdiğim gibi değiştirmelisiniz.
Şimdi öncelikle init.php dosyasında ki sorgunun düzeltilmesi gerekiyordu "Hata=2" olarak post edildiği kısmı. Bu sebepten buradaki kısımda ki sunucu kontrolünü aşağıda verdiğim gibi değiştirmelisiniz.
if(isset($_SESSION["OGCP_UserLogged"])) {
// User Control
$userinf = ControlUser();
if($userinf == false) $page->GoLocation($page->CreatePageLink($page->DefaultPage()) );
// User Admin Control
$_SESSION["OGCP_UserAdmin"] = IsUserAdmin((int)$userinf["UserGroup"]);
// Server Control
if($_SESSION["OGCP_UserAdmin"] != true) { // Kullanıcı Admin değilse kontrol et.
$servers = GetUserServers();
if($servers == false) {
@session_destroy();
$page->GoLocation($page->CreatePageLink('Giris','Hata=2'));
}
$servern = count($servers);
$now = time();
if( $servern == 1 && @$_SESSION['OGCP_UserSubUser'] == true && @$_SESSION["OGCP_SelectedServer"] == 0) {
foreach($servers as $server_one) {
$_SESSION["OGCP_SelectedServer"] = (int)$server_one["UserServerID"];
$page->GoLocation($page->CreatePageLink('Anasayfa'));
exit;
}
} elseif( $servern >= 1 ) {
if(@$_SESSION["OGCP_SelectedServer"] == 0 && ContSunucuSecPage() && @$pages[$_GET['Page']]['Server'] == true ) {
$_SESSION["OGCP_SelectedServer"] = 0;
$_GET["Page"] = "Hizmetlerim";
$_GET["Status"] = "SunucuSec";
}
} else {
if(@$_SESSION["OGCP_SelectedServer"] != 0) {
if($servers[@$_SESSION["OGCP_SelectedServer"]]["UserServerPriceTime"] < $now) {
if($status == 1) { @session_destroy(); }
else if($status == 2) { $_GET["Page"] = "Hizmetlerim"; $_GET["Durum"] = "Sure_Doldu!"; }
}
}
}
} else if( $_SESSION["OGCP_UserAdmin"] == true && @$_SESSION["OGCP_SelectedServer"] != 0 ) {
$servers = Adm_GetContServer();
if($servers == false) { $_SESSION["OGCP_SelectedServer"] = 0; $page->GoLocation($page->CreatePageLink('Anasayfa')); }
//$serverinfo = $servers[$_SESSION["OGCP_SelectedServer"]];
} else {
$page = new PageFrmwork($adm_pages, (SYCP_SSL ? 'https://' : 'http://' ) . SYCP_SITEADDR);
$_GET["Page"] = "Adm_".@$_GET["Page"];
} // if($_SESSION["OGCP_UserAdmin"] != true)
} // if(isset($_SESSION["OGCP_UserLogged"]))
Aşağıdaki işlemi sunucu işlemlerin yapıldığı tüm alanlar da yapmanız gerekiyor aksi halde sürekli php hataları verir sunucu mevcut olmadığın da bunun haricinde oturum verilerinin ve veritabanı ile yapılan işlemlerin daha güvenli hale getirilmesi şart şuan yazılım bu hali ile kullanılmamalı kesinlikle.// Server Control
if ($_SESSION["OGCP_UserAdmin"] != true) { // Kullanıcı Admin değilse kontrol et.
$servers = GetUserServers();
if ($servers) {
// sunucu ile ilgili işlemlerin tamamı buranın içerisine gelecek ve Hata=2 olarak yönlendirmeyecek bizi başka bir sayfaya.
}
}İkinci husus söylediğiniz gibi ciddi açıklar mevcut fakat yazılım baştan sona bu şekilde olduğu için bu halde nereyi tutsanız öbür tarafı sıkıntılı o yüzden kendi tercihine bırakıyorum işin o kısmını konu çözüme kavuşturuldu.