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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 10:38   #1
Shyt
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 83
Сообщение Session

объясните что такое сессия и как она работает??? прошу:
я создал регистрацию+ идентификационную страницу. и тут повис я не могу понять как сохранить session на другой странице...

кроме session_start() что еще нужно писать. чтоб на новой странице я остался тем же юзером который прошел идентификацию


главная половина моего скрипта....остальное ерунда... идентификации
полностью работает, но я не знаю что писать на другой странице cosmos.php
начало:
<?php
session_start();
include("db.php");
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" );
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
если нет сессии
if(md5(crypt($_SESSION['user'],$_SESSION['password'])) != $_SESSION['SID'])


конечная часть:

$q1=mysql_query("SELECT * FROM users WHERE nick='".$login."' AND password='".md5($upass)."' AND status=1");
if(mysql_num_rows($q1)===1) {
$r=mysql_fetch_array($q1);
если такой есть то начинаем сессию
$_SESSION['user'] = $r['nick'];
$_SESSION['password'] = $r['password'];
$_SESSION['SID'] = md5(crypt($r['nick'],$r['password']));

@Header("Location:nin.php");
}
else {echo 'Неверный логин/пароль; Возможно Ваш аккаунт не активирован';}
}
}
else {echo 'Введите данные';}
}
else {

$q2 = @mysql_query("SELECT * FROM users WHERE nick='".$_SESSION['user']."' AND password='".$_SESSION['password']."' AND status=1");
if(@mysql_num_rows($q2)==1){
$r2 = @mysql_fetch_array($q2);

echo 'Вы: '.ucfirst($r2['nick']).'<br/>';
echo '<a href="cosmos.php">главная</a> ';

if($_GET['page'] !='') {
@include("tpl/".$_GET['page'].".php");
}
else { @include("default.php");}



echo '<br/><br/><a href="nin.php?exit=1">выход</a>';
}
}
if($_GET['exit']) {@session_destroy(); unset($_GET['exit']); mysql_close($link); @Header("Location: nin.php");}
?>
Shyt вне форума Ответить с цитированием
Старый 12.11.2009, 12:51   #2
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

может стоит учиться на простых примерах? после session_start() клиенту выдается идентификатор, который записывается либо в куки, либо в строку запроса
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 12.11.2009, 23:23   #3
Shyt
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 83
Радость

спасибо а по точнее можно знаю может я может не дотягиваю... а можешь в примере показать как делается запрос????
Shyt вне форума Ответить с цитированием
Старый 13.11.2009, 13:45   #4
F1ernandes
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 14
По умолчанию

Идентификатор тебе тоже не особо нужен.

Всё довольно просто.

На каждого пользователя сайта, заводится сессия, глобальный массив. Все данные которые туда заносишь, относятся только к этому пользователю.

Сессия,- глобальный массив, т.ч. можно к ней обращаться из разных скриптов, функций и классов.

Открывается на определенное время, обычно около поллучаса. Но можно настроить по другому(это в настройках сервера).
F1ernandes вне форума Ответить с цитированием
Старый 13.11.2009, 22:14   #5
Shyt
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 83
По умолчанию

я прав если сделаю так сессию... 1.php
<?php session_start()
.......
print "....... Логин <input type='text' name='t' value=''>"....
........
$e=$_POST['t'];
.......
session_regester(e)?>

2.php на на второй просто уже нужно будет писать только

<?php
session_start();

print '$e'; здесь он уже будет выдавать данные его логина

?>
Shyt вне форума Ответить с цитированием
Старый 14.11.2009, 01:14   #6
F1ernandes
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 14
По умолчанию

Намного проще.
Код:
$_SESSION['e']=$_POST['e']
Хотя форму я бы стал обрабатывать подругому.
F1ernandes вне форума Ответить с цитированием
Старый 14.11.2009, 19:35   #7
Shyt
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 83
По умолчанию

Цитата:
$_SESSION['e']=$_POST['e']
я что то не понимаю, а разве после этого создаться сессия??? и она будет видна на других страницах.... и при запросе на другой странице $e= он будет выводить логин...

да я понял почему я нечего не могу сделать. у меня не настроена сессия кто знает как настроить помогите пожалуйста
Shyt вне форума Ответить с цитированием
Старый 14.11.2009, 22:50   #8
F1ernandes
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 14
По умолчанию

На другой странице нужно выводить тоже $_SESSION['e']
F1ernandes вне форума Ответить с цитированием
Старый 15.11.2009, 10:51   #9
Shyt
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 83
По умолчанию

странно у меня создаются сессий но не появляется на следующей странице нечего:
а на первой показывают вот это
Цитата:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
пример:
1.php
Цитата:
<?php
session_star();
$a="Привет"
session_register("a");
?>
<html><body><a href='2.php'>посмотрим</a>.........
2.php
Цитата:
<?php
session_start();
?>
<html>
<body>
<?php
echo $a;
?>...........
на странице 2.php не выводится привет
Shyt вне форума Ответить с цитированием
Старый 15.11.2009, 11:23   #10
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Сообщение от Shyt Посмотреть сообщение
странно у меня создаются сессий но не появляется на следующей странице нечего:
а на первой показывают вот это


пример:
1.php

2.php

на странице 2.php не выводится привет
попробуй echo $_SESSION['a']
ssdm вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск