İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

session_register da sorun..

damAster

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
206
Reaction score
0
selam arkadaşlar..

kullanıcı girişi yapılan bi sistemim var. iki dosyasında verileri kullanırken sorun yaşıyorum..

login yapıldıysa login.php de sql_port u register ediyorum, ve session_start ile başladığım sayfalarda bu değeri yazdırabiliyorum sorunsuz.

lakin..

sql_port değerini AYAR.PHP de kullanmak için AYAR.PHP de session_start 'ladım ve kullandım.

bide FONKSIYON.PHP de kullanmak istedim bu sql_port u.. AYAR.PHP, FONKSIYON.PHP dosyasında include halde bulunuyor. Bu yüzden birdaha sessioın_register yapmaya calıstığımda Already registered diyor. Yani session açık gibi görünüyor. ama fonksiyon.php 'de sql_port u yazdırınca undefined cıkıyor. yani..:

ayar.php :

Kod:
<?

session_start();

$deneme  =  "Portunuz : ". $sql_port;

?>

Fonksiyon.php:

Kod:
<?
include("ayar.php");
session_start();

function bak ($sql_port) {
echo "ayarladığınız port $sql_port";
}

?>

fonksiyon.php de sql_port u kullanmak için session_start yaptım. ama hemen öncesinde içinde session_Start bulunan ayar.php i include ettim. Eldeki session_Start lar 2 oldu. 1 e indirmek için fonksiyon.php deki start ı siliyorum. ayar.php deki start dan yararlansın diye. ama undefined variable oluyor sql_port.

ne yapabilirim :(
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
Oncelikle php.ini de "register globals" i guvenlik nedeni ile kapatmani tavsiye ederim.
Bunun ardindan $_SESSION['degisken'] ile session verilerine ulasabilirsin.
"register globals" acik oldukca degiskenler hep birbirine karisacaktir.
 

damAster

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
206
Reaction score
0
register globals ı sanırım bi aralar yine aynı uygulamadaki uploadla yada başka bişeyle ilgili bölümü yaparken açmak zorunda kalmıştım. tam hatırlayamıyorum, kapalı iken bazı değişkenleri kullanamıyordum sanırım.. şimdi güvenlik dedinde, korktum birden. güvenlik acısından neden kapatmalıyım? + karışmak derken zararı nedir belki gerçekten sorunum odur? :)
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
register globals ı sanırım bi aralar yine aynı uygulamadaki uploadla yada başka bişeyle ilgili bölümü yaparken açmak zorunda kalmıştım. tam hatırlayamıyorum, kapalı iken bazı değişkenleri kullanamıyordum sanırım.. şimdi güvenlik dedinde, korktum birden. güvenlik acısından neden kapatmalıyım? + karışmak derken zararı nedir belki gerçekten sorunum odur? :)

PHP nin 4.2.0 versiyonundan itibaren "register globals" kapali gelmektedir.
"register globals" acik iken, degisken injeksiyonu yapilabiliyor.

Asagida "register globals" acik iken, "register globals" in acik olma ozelliginden yararlanan bir kullanicinin guvenlik kontrolunu nasil gececegini gosterecegim:

login.php dosyasi:
PHP:
if (kullanici_onaylandimi()) {
   $onaylandi = true;
}
 
if ($onaylandi ) {
   include "admin_bolgesi.php";
}

Bu kodda, kullanici_onaylandimi() fonsiyonu kullaniciya kullanici adi ve sifre soruyor. Eger kabul edilirse $onaylandi degiskenine true degeri ataniyor.

Buraya kadar sorun yok.

Diyelimki "register globals" in acik oldugunu bilen bir kullanici su sekilde bir cagri yapsin:


"register globals" in acik olunca, tum parametreler degiskene cerilir ve bu URL i login.php scripti $onaylandi=1 olarak algilar.

login.php dosyasi:
PHP:
//http://www.siteadi.com/login.php?onaylandi=1
if (kullanici_onaylandimi()) {
   $onaylandi = true;
}
 
// bu bolumde $onaylandi tanimli olmadigi icin GET ile URL den 
// gelen $onaylandi=1 olarak algilanir ve kullanicinin yetkisi 
// olmadigi halde admin alanina giris yapar
if ($onaylandi ) {
   include "admin_bolgesi.php";
}

"register globals" in sorunlari guvenlik ile bitmiyor.
Degiskenler birbirlerini eziyorlar.
Ornegin onay_kodu degiskenini cookie de sakladiginizi varsayalim ve degeri ABCD olsun.
Bu degiskeni http://www.siteadi.com/index.php?onay_kodu=EFGH sekilinde URL GET ile aldiginizda, $onay_kodu=EFGH olmaz, cookie deki deger olur!
 

damAster

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
206
Reaction score
0
teşekkür ederim iyi bir açıklama oldu.

Son olarak..

include("ayar.php");

yaptıktan sonra, ayar.php deki verileri fonksiyonda kullanamıyorum. yani ayar.php de, $isim="Ahmet"; ise, fonksiyon.php deki şu şekil kullanım olmuyor:

<?

include("ayar.php");

function deneme () {
echo $isim;
}

?>


ayar.php i include ediyorum ama fonksiyon içine çağıramıyorum değişkeni. vardı bunun bi yolu. global mıydı neydi :eek:
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
teşekkür ederim iyi bir açıklama oldu.

Son olarak..

include("ayar.php");

yaptıktan sonra, ayar.php deki verileri fonksiyonda kullanamıyorum. yani ayar.php de, $isim="Ahmet"; ise, fonksiyon.php deki şu şekil kullanım olmuyor:

<?

include("ayar.php");

function deneme () {
echo $isim;
}

?>


ayar.php i include ediyorum ama fonksiyon içine çağıramıyorum değişkeni. vardı bunun bi yolu. global mıydı neydi :eek:

Evet

PHP:
function deneme () {
global $isim;
echo $isim;
}
 

damAster

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
206
Reaction score
0
tekrar teşekkür ettim iyinet.

iyi akşamlar.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
hem ayar.php de hemde fonksiyon.php de session_start etmişsin. ayar.php deki yeterli çünkü fonksiyon.php ye include ediyorsun.

ayar.php deki kodlar otomatikman fonksiyon.php ye geliyor zaten
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst