У меня есть небольшая проблема, и я не могу найти причину. У меня есть эта простая функция, которая должна проверять правильность ввода/передачи, и я хотел бы сохранить всю информацию о пользователе из $ строки объекта в $ UserData глобальногообъектГлобальная переменная исчезает из функции
function check_credentials($username, $password) {
global $userdata;
$password = md5($password);
$result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 0,1")or die(mysql_error());
while ($row = mysql_fetch_object($result)) {
if(($row->password == $password) && ($row->username == $username) && ($row->ver == 1)) {
$userdata = clone $row;
return true;
}
else break;
}
}
unset($_SESSION['logged_as']);
return false;
}
у вас есть представление о том, почему, из функции, глобальные переменные исчезнут? потому что это должно быть global
Как вы определили переменную $ userdata раньше? – Broatcast
@Broatcast я этого не сделал. $ userdata объявляется глобальным в начале и «заполняется» непосредственно перед возвратом true –
, вы не можете определить его с глобальным состоянием в начале функции, вам нужно определить эту переменную за пределами функции до ... глобальный оператор дает вам доступ только для чтения/записи к внешней определенной переменной в вашей функции ... это ваша проблема – Broatcast