Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Üyelik sistemi

ploop

0
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
16 Aralık 2006
Mesajlar
1,153
Açılan Konu
81
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
20 Temmuz 2005
Mesajlar
2,014
Açılan Konu
108
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
20 Temmuz 2005
Mesajlar
2,014
Açılan Konu
108
Tepki puanı
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
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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'].'';
}
 

fan

0
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
0
Konum
Nereye
benim gönderdiğim kodu denermisin :)
 

ploop

0
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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
Onaylı Üye
Üye
Katılım
4 Şubat 2007
Mesajlar
663
Açılan Konu
66
Tepki puanı
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
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
0
Konum
karavan
Firefox'ta çalıstı, IE'de sorun var simdi de. Senin kodlarınla deneyeyim..
 

ploop

0
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
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..
 
Üst