2016-03-25 24 views
0

Bir php formum var (Home.php olarak adlandırın) ve gönderim sırasında (yöntem Post), ayrı bir php komut dosyasında (Validate.php olarak adlandırılan) doğrulanmış bilgilerim var.php oturumları değişkenleri tutarsız

Doğrulandıktan sonra, oturum değişkenleri Validate.php'de başlatılıyor/ayarlanıyor. Bu değişkenler ayarlandıktan sonra, doğrulama sayfasında header ('Location: home.php') kullanarak home.php sayfasına yeniden yönlendiriyorum.

Tüm bunlar mükemmel çalışır ve oturum değişkenine erişebilir ve home.php sayfasında görüntüleyebilirim ancak yenilemeye başladığında değişken değerler kaybolur. Home.php'yi yenilemesem bile, sunucudaki başka bir sayfaya gidersem ve oturum değişkenlerine erişmeye çalışırsam, bunlar boş/ayarlanmamıştır.

Birkaç nokta: Tüm sayfalarımda ve en başında Session_Start() var. Oturum kaydetme yolu yapılandırma değeri/tmp'dür ve bu sorun görünmüyor, çünkü yukarıda değindiğim gibi ilk denemede oturum değerlerini ayarlayabilir ve alabilirim.

Stackoverflow ve google'da arama yaptım, ancak hiçbir şey bulamadım. Sen benim son çareimsin. Umarım birisi bana yardım edebilir.

Şimdiden teşekkürler.

home.php::

<?php session_start(); 
    echo '<!DOCTYPE html>'; 
?> 

And some HTML CODE HERE FOR DISPLAYING THE PAGE.... 


if (!isset($_SESSION['dbuserNm'])) { 
echo 


'<li class="dropdown"> 
       <a href="#" class="dropdown-toggle hvr-bounce-to-right" data-toggle="modal" role="button" aria-haspopup="true" aria-expanded="false" data-target="#LogInModal" onclick="KillSession()"><b>Log In</b><span class="caret"></span></a> 
      </li> 

      <!-- Modal --> 
         <div class="modal fade" id="LogInModal" tabindex="-1" role="dialog" 
          aria-labelledby="myModalLabel" aria-hidden="true"> 
          <div class="modal-dialog"> 
           <div class="modal-content"> 
            <!-- Modal Header --> 
            <div class="modal-header"> 
             <button type="button" class="close" 
              data-dismiss="modal"> 
               <span aria-hidden="true">&times;</span> 
               <span class="sr-only">Close</span> 
             </button> 
             <h4 class="modal-title" id="myModalLabel"> 
              Authentication 
             </h4> 
            </div> 

            <!-- Modal Body --> 
            <div class="modal-body"> 

             <form class="form-horizontal" role="form" action="Validate.php" method="POST"> 
              <div class="form-group"> 
              <label class="col-sm-2 control-label" 
                 for="inptUserID">User ID</label> 
              <div class="col-sm-10"> 
               <input type="UserID" class="form-control" 
               id="inptUserID" name="inptUserID" placeholder="User ID"/> 
              </div> 
              </div> 
              <div class="form-group"> 
              <label class="col-sm-2 control-label" 
                for="inputPassword3" >Password</label> 
              <div class="col-sm-10"> 
               <input type="password" class="form-control" 
                id="inptPsswd" name="inptPsswd" placeholder="Password"/> 
              </div> 
              </div> 
              <div class="form-group"> 
          <!-- <div class="form-group"> 
            <div class="col-sm-offset-2 col-sm-10"> 
             <div class="checkbox"> 
             <label> 
              <input type="checkbox"/>'; 
               if ($_SESSION['ValidLogInSw'] = 0) { 
               echo "Invalid UserID/Password, Please Re-try"; 
               } else { 
               echo '<script type="text/javascript"> $(this).dialog("close");</script>'; 
               } 
             echo 
             '</label> 
             </div> 
            </div> 
            </div> 
              </div> --> 
              <div class="form-group"> 
              <div class="col-sm-offset-2 col-sm-10"> 
               <button type="submit" class="btn btn-default">Sign in</button> 
              </div> 
              </div> 
             </form> 

            </div> 

            <!-- Modal Footer --> 
            <div class="modal-footer"> 
             <button type="button" class="btn btn-default" 
               data-dismiss="modal"> 
                Close 
             </button> 
            </div> 
           </div> 
          </div> 
         </div>'; 
     } else { 
      echo '<li class="dropdown"> 
       <a href="#" class="dropdown-toggle hvr-bounce-to-right" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><b>'. $_SESSION['dbuserNm']. '\'s Account</b><span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
       <li><a href="#" class="hvr-bounce-to-right">Account Management</a></li> 
       <li><a href="#" class="hvr-bounce-to-right">Stats1</a></li> 
       <li><a href="#" class="hvr-bounce-to-right">Stats2</a></li> 
       </ul> 
      </li>'; 
     } 
    ?> 

Validate.php:

Validate.php: 

    <?PHP 
session_start(); 
    //header('Location: ' . $_SERVER['HTTP_REFERER']); 

    header('Location: Home.php'); 

    if (isset($_POST["inptUserID"]) && !empty($_POST["inptUserID"])){ 

     //*echo 'Its Definitely Here'; 

     $lclidpw = $_POST['inptUserID']; 

     $id = $_POST['inptUserID']; 
     $pw = $_POST['inptPsswd']; 

     $Cnxn = mysql_connect("localhost:portnumber", "UserID", "Psswd");//format is id||pw; 

     if($Cnxn){ 

     mysql_select_db('DatabaseNameHere'); 

     $Qry = "SELECT CONCAT(CAST(a.UserId AS CHAR), '||' ,TRIM(u.User_FName)) FROM TableNameHere u INNER JOIN UsrAuth a ON a.UserId = u.UserId WHERE a.UserName = TRIM('" . $id ."') AND a.Psswd = TRIM('" .$pw . "');" ; 

     $Results = mysql_query($Qry) or die('Sql Error...'.mysql_error()); 

      if(mysql_num_rows($Results) > 0){ 

       //echo 'Its here'; 
       //echo $Qry; 

       //All this is new: 

       $Rslt_for_Session = mysql_result($Results,0); 

       $_SESSION['dbuserId'] = substr($Rslt_for_Session,0, strpos($Rslt_for_Session, '||')); 
       $_SESSION['dbuserNm'] = substr($Rslt_for_Session, strpos($Rslt_for_Session ,'||')+2,strlen($Rslt_for_Session)-strpos($Rslt_for_Session ,'||')+1); 
       $_SESSION['TimeSet'] = time(); 
       $_SESSION['ValidLogInSw'] = 1; 

       //echo $_SESSION['dbuserNm']; 

      } 
      else{ 

       $_SESSION['ValidLogInSw'] = 0; 


      } 

     } 
     else{ 
     echo '*Connection Error...please try later'; 
     } 

    } 

?> 
+2

Etek biraz kaldırmalı ve bize bazı kodları gösterecektir ... –

+1

Biraz kod ekleyebilir misiniz lütfen –

+1

Haha .... "eteği kaldır" ... Ben sadece yaptım .... umarım yardım eder. Teşekkürler – Number10

cevap

0

Tamam ... İşte ben burada yayınlanmıştır kez benim kodunda bulunan budur. Home.php'deki kodda bir oturum yok ve tüm bu Shenanyalılara neden olan şey bu.

Session_Destroy() ve Onclick olayını kaldırdım ve hepsi de tasarlandığı gibi mükemmel çalışıyor.

Zamanınız için teşekkürler Mike ve Dan.