İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Üyelik sistemi

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Otobüsten indim, ilk isim üyelik sistemi hazırlamak oldu. Copy paste PHP'cisi olarak :) Güvenlik seviyesi 0 su anda, güvenlik eklemelerini sonra yapacağım. Simdilik bu yapı yeterli olacak, fakat bendeki Firefox'ta çalısırken, IE'de ve arkadasımın Firefox'unda çalısmıyor :) Kodlar su sekilde (Hem de hatalarımı söylersiniz iyi olur :p). Echo'ları verilerin gidip gitmediğini görmek için koyuyorum.. Seviye çekmemin sebebi, yapıyı farklı kullanıcı guruplarına bölecek olmam (Site admini, yazar vs.)

index.php:
PHP:
<?
session_start();
require_once "mysqle_baglan_yavrum.php";

if (empty($_SESSION['id'])){
echo '<form id="giris" name="giris" method="post" action="giris.php">
  <table width="322" border="0">
    <tr>
      <td colspan="2"><div align="center">ÜYE GİRİŞİ </div></td>
    </tr>
    <tr>
      <td width="124">E-posta: </td>
      <td width="188"><label>
        <input name="eposta" type="text" id="eposta" />
      </label></td>
    </tr>
    <tr>
      <td>Şifre:</td>
      <td><label>
      <input name="sifre" type="password" id="sifre" />
      </label></td>
    </tr>
    <tr>
      <td> </td>
      <td><label>
        <input name="gonder" type="submit" id="gonder" value="Gönder" />
      </label></td>
    </tr>
  </table>
</form>';
echo 'session: '.$_SESSION['id'].' vee seviye: '.$_SESSION['seviye'].'';
}
else {
if ($_SESSION['seviye'] == '1'){
echo 'Admin Sayfasına Giriş Yaptınız <br>
<li><a href=kategoriler.php>Kategori yönetimi</a></li>
<li><a href=haberler.php>Haber yönetimi</a></li>
<li><a href=yazarekle.php>Yazar yönetimi</a></li>
<br>
<li><a href=profil.php>Profili düzenle</a></li>
<li><a href=cikis.php>Çıkıs</a></li>';
}
else if ($_SESSION['seviye'] == '2'){
echo 'Yazar Sayfasına Giriş Yaptınız <br>
<li><a href=haberler.php>Haber yönetimi</a></li>
<br>
<li><a href=profil.php>Profili düzenle</a></li>
<li><a href=cikis.php>Çıkıs</a></li>';
}
?>
<?
}
?>

giris.php:
PHP:
<?
session_start();
require_once "mysqle_baglan_yavrum.php";

$eposta = $_POST[eposta];
$sifre = $_POST[sifre];

$kontrol="SELECT * FROM uyeler WHERE eposta='$eposta' and sifre='$sifre'";
$sorgu=mysql_query($kontrol);
$oku=mysql_fetch_Array($sorgu);
$sayac=mysql_num_rows($sorgu);

if ($sayac == 0) {
echo 'Yanlış Kullanıcı Adı veya Şifre.';
}
else {

$_SESSION['id'] = $oku[0];
$_SESSION['seviye'] = $oku["seviye"];
echo 'session: '.$_SESSION['id'].' vee seviye: '.$_SESSION['seviye'].'';
echo '<a href=\'index.php\'>ana sayfa</a>';
}

?>
 

Grafix

0
İyinet Üyesi
Katılım
16 Aralık 2006
Mesajlar
1,153
Reaction score
0
Konum
Bursa
merhaba ploop,

birincisi index.php sayfandaki şu kodları,

PHP:
<?
session_start();
require_once "mysqle_baglan_yavrum.php";

bununla değiştir;


PHP:
<?
session_start(); ob_start();
include("mysqle_baglan_yavrum.php");

ikincisi ise noktalama işaretlerine dikkat etmelisin,
örneğin giris.php dosyasında formdan gelen değerleri çekerken "" işareti kullanmamışsın bu kodları,

PHP:
<?
session_start();
require_once "mysqle_baglan_yavrum.php";

$eposta = $_POST[eposta];
$sifre = $_POST[sifre];

bununla değiştir;

PHP:
<?
session_start(); ob_start();
include("mysqle_baglan_yavrum.php");

$eposta = $_POST["eposta"];
$sifre = $_POST["sifre"];

bu şekilde dene bakalım sonuç alabilecekmisin?

bir de index.php dosyanda "else if" kullandığın yerde else ile if arasında boşluk atmışsın doğrusu "elseif" şeklinde olmalı,
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Sorunun onlar ile ilgili olduğunu sanmıyorum, çünkü giden verileri görüyorum; id ve kullanıcı bilgilerini 2. sayfaya basıyor. Ama 3. sayfaya geçtiğinde bu veriler gelmiyor. Yardım için tesekkurler, gece uyumadım belki ufak bir sey var göremiyorumdur; yarın tekrar bakayım :)
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
PHP:
<?
session_start();
require_once "mysqle_baglan_yavrum.php";

session_register("eposta");
session_register("sifre");


$kontrol="SELECT * FROM uyeler WHERE eposta='$eposta' and sifre='$sifre'";
$sayac=mysql_num_rows($sorgu);
$oku=mysql_fetch_assoc($sorgu);

if ($sayac < 1) {
echo 'Yanlış Kullanıcı Adı veya Şifre.';
}
else {

$_SESSION['id'] = $oku[0]; // bunun ne işe yaradığını anlamadım.

echo "session: $oku[id] vee seviye: $oku[seviye]'';
echo '<a href=\'index.php\'</a>ana sayfa</a>';
}

?>
giris.php yi böyle dene.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
session_register("eposta"); seklinde bir kullanımın sakıncalı olduğunu belirtmislerdi önceden. Zaten formdan alınan bilgileri, giris.php'de okutabiliyorum. Ama nedense 3. sayfaya geçmiyor :( (aynı seyleri söylüyorum ama :p)

$_SESSION['id'] = $oku[0]; // bunun ne işe yaradığını anlamadım.

>>> Bu su ise yarıyor, kullanıcının id'sini bularak, geri kalan islemlerin o id'ye göre yapılmasını sağlıyor. Aslına bakarsan senin dediğin session_register ve $_SESSION['id'] olayları aynı görevi yapıyorlar bildiğim kadarıyla, ama benim kullandığım yapı daha sağlıklı register globals açısından.
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
Kodlamada birşey yok güvenlik dışında :)

$eposta = $_POST[eposta];
$sifre = $_POST[sifre];
echo $sifre;
echo $epost;

FF ve iede gelen sonuçlara bakabilirsin normalde çalışıyosa çalışması gerekir iedede.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Dediğim gibi IE'de çalısmıyor, hatta su an Firefox'ta da çalısmıyor :p Çıldırmak üzereyim sabahtan beri taktım kafayı incelemediğim üyelik sistemi scripti kalmadı. Güvenlik konusuna bilerek girmedim ilk yazımda da dediğim gibi, her sey hallolduktan sonra bir fonksiyon halinde include etmeyi planlıyorum. Zaten verdiğin o eposta ve sifre değerlerini alıyor ve karsılastırmayı yapıyor. Ama browserda tekrar kullanıcı adı ve sifresi kutusu çıkıyor. Delirdim :)

Index.php'deki formdan gönderdiğim verileri, giris.php'de session: 1 vee seviye: 1 olarak alıyorum her iki browserda da. Fakat index.php'ye tekrar döndüğümde if ($_SESSION['seviye'] == '1'){ kısmından sonrası gözükmesi gerekirken, tekrar kullanıcı adı ve sifresi istiyor sistem.
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
eposta ve sifreyi register etmeden üçüncü sayfaya geçmesinimi bekliyorsun ?
globals off ise session_register yazdığım satırları alttakiler ile değiş.
$_SESSION['eposta'] = $eposta;
$_SESSION['sifre'] = $sifre;
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
$_SESSION['id'] = $oku[0];
$_SESSION['seviye'] = $oku["seviye"];

bunun altına;

echo $oku[0];
echo $oku["seviye"];

yaz bakalım veriler geliyomu.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
E-posta ve sifreyi register etmesene gerek yok, diğer sayfadaki islemleri id'ye göre yapıyor ki zaten? E-posta ve sifreyi sadece $kontrol="SELECT * FROM uyeler WHERE eposta='$eposta' and sifre='$sifre'"; satırında kullanıyorum. Sonra orada eslesen sonuc yoksa hata veriyor. Eğer eslesen sistem varsa id ve seviye için session kayıt ediyorum. Daha sonra da amacım index.php'ye dönerek bu id ve seviyeye göre islem yaptırmak. Yani e-posta ve sifreye ihtiyacım yok ikinci kere tekrar bakarsan.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
@fan, session: 1 vee seviye: 1 seklinde çıktı alıyorum.
Birinci 1: id numarası
Ikinci 1: seviyesi.
Yani veri alıp vermede sorun yok gibi gözüküyor, sadece session kayıtlarını tekrar index.php'ye geçirirken sorun yasıyorum :(
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
<?
session_start();
require_once "mysqle_baglan_yavrum.php";
echo $_SESSION["id"];
echo $_SESSION["seviye"];

if (empty($_SESSION['id'])){
echo '<form id="giris" name="giris" method="post" action="giris.php">
<table width="322" border="0">
<tr>
<td colspan="2"><div align="center">ÜYE GİRİŞİ </div></td>
</tr>
<tr>
<td width="124">E-posta: </td>
<td width="188"><label>
<input name="eposta" type="text" id="eposta" />
</label></td>
</tr>
<tr>
<td>Şifre:</td>
<td><label>
<input name="sifre" type="password" id="sifre" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input name="gonder" type="submit" id="gonder" value="Gönder" />
</label></td>
</tr>
</table>
</form>';
}
else {
if ($_SESSION['seviye'] == '1'){
echo 'Admin Sayfasına Giriş Yaptınız <br>
<li><a href=kategoriler.php>Kategori yönetimi</a></li>
<li><a href=haberler.php>Haber yönetimi</a></li>
<li><a href=yazarekle.php>Yazar yönetimi</a></li>
<br>
<li><a href=profil.php>Profili düzenle</a></li>
<li><a href=cikis.php>Çıkıs</a></li>';
}
else if ($_SESSION['seviye'] == '2'){
echo 'Yazar Sayfasına Giriş Yaptınız <br>
<li><a href=haberler.php>Haber yönetimi</a></li>
<br>
<li><a href=profil.php>Profili düzenle</a></li>
<li><a href=cikis.php>Çıkıs</a></li>';
}
?>
<?
}
?>

şöyle dene bi bakalım ne gelicek değerler boşken hata verebilir formu gönder dene ;)
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Örneğin, veriler giris.php'de gözükürken index.php'ye tıklıyorum; asağıdaki kodlara göre gözükmemesi gereken form ve echo 'session: '.$_SESSION['id'].' vee seviye: '.$_SESSION['seviye'].''; kısmı tabak gibi karsımda. Kesin saçma sapan bir yerde hata yapıyorum ve 12 saatime mal oldu.

if (empty($_SESSION['id'])){
echo '<form id="giris" name="giris" method="post" action="giris.php">
<table width="322" border="0">
<tr>
<td colspan="2"><div align="center">ÜYE GİRİŞİ </div></td>
</tr>
<tr>
<td width="124">E-posta: </td>
<td width="188"><label>
<input name="eposta" type="text" id="eposta" />
</label></td>
</tr>
<tr>
<td>Şifre:</td>
<td><label>
<input name="sifre" type="password" id="sifre" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input name="gonder" type="submit" id="gonder" value="Gönder" />
</label></td>
</tr>
</table>
</form>';
echo 'session: '.$_SESSION['id'].' vee seviye: '.$_SESSION['seviye'].'';
}
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Senin kod beyaz sayfa verdi, kendi sorunumu geçtim, senin kodunu düzeltmeye çalısıyorum :p

Pardon benim hatammıs eksik almısım kodu. Ama yine olmadı :(

Tepeye bir seyler yazdırmaya çalıstın ya, onlar da gelmedi :p
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
deneme.php

<?
session_start();,
echo $_SESSION["id"];
echo $_SESSION["seviye"];

if ($_SESSION["id"] == "1") {
echo "ploop bizi diskoya götür..";
} else {
echo "yok bişi ne yazim";
}
?>
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
"yok bişi ne yazim" geliyor iste sorun bu anladın mı :) Yani önceden de belirttiğim gibi sorun, değerleri diğer sayfaya tasıyamama.
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
giriş sayfanda sorun var sana bi kodlamım gönderim kendine göre düzenle :)

<?
session_start();
include ("mysql.php");

@sql_basla();

$mail = guvenlik($_POST['mail']);
$sifre = guvenlik($_POST['sifre']);

$sorgu = @mysql_query("select id from bayi where email ='$mail' and sifre='$sifre' and onay=1");
if (@mysql_num_rows($sorgu) >= "1") {
echo '<script>window.location = "/" </script>';
$_SESSION["durum"] = "girdi";
while ($oku=@mysql_fetch_array($sorgu)) {
$_SESSION["uyeid"] =$oku["id"];
}
} else {
echo '<script>alert("Giriş Başarısız Mail ve Şifrenizi Kontrol Ederek Tekrar Deneyin."); history.go(-1)</script>';
}
@sql_dur();
?>
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Firefox'ta çalıstı, IE'de sorun var simdi de. Senin kodlarınla deneyeyim..
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
IE'de de düzeldi yuppppiiiiiiiii. Allah razı olsun diyeyim aman :) rep de veremiyorum vermisim neyse borcum olsun :) Seviyeye göre sayfa açabilecekmiyim bakalım :p Sanırım o kodlar bozuyordu her seyi..
 

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