Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2010, 17:43   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию сессии - session_register() is deprecated

Код:
<?php
	if (session_start())
	{
		print("OK");	
	}
	$user = $userName;
	session_register("user");//какую переменную будем хранить в сеансе
?>
<form action "session.php" method "get">
	Login: <input name = "userName">
	Password: <input name = "password">
	<input type = "submit" name = "sub" value = "Go">
</form>
<a href = "session1.php">AAAAAAAAAAAAA</a>
session1.php

Код:
<?php
	session_start();
	print(<P>"$user");
?>
результат:

session.php (первый файл) при запуске даёт вот такие ошибки: Notice: Undefined variable: userName in C:\wamp\www\session.php on line 6

Deprecated: Function session_register() is deprecated in C:\wamp\www\session.php on line 7
Ну в принципе понятно. сразу идёт обращение к несуществующей переменной. Но почему тогда выполняется условие session_start()???? она ведь по идее должна начаться когда я введу логин и пароль и нажму на кнопочку?
Но после того как я ввёл в поля логин и пароль первая ошибка ликвидируется, а вторая, Deprecated: Function session_register() is deprecated in C:\wamp\www\session.php on line , остаётся. Причём, когда я перехожу по ссылке, у меня в session1.php выфскакивает ошибка Parse error: parse error in C:\wamp\www\session1.php on line 3
Поскажите плиз как всё это исправить и как сделать так, чтобы всё работало грамотно
Dimarik вне форума Ответить с цитированием
Старый 11.07.2010, 18:10   #2
A_r_r_a_y
Форумчанин
 
Аватар для A_r_r_a_y
 
Регистрация: 01.03.2008
Сообщений: 165
По умолчанию

session.php
PHP код:
session_start();
$_SESSION['user'] = $userName
session1.php
PHP код:
session_start();
print 
$_SESSION['user']; 
A_r_r_a_y вне форума Ответить с цитированием
Старый 11.07.2010, 18:15   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

вот у меня вопрос. почему мы написали 'user'? а не "user" или не "$user"?
ведь так как это переменная то перед ней должен быть знак $ и чтобы строка распознавала переменную, её надо брать в двойные кавычки...
Dimarik вне форума Ответить с цитированием
Старый 11.07.2010, 18:22   #4
A_r_r_a_y
Форумчанин
 
Аватар для A_r_r_a_y
 
Регистрация: 01.03.2008
Сообщений: 165
По умолчанию

$_SESSION - это ассоциативный массив, в скобках указывается идентификатор, разницы между двойными и одинарными ковычками в данном случае практически нет, т.е. $_SESSION["user"] тоже должно работать, смотрите про различия этих ковычек в php. Также можно сделать так:
PHP код:
session_start(); 
$user 'user';
print 
$_SESSION[$user]; 
A_r_r_a_y вне форума Ответить с цитированием
Старый 11.07.2010, 18:24   #5
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
вот у меня вопрос. почему мы написали 'user'? а не "user" или не "$user"?
ведь так как это переменная то перед ней должен быть знак $ и чтобы строка распознавала переменную, её надо брать в двойные кавычки...
$_SESSION - суперглобальный массив, где хранится значение вашей сессийной переменной.
$user - не будет работать в связи с органичениями секьюрности.

и да, по теме: deprecated означает "устаревший"
SkyM@n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Deprecated: Function session_register() is deprecated Rusl92 PHP 4 05.07.2010 13:15
Сессии L_M PHP 3 06.06.2009 10:27
Сессии limon PHP 19 29.11.2008 22:46