[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: авторизация и сессии
qaz333
Вот такаой вопрос, никак не пойму как пользоватся сессиями.

Вот допустим есть страница раз
http://mai1-ru.h2m.ru/index.php


<form action = "actionvhod.php" method = "post">
Логин:
<input type="text" name = "user_login">
Пароль:
<input type="text" name = "user_pass">
<input
type="submit" value="Вход">

</form>

<a
href ="http://mai1-ru.h2m.ru/registration.php">Регистрация</a>




после входа должно переходть сюда
http://mai1-ru.h2m.ru/chat.php


<form name="myForm" action="actionpost.php" method="post" onSubmit="return splash();">

<table
border="0">
<tr>
<TEXTAREA
NAME="name" COLS="20" ROWS="7" WRAP="virtual">
<?

include ("dbvivod.php");

?>
</TEXTAREA>
<td
width="160">
Имя пользователя:
</td>
<td>
<input
name="username" style="width: 300px;">
</td>
</tr>
<tr>
<td
width="160" valign="top">
Сообщение:
</td>
<td>
<textarea
name="msg" style="width: 300px;"></textarea>
</td>
</tr>
<tr>
<td
width="160">

</td>
<td>
<input
type="submit" value="Отправить сообщение">
</td>
</tr>
</table>
</form>


как мне добавить сессии???, я в инете читал, но так и не понял как и куда вставлять код.

и ещо одно



<?
if (isset($_POST['user_login']) && isset($_POST['user_pass']))
include ("dbconnect.php");

$query = "SELECT `id`
FROM `jab`
WHERE `user_login`='
{$user_login}' AND `user_pass`='{$user_pass}'
LIMIT 1"
;
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1) {
$row = mysql_fetch_assoc($sql);
$_SESSION['id'] = $row['id'];
header("Location: chat.php");
}
else {
die('Такой логин с паролем не найдены в базе данных.');
}
}


?>


где тут ошибка?



Спустя 11 минут, 12 секунд (2.01.2011 - 01:09) Lawyer написал(а):
ну с сессиями я наверное немного подскажу
до вывода значения пишешь:
session_start();

а далее присваиваешь нужной сессии нужное значение и выводишь в нужном месте, примерно так:

if($check==1 and $roll==2)
{
++$_SESSION['schet'];
print "
Вы угадали "
.$_SESSION['schet']." раз(-а).<br>
Вы сиграли в ничью "
.$_SESSION['schet2']." раз(-а).<br>
Вы не угадали "
.$_SESSION['schet1']." раз(-а).
"
;
}


ну это если я правильно понял, а то ведь можно и по другому сессии использовать user posted image

и заголовок по моему указывается полностью, попробуй так:
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] .'/chat.php');

Спустя 58 секунд (2.01.2011 - 01:10) waldicom написал(а):
Цитата (qaz333 @ 1.01.2011 - 22:58)
как мне добавить сессии???, я в инете читал, но так и не понял как и куда вставлять код.

В файлах
http://mai1-ru.h2m.ru/index.php
и
http://mai1-ru.h2m.ru/chat.php
в самом начале вставить
session_start();


Lawyer был быстрее

Спустя 7 минут, 50 секунд (2.01.2011 - 01:18) Lawyer написал(а):
и раз уж о разных функциях пошла речь - погляди тут монуал от IRBIS может что полезное найдешь

Спустя 1 день, 15 часов, 19 минут, 9 секунд (3.01.2011 - 16:37) qaz333 написал(а):
Ну вот допустим тут
<form action = "actionvhod.php" method = "post">
Логин:
<input type="text" name = "user_login">
Пароль:
<input type="text" name = "user_pass">
<input
type="submit" value="Вход">

</form>

<a
href ="http://mai1-ru.h2m.ru/registration.php">Регистрация</a>


што, мне просто вставить
session_start(); и всё?

ну и што ето получится?


session_start();
<form action = "actionvhod.php" method = "post">
Логин:
<input type="text" name = "user_login">
Пароль:
<input type="text" name = "user_pass">
<input
type="submit" value="Вход">

</form>

<a
href ="http://mai1-ru.h2m.ru/registration.php">Регистрация</a>


Спустя 3 минуты, 10 секунд (3.01.2011 - 16:40) inpost написал(а):
qaz333
Вставляется в начале страницы до вывода любой информации на экран. Сессию необходимо вставлять на всех страницах, где ты ею пользоваться будешь:
<?php session_start(); ?>

Сессия, своего рода, это обычный массив переменных, который виден на всех страницах, и обращаться к ним надо: $_SESSION['ТУТ ИМЯ']. На одной занёс данные в неё, на другой - взял данные из сессии

Спустя 11 минут, 28 секунд (3.01.2011 - 16:52) qaz333 написал(а):
ну хорошо,


<?
if (isset($_POST['user_login']) && isset($_POST['user_pass']))
include ("dbconnect.php");

$query = "SELECT `id`
FROM `jab`
WHERE `user_login`='
{$user_login}' AND `user_pass`='{$user_pass}'
LIMIT 1"
;
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1) {
$row = mysql_fetch_assoc($sql);
$_SESSION['id'] = $row['id'];
header("Location: chat.php");
}
else {
die('Такой логин с паролем не найдены в базе данных.');
}
}


?>


а где тут ошибка?

Спустя 3 минуты, 48 секунд (3.01.2011 - 16:56) inpost написал(а):
qaz333
А что выдаёт? Есть какое-то предупреждение? Или запрос проходит, редирект без результата?

Спустя 3 часа, 28 минут, 21 секунда (3.01.2011 - 20:24) qaz333 написал(а):
пишет Parse error: syntax error, unexpected '}' in /usr/home/mai1-ru/htdocs/actionvhod.php on line 18

Спустя 11 минут, 38 секунд (3.01.2011 - 20:36) inpost написал(а):
А теперь переведи, что там написано и сюда ответ =)
А ещё лучше посчитай количество открытых и закрытых фигурных скобок! В идеальном мире они сходятся

Спустя 1 час, 29 минут, 5 секунд (3.01.2011 - 22:05) qaz333 написал(а):
а, точно, спс, я не внимательный. ну теперь продолжим с сессиями

вот тут авторизация, тут начали сессию
http://mai1-ru.h2m.ru/index.php
(логин:пароль) <--- ето логин и пароль

<?php session_start(); ?>
<form
action = "actionvhod.php" method = "post">
Логин:
<input type="text" name = "user_login">
Пароль:
<input type="text" name = "user_pass">
<input
type="submit" value="Вход">

</form>

<a
href ="http://mai1-ru.h2m.ru/registration.php">Регистрация</a>


скрипт обработки авторизиции, тут мы при успешной авторизации присваиваем сессии значение id


<?
if (isset($_POST['user_login']) && isset($_POST['user_pass']))
include ("dbconnect.php");

$query = "SELECT `id`
FROM `jab`
WHERE `user_login`='
{$user_login}' AND `user_pass`='{$user_pass}'
LIMIT 1"
;
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1) {
$row = mysql_fetch_assoc($sql);
$_SESSION['id'] = $row['id'];
header("Location: forum2.php");
}
else {
die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.');
}


?>



после авторизации переходит сюда, тут типа если у пользователя указан id то загружается chat.php


<?
if (isset($_SESSION['id'])) {
include("chat.php");
}
else {
die('Доступ закрыт, даём ссылку на авторизацию.');
}
?>



сам chat.php


<form name="myForm" action="actionpost.php" method="post" onSubmit="return splash();">

<table
border="0">
<tr>
<TEXTAREA
NAME="name" COLS="20" ROWS="7" WRAP="virtual">
<?

include ("dbvivod.php");

?>
</TEXTAREA>
<td
width="160">
Имя пользователя:
</td>
<td>
<input
name="username" style="width: 300px;">
</td>
</tr>
<tr>
<td
width="160" valign="top">
Сообщение:
</td>
<td>
<textarea
name="msg" style="width: 300px;"></textarea>
</td>
</tr>
<tr>
<td
width="160">

</td>
<td>
<input
type="submit" value="Отправить сообщение">
</td>
</tr>
</table>
</form>




а теперь вопрос,
почему не авторизируется? серовно пишет ,,Доступ закрыт, даём ссылку на авторизацию.,,
почему ? и где ещо надо разставить <?php session_start(); ?> или как ваще надо?

Спустя 1 час, 4 минуты, 8 секунд (3.01.2011 - 23:09) inpost написал(а):
На ВСЕХ(!!!) страницах в начале скрипта.

Спустя 13 часов, 48 минут, 14 секунд (4.01.2011 - 12:57) qaz333 написал(а):
везде разставил

теперь переходит но пишет

Notice: A session had already been started - ignoring session_start() in /usr/home/mai1-ru/htdocs/chat.php on line 1



<?php session_start(); ?>
<form
name="myForm" action="actionpost.php" method="post" onSubmit="return splash();">

<table
border="0">
<tr>
<TEXTAREA
NAME="name" COLS="20" ROWS="7" WRAP="virtual">
<?

include ("dbvivod.php");

?>
</TEXTAREA>
<td
width="160">
Имя пользователя:
</td>
<td>
<input
name="username" style="width: 300px;">
</td>
</tr>
<tr>
<td
width="160" valign="top">
Сообщение:
</td>
<td>
<textarea
name="msg" style="width: 300px;"></textarea>
</td>
</tr>
<tr>
<td
width="160">

</td>
<td>
<input
type="submit" value="Отправить сообщение">
</td>
</tr>
</table>
</form>


Спустя 1 час, 14 минут, 25 секунд (4.01.2011 - 14:12) qaz333 написал(а):
чё делать?

Спустя 1 час, 19 минут, 39 секунд (4.01.2011 - 15:31) inpost написал(а):
Notice: A session had already been started - ignoring session_start() in /usr/home/mai1-ru/htdocs/chat.php on line 1

Переводим: в этом файле сессия уже была запущена ранее!

Спустя 3 дня, 6 часов, 12 минут, 36 секунд (7.01.2011 - 21:44) qaz333 написал(а):
у меня получилось, только проблема, сессия не заканчивается,
как мне указать для сессии время? где и што надо прописать?

Спустя 16 минут, 6 секунд (7.01.2011 - 22:00) Игорь_Vasinsky написал(а):
время для сессии не прописывается - её можно закрыт или удалить сессионые данные, или закрыть страницу браузера.

Спустя 5 минут, 15 секунд (7.01.2011 - 22:05) Игорь_Vasinsky написал(а):
ты поход вообще ничё про сессии не читал. обманываешь нас тут.

Спустя 1 день, 22 часа, 8 минут, 59 секунд (9.01.2011 - 20:14) qaz333 написал(а):
народ, подскажите почему пишет ошибку
Parse error: syntax error, unexpected '<' in /usr/home/mai1-ru/htdocs/serfing/adminsite.php on line 5


<?
session_start();
if (isset($_SESSION['id'])) {

<html>
<
body text ="withe" background="http://s2.hubimg.com/u/1542621_f520.jpg">

<
table cellspacng ="20"
width ="160" border ="1"
background="red">
<
tr bgcolor ="blue">
<
tr>
<
td>

_______________________________________

</td>
</
tr>


<
form action = "actionvhod.php" method = "post">
<
tr>
<
td>Логин:
<
input type="text" name = "user_login">
</
td>
</
tr>
<
tr>
<
td>
Пароль:
<
input type="text" name = "user_pass">
</
td>
</
tr>
<
tr>
<
td>
<
input type="submit" value="Вход">
</
td>
</
tr>
</
form>
<
tr>
<
td>
<
a href ="http://mai1-ru.h2m.ru/serfing/registration.php">Регистрация</a>
</
td>
</
tr>
</
table>
<
body>
</
html>
}
else {
die('Доступ закрыт, даём ссылку на авторизацию.');
}
?>

Спустя 28 минут, 59 секунд (9.01.2011 - 20:43) twin написал(а):
Блок php закрыть надо
<?
session_start();
if (isset($_SESSION['id'])) {
?>
<html>

Спустя 2 часа, 6 минут, 54 секунды (9.01.2011 - 22:50) qaz333 написал(а):
Цитата (twin @ 9.01.2011 - 17:43)
Блок php закрыть надо
<?
session_start();
if (isset($_SESSION['id'])) {
?>
<html>

он внизу уже закрывается

Спустя 34 минуты, 44 секунды (9.01.2011 - 23:25) twin написал(а):
Этим ?>?
Нужно немного основы посмотреть наверно. Не стоит методом тыка. Себе дороже.

Спустя 19 часов, 3 минуты, 47 секунд (10.01.2011 - 18:29) qaz333 написал(а):
Цитата (twin @ 9.01.2011 - 20:25)
Этим ?>?
Нужно немного основы посмотреть наверно. Не стоит методом тыка. Себе дороже.

ну да етим, а где ещо по твоиму нужно поставить, штоб остался смысл скрипта???

Спустя 1 час, 27 минут, 41 секунда (10.01.2011 - 19:56) qaz333 написал(а):
хелп

Спустя 6 дней, 21 час, 16 минут, 19 секунд (17.01.2011 - 17:13) inferno67 написал(а):
Цитата (qaz333 @ 9.01.2011 - 17:14)
народ, подскажите почему пишет ошибку
Parse error: syntax error, unexpected '<' in /usr/home/mai1-ru/htdocs/serfing/adminsite.php on line 5


<?
session_start();
if (isset($_SESSION['id'])) {

<html>
<
body text ="withe" background="http://s2.hubimg.com/u/1542621_f520.jpg">

<
table cellspacng ="20"
width ="160" border ="1"
background="red">
<
tr bgcolor ="blue">
<
tr>
<
td>

_______________________________________

</td>
</
tr>


<
form action = "actionvhod.php" method = "post">
<
tr>
<
td>Логин:
<
input type="text" name = "user_login">
</
td>
</
tr>
<
tr>
<
td>
Пароль:
<
input type="text" name = "user_pass">
</
td>
</
tr>
<
tr>
<
td>
<
input type="submit" value="Вход">
</
td>
</
tr>
</
form>
<
tr>
<
td>
<
a href ="http://mai1-ru.h2m.ru/serfing/registration.php">Регистрация</a>
</
td>
</
tr>
</
table>
<
body>
</
html>
}
else {
die('Доступ закрыт, даём ссылку на авторизацию.');
}
?>

В этом случае сохрани html в отдельном файле и подключи его вот так:
include './xxx.html';
либо echo 'html-код';
1-й способ предпочтительней...

Спустя 22 дня, 20 часов, 43 минуты, 48 секунд (12.02.2011 - 13:56) qaz333 написал(а):
а как быть с кукисами? гди их надо отправлять и принимать?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.