【发布时间】:2011-04-19 04:53:27
【问题描述】:
我对函数和数组如何协同工作的理解略有差距
我有这个函数,它从名为 submitlogin 的表单中获取登录信息,然后执行一个简单的查询并获取数组,但前提是值不是空的,如果有则返回错误(截断该部分)
function check_login($dbc, $email = '', $pass = '') {
$q = "SELECT user_id, user_type, first_name, time_zone FROM users WHERE email='$e' AND pass=SHA1('$p')";
然后在实际的登录页面上,我使用发布的值调用该函数
if (isset($_POST['submittedlogin'])) {
require_once ('includes/login_functions.inc.php');
require_once ('../mysqli_connect.php');
list ($check, $data) = check_login($dbc, $_POST['email'], $_POST['pass']);
if ($check) { // OK!
// Set the session data:.
session_start();
$_SESSION['user_id'] = $data['user_id'];
$_SESSION['first_name'] = $data['first_name'];
// Get priviledges
$_SESSION['user_type'] = $data['user_type'];
// Store the HTTP_USER_AGENT:
$_SESSION['agent'] = md5($_SERVER['HTTP_USER_AGENT']);
//
请注意,$_SESSION['user_type'] = $data['user_type']; 确实返回了正确的值。
我的问题是这里的语法是如何工作的? :
list ($check, $data) = check_login($dbc, $_POST['email'], $_POST['pass']);
更好的措辞可能是,$check 和 $data 变量是如何定义的?是否:
$check = check_login($dbc) 和 $data = $q??
我们将不胜感激。
【问题讨论】: