我正在尝试将变量添加到会话中并在函数中读取该变量。
所以这里是 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']=@mysql_result($sql,0,'id');
$_SESSION['login_name']=@mysql_result($sql,0,'name');
$_SESSION['login_email']=@mysql_result($sql,0,'email');
return 1; // true
}else{
return 2; //false
}
}
因此,如果我将以下命令添加到homepage.php,我会得到每个echo的空结果:
echo $_SESSION['login_id'];
echo $_SESSION['login_name'];
echo $_SESSION['login_email'];
即使我在函数中执行相同的echo操作也不会给出任何输出。
所以我被困在这里,无法找到导致这个问题的原因。谢谢你的帮助。
请不要担心语法错误我认为只有问题是使用错误的会话和会话conf。
答案 0 :(得分:0)
您正尝试将$txt_user
和$txt_pass
个变量视为registered globals。
除非您使用的是php 5.3及以下版本,否则将从PHP中删除register_globals。
注册全局变量是一个<强大的安全风险,在任何情况下都应该避免。
尝试使用$_POST['txt_user']
和$_POST['txt_pass']
代替