|
|
|
| S KODIROVKOY NICHOGO PODELAT' NE MOGU!!!
Я пишу код следующего содержания:
<?
require('main.php');
session_start();
if (!isset($_SESSION['uid']))
{
$_SESSION['uid'] = $_POST['uid'];
$_SESSION['pwd'] = $_POST['pwd'];
}
$uid = $_SESSION['uid'];
$pwd = $_SESSION['pwd'];
db_connect();
$res = mysql_query("SELECT * FROM users WHERE uid='$uid' AND pwd='$pwd' and status='active'");
$re = mysql_fetch_array($res);
if(mysql_num_rows($res) != 0) {
include(INC_DIR."header.php");
echo "<center><br><b>Здравствуйте, $uid.</b></center>";
} else {
unset($_SESSION['uid']);
unset($_SESSION['pwd']);
echo "<center><br><b>Неверный логин или пароль!</b></center>";
include(INC_DIR."login.php");
}
include(INC_DIR."footer.php");
db_disconnect();
?>
<a href="member2.php">NEXT</a>
|
Эта страница грузится, когда User зарегился и вош_л в систему. Но ведь будут и другие страницы, на которых нужно будет сохранить сессию. Какой код нужно написать (например в файле member2.php, чтобы перейдя по ссылке привед_нной после кода открылась страница с приветствием пользователя? S kodirobkoy problemy!!! | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 01:30)
| |
<?
session_start();
echo $_SESSION['uid'];
?>
|
| |
|
|
|
|
|
|
|
для: isset
(19.02.2005 в 01:48)
| | Ne rabotaet! V chem mojet byt' problema?
оЕ ТБВПФБЕФ! | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 02:03)
| | А какие симптомы? Что-нибудь выводится в окно браузера или просто пустой массив $_SESSION? | |
|
|
|
|
|
|
|
для: cheops
(19.02.2005 в 02:13)
| | Voobshe nichego ne vyvoditsa. Prosto pustaya stranica... Chto delat'?
нПЦЕФ ЬФП ЛБЛПК-ОЙВХДШ ЗМАЛ У php.ini ПРСФШ? | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 02:17)
| | Хм... попробуйте вывести содержимое суперглобального массива $_SESSION
<?php
start_session();
print_r($_SESSION);
?>
|
В нём что-нибудь есть? | |
|
|
|
|
|
|
|
для: cheops
(19.02.2005 в 10:47)
| | Хорошо попробую...
Это на всякий случай, если не заработает, может так будет понятней в чём проблема?
Вот код из вашего "Самоучителя PHP 5.0"
Вот этот пример работает.
<?
session_srart();
$_SESSION['username'] = maksim";
echo "Привет,' .$_SESSION['username']."<br>";
?>
<a href="page2.php">На следующую страницу</a>
|
Выводит:
"Привет, maksim.
На следующую страницу."
А вот этот уже нет.
<?
session_start();
echo $_SESSION['username']. ', ты пришёл на следующую страницу этого сайта!';
eco("<br>");
?>
<a href="page3.php">На следующую страницу</a>
|
Выводит:
" , ты пришёл на следующую страницу этого сайта!
На следующую страницу."
В чём может быть проблема? Может сам код скрипта или настройки php.ini? | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 10:58)
| | Пожалуй следует настроить в php.ini директорию для записей сессий. Как это сделать описывается в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=104. Тогда вы сможете визуально контролировать - регистрируется сессия или нет. | |
|
|
|
|
|
|
|
для: cheops
(19.02.2005 в 11:23)
| | У меня и так путь прописан. Причём файлы вида sess_3b81ec7d40702df82ead62a3d02d55c8 записываются. Но на что это влияет и зачем? Насколько я понял, если файлы там записываются, то они и регистрироваться должны...
И ещё, если можно, напишите простейший скрипт регистрации/авторизации.
Просто, чтоб я понял как это происходит
PS Желательно так, чтобы после авторизации можно было перейти на другую страницу с сохранённой сессией. (Без авторизации на эту страницу не попасть) | |
|
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 19:34)
| | >У меня и так путь прописан. Причём файлы вида
>sess_3b81ec7d40702df82ead62a3d02d55c8 записываются. Но на
>что это влияет и зачем? Насколько я понял, если файлы там
>записываются, то они и регистрироваться должны...
Так, а внутри файла что? | |
|
|
|
|
|
|
|
для: cheops
(19.02.2005 в 20:59)
| | йФБЛ, ЮФПВЩ ЧУЈ ВЩМП РПОСФОП ЧЩМПЦХ чуе РПДТПВОПУФЙ.
ьФБ УФТБОЙГБ ЪБЗТХЦБЕФУС РПУМЕ ЧЧПДБ мПЗЙОБ Й рБТПМС...
<?
require('/usr/SERVERS/PRIMARY/GameServer/reg/main.php');
session_start();
if (!isset($_SESSION['uid']))
{
$_SESSION['uid'] = $_POST['uid'];
$_SESSION['pwd'] = $_POST['pwd'];
}
$uid = $_SESSION['uid'];
$pwd = $_SESSION['pwd'];
print_r($_SESSION);
db_connect();
$res = mysql_query("SELECT * FROM users WHERE uid='$uid' AND pwd='$pwd' and status='active'");
$re = mysql_fetch_array($res);
if(mysql_num_rows($res) != 0)
{
include(INC_DIR."header.php");
echo "<center><br><b>ъДТБЧУФЧХКФЕ $uid, ЦЕМБЕН РТЙСФОП РТПЧЕУФЙ ЧТЕНС.</b></center>";
}
else
{
unset($_SESSION['uid']);
unset($_SESSION['pwd']);
echo "<center><br><b>оЕЧЕТОЩК МПЗЙО ЙМЙ РБТПМШ!</b></center>";
include(INC_DIR."login.php");
}
include(INC_DIR."footer.php");
db_disconnect();
?>
<a href="member2.php">дБМЕЕ</a>
ч ПЛОП ВТБХЪЕТБ ЧЩЧПДЙФУС УМЕДХАЭЕЕ:
Array ( [uid] => User [pwd] =>111)
ъДТБЧУФЧХКФЕ User!!!
дБМЕЕ
рПУМЕ ОБЦБФЙ ОБ УУЩМЛБ "дБМЕЕ" ЪБЗТХЦБЕФУС ЬФПФ УЛТЙРФ:
<?
session_start();
$_SESSION['uid'] = $uid;
$_SESSION['pwd'] = $pwd;
echo ("чЩ, $uid");
echo "<br>";
print_r($_SESSION);
?>
ч ПЛОП ВТБХЪЕТБ ЧЩЧПДЙФУС УМЕДХАЭЕЕ:
чЩ,
Array ( [uid] => [pwd] => )
лУФБФЕ УЛТЙРФЩ ЙУРЩФЩЧБАФУС Ч ВТБХЪЕТЕ KONQUEROR (Mozill) ОБ Linux RedHat 9.0
нПЦЕФ ЬФ ЬФПЗП ЛБЛ-ФП ЪБЧЙУЙФ?
рТПЧЕТЛБ | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 21:02)
| | А нет, я имею ввиду файлы sess_3b81ec7d40702df82ead62a3d02d55c8 - в них помещается переменная? | |
|
|
|
|
|
|
|
для: cheops
(19.02.2005 в 21:08)
| | Да в них помещается переменная, выглядит следующим образом
uid|"User";pwd|"111";
Я выше код привёл с подробным объяснением того, что происходит. варианты есть? | |
|
|
|
|
|
|
|
для: evgen_17
(19.02.2005 в 21:36)
| | Стоп! А почему у вас во втором файле
<?php
session_start();
$_SESSION['uid'] = $uid;
$_SESSION['pwd'] = $pwd;
?>
|
может имеется ввиду
<?php
session_start();
$uid = $_SESSION['uid'];
$pwd = $_SESSION['pwd'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.02.2005 в 13:22)
| | Вставил Ваш код, модифицировал до такого:
<?php session_start(); $uid = $_SESSION['uid']; $pwd = $_SESSION['pwd']; print_r($_SESSION); echo ("$uid"); ?>
|
Выводит в браузер:
Array ()
Я слышал что-то про регистрацию переменных (session_register) если написать вот такой код:
<?php session_start(); session_register('uid','pwd'); $uid = $_SESSION['uid']; $pwd = $_SESSION['pwd']; print_r($_SESSION); echo ("$uid"); ?>
|
то выводится в браузер:
Array ([uid] => [pwd] => )
Данный пример (из вашего Инфо) тоже не работает!
<html> <body> <h1> Страница регистрации </h1> <input type=hidden name=action value=post> <form method="post" action="page1.php"> <table> <tr><td>Имя:</td> <td><input type="text" name=name value='<? echo $name; ?>'></td></tr> <tr><td colspan=2><input type=submit value='Enter'> </td></tr> </table> </form> </body> </html>
|
<?php session_start(); $_SESSION['username'] = $name; echo 'Привет, '.$_SESSION['username']."<br>"; ?>
|
<?php session_start(); echo $_SESSION['username'].' , ты пришел на другую страницу этого сайта!'; echo("<br>"); ?>
|
Если в первом скрипте исправить action="page1.php" на action="page2.php", то в окно браузера выводится:
, ты пришел на другую страницу этого сайта!
Это очем-нибудь Вам говорит? Ну не может же быть так, чтобы решения этой проблемы не было!!!???
Кстате, я говорил, что при установке PHP отключил установку LIBXML (--disable-libxml). Может это как-нибудь повлеяло? Или вообще может какие-нибудь особые параметры при установке вводить нужно?
Напишите, пожалуйста, то какие надо задавать параметры при установке PHP (начальной) Или лучше вообще написать те установки которые Вы писали при установке (если помните)... Может мне копию своего php.ini прислать, может быть там что-нбудь не так настроено??? | |
|
|
|
|
|
|
|
для: evgen_17
(20.02.2005 в 18:19)
| | Первый листинг нужно переписать так:
<?
session_start();
$_SESSION['uid']="11";
$_SESSION['pwd']="22";
print_r($_SESSION);
echo ("$uid");
?>
|
Тогда он выведет массив $_SESSION.
Файл page1.php должен выглядеть так:
<?php
session_start();
$_SESSION['username'] = $_POST["name"];
echo 'Привет, '.$_SESSION['username']."<br>";
?>
|
Тогда заработает страница page2.php
<?php
session_start();
echo $_SESSION['username'].' , ты пришел на другую страницу этого сайта!';
echo("<br>");
?>
|
В форме имя обработчика должно быть action=page1.php - именно в нем регистрируется сессионная переменная. Если сразу указать action=page2.php, то сессионная переменная не будет зарегистрирована и соответственно не будет выведено ее значение. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.02.2005 в 19:57)
| | page2.php не работает. И вообще я правильно понимаю???
Если page1.php (см. выше) получила перемнную $_POST["name"] (например Вася), а команда echo 'Привет, '.$_SESSION['username']."<br>"; Выводит в браузер "Привет, Вася", значит сессии работают?
Ну а что тогда нужно написать в фаеле page1.php, чтобы перейти на страницу page2.php и увидеть в окне браузера
"Вася, ты пришел на другую страницу этого сайта!" | |
|
|
|
|
|
|
|
для: evgen_17
(20.02.2005 в 21:40)
| | >значит сессии работают?
По крайней мере присваиваются.
Ссылку напишите
<a href="page2.php">Ссылка</a> | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.02.2005 в 23:25)
| | Дизайнер, Вы меня недооцениваете... Как писать ссылки на другие страницы я знаю. А вот каким должно быть содержание файла??? (см. новую тему) | |
|
|
|
|
|
|
|
для: evgen_17
(21.02.2005 в 11:47)
| | > вот каким должно быть содержание файла???
Page2.php? Так я же его приводил двумя постами выше… | |
|
|
|
|
|
|
|
для: evgen_17
(21.02.2005 в 11:47)
| | я столкнулся с той же проблемой. Целый день провел над проблемой, делал всевозможные настройки и исправления путей в httpd.conf. Потом, когда перезагрузил компьютер, все настроилось и этот самый пример из учебника работает. Могу привести листинг конфигурационного файла ,в котором те настройки, которые могут тебе пригодиться. | |
|
|
|
|
|
|
|
для: Денис
(16.03.2005 в 00:13)
| | Спасибо, но я уже давно разобрался... | |
|
|
|