2017-02-21 29 views
-1

我想將變量添加到會話中並在函數中讀取該變量。無法將變量添加到php會話中

所以這裏是的index.php:

<?php 
include("include/config.php"); 

if(!empty($txt_user) && !empty($txt_pass)) 
{ 
    $result=login_func($txt_user,$txt_pass); 

    if($result==1) 
    { 
     header("Location: homepage.php"); 
    }else{ 
     $alert_class="alert-danger"; 
    } 
} 
?> 
<form action="<?php echo("".$_SERVER['PHP_SELF']."");?>" method='post' class='form-validate' id="test"> 
       <div class="form-group"> 
        <div class="email controls"> 
         <input type="text" name='txt_user' placeholder="Kullanıcı Adınız" class='form-control' data-rule-required="true"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="pw controls"> 
         <input type="password" name="txt_pass" placeholder="Şifreniz" class='form-control' data-rule-required="true"> 
        </div> 
       </div> 
       <div class="submit"> 
        <input type="submit" value="Giriş Yap" class='btn btn-primary'> 
       </div> 
      </form> 

的config.php:

<?php 

ini_set('session.gc_maxlifetime', 3600); 
session_start(); 
ob_start(); 

include("class.php"); 
include("functions.php"); 

**connections to db** 
?> 

的functions.php:

function login_func($user,$pass) 
{ 
    $sql=mysql_query("SELECT * FROM table WHERE user_name='$user' AND pass='$pass' LIMIT 1"); 

    $control_number=mysql_num_rows($sql); 
    if(($control_number==1)) 
    { 
    $_SESSION['login_id'][email protected]_result($sql,0,'id'); 
    $_SESSION['login_name'][email protected]_result($sql,0,'name'); 
    $_SESSION['login_email'][email protected]_result($sql,0,'email'); 

    return 1; // true 
    }else{ 
    return 2; //false 
    } 
} 

所以,如果我加下面的命令來homepage.php我得到空的結果對每個回聲:

echo $_SESSION['login_id']; 
    echo $_SESSION['login_name']; 
    echo $_SESSION['login_email']; 

甚至還有,如果我只是在做功能相同的回聲行動它不給任何輸出了。

also here are my php session configurations:

,所以我貼在這裏不能找到導致這個問題。感謝您的幫助。

請不要擔心語法錯誤我認爲只有問題是使用錯誤的會話和會話conf。

+0

不要使用'mysql_ *'功能。它們只會讓你容易受到SQL注入的攻擊。請使用'mysqli_ *'或準備好的查詢。 –

回答

0

您正在嘗試訪問$txt_user$txt_pass變量作爲registered globals

除非您使用php 5.3及以下版本,register_globals將從PHP中移除。

註冊全局變量是巨大的安全風險,應該避免在任何情況下。

嘗試使用$_POST['txt_user']$_POST['txt_pass']代替

+0

感謝您的評論,我使用PHP 5.3和所有代碼在本地服務器上工作,並且代碼也是舊的,因此需要升級。 – kazata