我是php的新手
我想使用通过<form method="POST" action="formdata.php">
发送到 formdata.php 的表单数据,用于名为 main.php的另一个文件。为此我在 formdata.php
她的代码是 formdata.php
<?php
session_start();
include_once("connect.php");
$n=$_POST['name'];
$p=$_POST['password'];
$sql=mysql_query**strong text**("SELECT * FROM member WHERE `userName`='$n' AND `password`='$p'");
if(mysql_num_rows($sql)==1){
$_SESSION['user']=mysql_fetch_array(mysql_query("SELECT * FROM member WHERE `userName`='$n' AND `password`='$p'"));
if($_SESSION['user']){
$user=$_SESSION['user'];
$_SESSION['userN']="$user(['userName'])";;
$_SESSION['level']="$user(['level'])";
//header("location:mainPage.php");
echo $user['level'];
echo $_SESSION['level'];
}
}
else{
echo "invalid user name or password" ;
}
?>
但是当我echo $user['level'];
echo $_SESSION['level'];
我打印的所有内容都是3Array(['level'])
。这里echo $user['level']
给出了所需的输出3,但echo $_SESSION['level']
给出了一个数组Array(['level'])
。我该怎么做才能打印3
?
我的下一个问题是我想在另一个 php文件(main.php)中使用此级别值。我认为会话变量是全局的。我可以使用$user['level']
,还是应该使用$_SESSION['level']
。在 main.php 我想查看条件
if($user['level'] == 3) {
echo "level 3 user";
}
答案 0 :(得分:2)
问题在于这一行:$_SESSION['userN']="$user(['userName'])";;
您设置的$_SESSION['userN']
等于$user
字符串形式的Array
和(['username'])
。
为什么你甚至设置用户N? $_SESSION
应该已经包含相关用户,您可以在任何地方检索它以获取内容。
这应该是你所需要的:
<?php
session_start();
include_once("connect.php");
$n=mysql_escape_string($_POST['name']);
$p=mysql_escape_string($_POST['password']);
$sql = mysql_query("SELECT * FROM member WHERE `userName`='$n' AND `password`='$p'");
if(mysql_num_rows($sql)==1)
{
//You can reuse the original $sql here. No need to run another query.
$_SESSION['user']=mysql_fetch_array($sql);
//If mysql_num_rows($sql) returns 1, $_SESSION['user'] should always be equal to a user array (Which is true).
header("location:mainPage.php");
}
else{
echo "invalid user name or password" ;
}
?>
在另一页(mainPage.php
)上,只需使用session_start()
,然后查看$_SESSION
内的内容。这个脚本应该为您提供一个快速启动:
<?php
session_start();
print_r($_SESSION);
//This will get the level you're looking for
$level = $_SESSION['user']['level'];
?>
它应包含用户/级别以及您需要的任何其他信息。