0

我有一个包含以下代码的文件:

<?
include('../checkiflogged.php');
include('../../config.php'); 
if(!session_id())
session_start();

$klevel = $_SESSION['gradekreadings'];

switch($klevel) {
default:
$querynewpass = "UPDATE profiles SET `gradekreadings`='1' WHERE username='{$_SESSION['login']}'";
$klevel = 1;
break;
}
echo $klevel;
?>

在我的 mysql 中,gradekreadings 是一列,但它没有得到它,我的 $klevel 变量返回,空白或没有。似乎会话在用户登录时已经输入了内容。我的mysql中有一个名为“username”的列,但是当他们登录时,我有一个名为“login”的文本字段。它不会返回“用户名”,只返回“登录”字段。我如何做到这一点,以便我可以在我的 mysql 中为使用我的页面的用户使用所有变量?

- - - - - - - - - - - - - - 编辑 - - - - - - - - - - - ------ 我更新了这段代码,它是从下面给我的:

<?
session_start();
include('../checkiflogged.php');
include('../../config.php');

$klevel = $_SESSION['gradekreadings'];

/*switch($klevel) {
default:
$querynewpass = "UPDATE profiles SET `gradekreadings`='1' WHERE             username='{$_SESSION['login']}'";
mysql_query($querynewpass);
$klevel = 1;
break;
}*/
echo $klevel;
?>

尽管如此,在回声上,什么也没有返回。在我的列中,它有一个 0。

4

2 回答 2

2

尝试${_SESSION["login"]}代替{$_SESSION['login']}

$querynewpass = "UPDATE profiles SET gradekreadings='1' WHERE username='${_SESSION["login"]}'";

或者

$querynewpass = "UPDATE profiles SET gradekreadings='1' WHERE username='".$_SESSION["login"]."'";
于 2013-04-28T17:44:43.917 回答
1
<?
session_start();
include('../checkiflogged.php');
include('../../config.php'); 

if(isset($_SESSION['gradekreadings'])){
  $klevel = $_SESSION['gradekreadings'];
}else{
  klevel=1;
}
switch($klevel) {
default:
$querynewpass = "UPDATE profiles SET `gradekreadings`='1' WHERE username='".$_SESSION['login']."'";
$klevel = 1;
break;
}
echo $klevel;

?>

session_start()必须在文件的开头。

于 2013-04-28T17:47:34.667 回答