Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Session ve cookie sorunu

Konu, 'PHP' kısmında deviant tarafından paylaşıldı.

  1. deviant

    deviant Üye

    Kayıt:
    11 Haziran 2008
    Mesajlar:
    56
    Beğenilen Mesajlar:
    0
    Şehir:
    izmir
    Arkadaşlar benim sorunum session ve cookielerle. Oluşturmak istediğim üye girişi için beni hatırla checkboxı koydum.Üye olunduktan sonra beni hatırla seçeneği tıklanırsa 1 yıllık cookie atıyorum. Burda herhangi bir sorunum yok. Ama sessionlarla beraber çalışınca session larda ki bilgileri algılamıyor. Üye profilini göremiyor.

    login kısmım
    PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
    <link href="css/stil.css" rel="stylesheet" type="text/css">
    <? 

    function confirmUser($email$parola){
       global 
    $conn;
       if(!
    get_magic_quotes_gpc()) {
        
    $email addslashes($email);
        
    $id addslashes($id);   
     
       }
       
    $q "select * from uye where email = '$email'";
       
    $result mysql_query($q,$conn);
       if(!
    $result || (mysql_numrows($result) < 1)){
          return 
    1//Indicates username failure
       
    }

       
    $dbarray mysql_fetch_array($result);
       
    $dbarray['parola']  = stripslashes($dbarray['parola']);
       
    $parola stripslashes($parola);

       if(
    $parola == $dbarray['parola']){
          return 
    0//Success! Username and password confirmed
       
    }
       else{
          return 
    2//Indicates password failure
       
    }
    }

    function 
    checkLogin(){
       
    /* Check if user has been remembered */
       
    if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){
          
    $_SESSION['email'] = $_COOKIE['cookname'];
          
    $_SESSION['parola'] = $_COOKIE['cookpass'];
       }

       
    /* Username and password have been set */
       
    if(isset($_SESSION['email']) && isset($_SESSION['parola'])){
          
    /* Confirm that username and password are valid */
          
    if(confirmUser($_SESSION['email'], $_SESSION['parola']) != 0){
             
    /* Variables are incorrect, user not logged in */
             
    unset($_SESSION['email']);
             unset(
    $_SESSION['parola']);
             return 
    false;
          }
          return 
    true;
       }
       
    /* User not logged in */
       
    else{
          return 
    false;
       }
    }

    function 
    displayLogin(){
       global 
    $logged_in;
       if(
    $logged_in){
           echo 
    "Hosgeldiniz <b>$_SESSION[email]</b>,&nbsp;&nbsp;&nbsp;
           <a href=\"logout.php\">Güvenli Çikis</a>"
    ;
       }
       else{
    ?>
    <link href="css/stil.css" rel="stylesheet" type="text/css" />
    <form action="" method="post">
     <table width="180" bgcolor="#FFFFFF" border="0" cellspacing="0" cellpadding="0" align="right">
           <tr><td background="img/ust/ust_12.jpg"> </td></tr>
                  
           <tr><td background="img/ust/ust_12.jpg"><table height="217" cellspacing="0" cellpadding="0">
            <tr>
              <td width="5" height="19" class="beyaz_b" background="img/ust/ust_12.jpg">&nbsp;</td>
              <td height="19" colspan="3" ><img src="img/uyegiris.jpg" width="167" /></td>
              <td width="10" class="beyaz_b">&nbsp;</td>
            </tr>
            <tr>
              <td width="5" height="194" class="beyaz_b"  background="img/ust/ust_12.jpg">&nbsp;</td>
              <td height="194" colspan="3"><table border="0" cellspacing="0" cellpadding="0" background="img/uyegiris2.jpg">
                <tr>
                  <td height="28" colspan="5"  class="siyah_b">&nbsp;&nbsp;Kullanici Adi ( E-mail ) : </td>
                </tr>
                <tr>
                  <td height="27" colspan="5"  class="siyah_b">&nbsp;&nbsp;
                      <input name="user" type="text" class="siyah"  size="25" /></td>
                </tr>
                <tr>
                  <td height="21" colspan="5" class="siyah_b">&nbsp;&nbsp;Parola : </td>
                </tr>
                <tr>
                  <td height="24" colspan="5" class="siyah_b">&nbsp;&nbsp;
                      <input name="pass" type="password" class="siyah" size="25" />
                    &nbsp; </td>
                </tr>
                <tr>
                  <td width="6" height="31" valign="bottom" class="siyah_b">&nbsp;&nbsp;</td>
                  <td width="98" height="31" valign="bottom" class="siyah_b"><input type="checkbox" name="remember"/>
                    Beni Hatirla</td>
                  <td width="63" valign="bottom" class="siyah_b"><input name="sublogin" type="submit" class="buton" value="Login" /></td>
                 
                </tr>
                <tr class="siyah_b" valign="bottom">
                  <td height="38" rowspan="2" background="">&nbsp;&nbsp;</td>
                  <td height="28">&nbsp;&nbsp;<a href="index.php?page=yenisifre" class="siyah_b">Sifremi Unuttum</a> | </td>
                  <td height="28"><a href="index.php?page=tum2" class="siyah_b">Yeni Üye</a></td>
                  
                </tr>
                <tr>
                  <td height="28"><? echo $user?></td>
                  <td height="28" >&nbsp;</td>
                </tr>
              </table></td>
              <td width="10" class="beyaz_b">&nbsp;</td>
            </tr>
             
    </table></td></tr></table>

    </form>

    <?
       
    }
    }


    if(isset(
    $_POST['sublogin'])){
       if(!
    $_POST['user'] || !$_POST['pass']){
          die(
    'Bos alan birakmayiniz.');
       }
       
    $_POST['user'] = trim($_POST['user']);
       if(
    strlen($_POST['user']) > 30){
          die(
    "mail adresiniz 100 karakterden fazla olamaz lütfen düzeltiniz");
       }

       
    $md5pass md5($_POST['pass']);
       
    $result confirmUser($_POST['user'], $md5pass);

       if(
    $result == 1){
          die(
    'Böyle bir mail adresi veritabanimizda kayitli degil.');
       }
       else if(
    $result == 2){
          die(
    'Parolaniz yanlis tekrar deneyiniz');
       }

       
    $_POST['user'] = stripslashes($_POST['user']);
       
    $_SESSION['id'] = $_POST['sesid'];
       
    $_SESSION['email'] = $_POST['user'];
       
    $_SESSION['parola'] = $md5pass;

       
       if(isset(
    $_POST['remember'])){
          
    setcookie("cookname"$_SESSION['email'], time()+60*60*24*100"/");
          
    setcookie("cookpass"$_SESSION['parola'], time()+60*60*24*100"/");
       }

       echo 
    "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
       return;
    }

    $logged_in checkLogin();

    ?>
    profilim kısmı ise

    PHP:
    <?
    @
    session_start(); 
     @
    session_register("email_session");
      
    session_register("parola_session");
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
    <link href="css/stil.css" rel="stylesheet" type="text/css">
    <?
    if($uye_id>0)
    {
     
    $islem=$_GET["islem"];
    if (
    $islem=="kaydet"){
    $id=$_POST["id"];
    $uye_id=$_POST["uye_id"];
    $adi=kodyaz($_POST["adi"]);
    $soyadi=kodyaz($_POST["soyadi"]);
    $email=kodyaz($_POST["email"]);
    $parola=kodyaz($_POST["parola"]);

        
    }elseif(
    $islem=="goster"){
    $sonucmysql_query("select * from uye where id=".$_GET["uye_id"],$vtyol);
    $fiyats=mysql_fetch_assoc($sonuc);
    $id=$fiyats["id"];
    $uye_id=$fiyats["uye_id"];
    $adi=kodyaz3($fiyats["adi"]);
    $soyadi=$fiyats["soyadi"];
    $email=$fiyats["email"];
    $parola=$fiyats["parola"];

    }
    ?><table width="470" border="0" cellspacing="0" cellpadding="0" align="center">
         
     <form action="?page=tum3_4&p=iletisim_gun&c=15&islem=goster&uye_id=<?=$uye_id ?>" method="post" name="frmadi" enctype="multipart/form-data">
      <tr>
        <td width="470"><table border="0" cellspacing="0" cellpadding="0" width="470" class="siyah">
          <tr>

            <td height="14" colspan="20" class="siyah_buyuk"><div id="mesaj"></div></td>
          </tr>
          <tr>
            <td colspan="3"><input class='siyah' type="hidden" size="5"  name="uye_id"/></td>
          </tr>
          <tr>
            <td colspan="3"><input class='siyah' type="hidden" size="5" name="id" value="<?=kodyaz2($fiyats["id"]) ?>" /></td>
          </tr>     
            <tr height="22">
            <td width="17" height="24" >&nbsp;</td>
            <td width="180" ><b class="siyah_b">Adı</b></td>
            <td width="17" class="siyah_b" >:</td>
            <td colspan="4"><input name="adi" type="text" class="siyah" size="30" value="<?=kodyaz2($adi?>" /></td>
            <td width="42">&nbsp;</td>
            <td width="45">&nbsp;</td>
            </tr>
          <tr height="22">
            <td height="22" >&nbsp;</td>
            <td ><b class="siyah_b">Soyadı</b></td>
            <td ><span class="siyah_b">:</span></td>
            <td colspan="4"><input name="soyadi" type="text" class="siyah" size="30" value="<?=kodyaz2($soyadi?>" /></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
            
          <tr height="22">
            <td height="19" >&nbsp;</td>
            <td ><b class="siyah_b">Kullanıcı Adı( Email)</b></td>
            <td ><span class="siyah_b">:</span></td>
            <td colspan="4"><input name="email" type="text" class="siyah" size="30"    value="<?=kodyaz2($email?>"/></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
                <tr height="22">
            <td height="19" >&nbsp;</td>
            <td ><strong class="siyah_b">Parola</strong></td>
            <td ><span class="siyah_b">:</span></td>
            <td colspan="4"><input name="parola" type="text" class="siyah" size="30"    value="<?=kodyaz2($parola?>"/></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>  
            <tr>
            <td height="11" colspan="7"  valign="middle" class="siyah_i">&nbsp;</td>
            <td height="11" colspan="2"  valign="middle" class="siyah_i"><input type="submit" name="gonder" class="buton"   onClick="submitform()" value=" İleri " />
            &nbsp;&nbsp;</td>
          </tr>
        </table>
      </form>
      <? }  else{
    $adi=$_POST["adi"]; 
    $soyadi=$_POST["soyadi"]; 
    $email=$_POST["email"];  
    $parola=$_POST["parola"];  

     }
      
    ?>
      </td><td height="16"></tr>
    </table>
    <SCRIPT language="JavaScript">
    function submitform()
    {
      document.frmadi.submit();
    }
    </SCRIPT>
    sessionlarla ilk defa çalışıyorum. Öğrenmeye çalıştığım kadarıyla bunları yaptım. Hatamın nerde olduğuunu sölerseniz çok sevinirim. Şimdiden çok saolun..:utangac:

    Beni hatırla kutucuğu olmadan önce şifreyi kontrol ettrip bilgileri alabiliodum ama cookieler işin içine girince iice karıştırdım.:aglama:

    şifre_kontrol
    PHP:
    <input name="id" type="hidden" id="id"> 
    <? ob_start();
     @
    session_start(); 
     @
    session_register("email_session");
      
    session_register("parola_session");
    $email=($_POST["email"]);
    $parola=($_POST["parola"]);
    $setcookie $_POST['C1'];
     
     if(
    $_POST['sifre_kontrol']) {
      
    //sifre kontrolü
       
    $sifre_kontrol_et=@mysql_query("SELECT * FROM uye WHERE email = '".$HTTP_POST_VARS['email']."' AND parola='".$HTTP_POST_VARS['parola']."'",$vtyol);
       if(@
    mysql_num_rows($sifre_kontrol_et)<>0){  
           
    $fiyats=@mysql_fetch_array($sifre_kontrol_et);
      
    //üye giris yapti..
           
    $adi=$fiyats['adi'];
           
    $soyadi=$fiyats['soyadi'];
           
    $email=$fiyats['email'];
           
    $parola=$fiyats['parola'];       
          
    $email=$fiyats["email"];
    $parola=$fiyats["parola"];
    if (
    $HTTP_POST_VARS['setcookie'] == '1') { 
              
    setcookie('email'$emailtime()+2592000); 
              
    setcookie('parola'$parolatime()+2592000); 
          } else { 
              
    setcookie('email'$email); 
              
    setcookie('parola',$parola); 
         echo 
    "<script>self.location = \"index.php?page=tum3_4\"</script>";

          } 

       } else { 
       
    $hata_mesaji="kullanici adinizi veya parolanizi hatali girdiniz lütfen tekrar deneyiniz";
       
       }
    }
    session_register("uye_id");
    session_register("adi");
    session_register("soyadi");
    session_register("email");
    session_register("parola");

    ?>
     
  2. xam

    xam Daimi Üye

    Kayıt:
    28 Mart 2006
    Mesajlar:
    1,080
    Beğenilen Mesajlar:
    0
    login kismim dedigin dosyanin basinda session_start() varmi
     
  3. deviant

    deviant Üye

    Kayıt:
    11 Haziran 2008
    Mesajlar:
    56
    Beğenilen Mesajlar:
    0
    Şehir:
    izmir
    xam saol cevap yazdığın için sorunu çözdüm :)