Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с сессиями

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: method   (05.06.2005 в 07:27)   письмо автору
 
   для: cheops   (01.06.2005 в 20:46)
 

Буквально на днях столкнулся с такой же праблой что и автор этой темы,
тут модифицировал малёху отладочный скрипт от cheops'а ,
может кому нить и понадобится ....ХЫ...

файл test.php :




<?php
Error_Reporting
(0);
$name=$_POST['name'];
if(isset(
$_POST['action']))
  {
if(
$name==""){
   
$submit false;
   }
if(
$name!==""){
 
session_start();
 
$_SESSION['name']=$name;
Header("Location: itog.php");
 }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Проверка регистрации переменных при отключеной register_global</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
<body onload="document.form.name.focus();"><center><font color=blue size=10>Введите какое нибудь имя для теста</font>
<form action="test.php" method="post" name="form">
<input type="hidden" name="action" value="">
<input type="text" name="name" value=""> <br><br>
<input type="submit" name="submit" value="проверка">
</form></center>
</body></html>





файл itog.php :

<?php 
Error_Reporting
(0);
  print 
"<title>Итог Теста</title>";
  
// Инициируем сессию 
  
session_start(); 
  if(!
$_SESSION['name']){
  print 
"<center><font color=red size=16>Переменной login Нет в супер-глобальном массиве!<br> обратитесь к документации по настройке php на вашем сервере</font></center>";
  exit;
  }
  else{
  
// Выводим содержимое массива 
  
print "<center><font color=green size=18>Всё работает:</font></center><br><center><font color=darkblue size=14>Логин:  <b>".$_SESSION['name']."</b><br><br>id сессии:  <b>".session_id()."</b><br></font></center>";
  exit;
  }
?>



ЗЫ: Модераторам > Если Ошибся где то в терминологии поправте пожалуйста...
спасибо за внимание...

   
 
 автор: cheops   (01.06.2005 в 20:46)   письмо автору
 
   для: Андрюха.   (01.06.2005 в 16:27)
 

Давайте вопрос в какой-нибудь одной теме обсуждать :)))

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4367

   
 
 автор: Андрюха.   (01.06.2005 в 16:27)   письмо автору
 
   для: cheops   (21.01.2005 в 12:51)
 


<?php
  
// Инициируем сессию
  
session_start();
echo 
session_id();
  
// Помещаем переменную в сессию
  
$_SESSION['name'] = "value";
  
// Переходим на другую страницу
  
echo "<a href=qq1.php>проверка</a>";
?>

и файл qq1.php

<?php
  
// Инициируем сессию
  
session_start();
echo 
session_id();
  
// Выводим содержимое массива
  
print_r($_SESSION);
echo 
$_SESSION['name'];
//echo session_id();
?>

и сесия qq отличается от qq1. кроме сессий ничего не выводится - хост

   
 
 автор: cheops   (21.01.2005 в 12:51)   письмо автору
 
   для: Felix   (21.01.2005 в 04:57)
 

Например, создать файл index.php следующего содержания
<?php
  
// Инициируем сессию
  
session_start();
  
// Помещаем переменную в сессию
  
$_SESSION['name'] = "value";
  
// Переходим на другую страницу
  
echo "<a href=index1.php>проверка</a>";
?>

а в index1.php вывести дамп суперглобального массива $_SESSION
<?php
  
// Инициируем сессию
  
session_start();
  
// Выводим содержимое массива
  
print_r($_SESSION);
?>

   
 
 автор: Felix   (21.01.2005 в 04:57)   письмо автору
 
   для: cheops   (20.01.2005 в 20:06)
 

А какой отладочный скрипт надо написать ?

   
 
 автор: cheops   (20.01.2005 в 20:06)   письмо автору
 
   для: cheops   (20.01.2005 в 08:07)
 

У меня приведённый выше вариант, после подстановки соответствущих параметоров баз данных и закомментаривание вызовов файлов, которых у меня нет - работает. Может дело действительно в сервере - попробуйте написать простейший отладочный скрипт - он работает?

   
 
 автор: cheops   (20.01.2005 в 08:07)   письмо автору
 
   для: Felix   (20.01.2005 в 06:05)
 

Так и не добрался вчера до вашего скрипта :((( Сегодня будут делать...

   
 
 автор: Felix   (20.01.2005 в 06:05)   письмо автору
 
   для: cheops   (19.01.2005 в 13:02)
 

Вот еще раз выкладываю скрипты
немного измененные но на работу не изменения существенно не влияют


<?php
session_start
();
    
// Это файл handler.php
    // Имя сервера базы данных, например $dblocation = "mysql28.noweb.ru"
    // сейчас выставлен сервер локальной машины
    
$dblocation "192.168.1.202";
    
// Имя базы данных
    
$dbname "knp";
    
// Имя пользователя... Скорее всего будет совпадать с вашим доменным именем
    // у нас, например $dbuser = "softtime";
    
$dbuser "root";
    
// Пароль - в комментариях не нуждается ;-)
    
$dbpasswd "wrdz98x";
    
// Соединяемся с сервером базы данных
    
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
    if (!
$dbcnx) {
      echo( 
"<P>В настоящий момент сервер базы данных не
                          доступен, поэтому корректное отображение
                          страницы невозможно.</P>" 
);
      exit();
    }
    
// Выбираем базу данных
    
if (! @mysql_select_db($dbname,$dbcnx) ) {
      echo( 
"<P>В настоящий момент база данных не доступна,
                          поэтому корректное отображение страницы
                          невозможно.</P>" 
);
      exit();
    }
    
// Формируем и выполняем SQL-запрос для посетителя с
    // именем $_POST['name']
    
$query "SELECT password FROM avtoriz WHERE login='".$_POST['name']."'";
    
$nme mysql_query($query);
    if(!
$nme)
    {
      echo 
mysql_error();
      echo 
"Ошибка выполнения запроса";
      exit();
    }
    
// Если запрос вернул результат - производим дальнейшую обработку
    
if(mysql_num_rows($nme) > 0)
    {
       
// Получаем пароль
       
$password mysql_result($nme0);
       
// Сравниваем пароль из базы данных и введённый посетителем
       
if ($_POST['password'] == $password)
       {
         
// Идентификация прошла успешно - осуществляем
         // "вход" посетителя. Для того, чтобы в течении текущей
         // сесси посетитель не вводил своё имя пароль повторно -
         // передаём их через сессию
 #          $_SESSION['user'] = $_POST['name'];
 #          $_SESSION['password'] = $_POST['password'];
           
$user $_POST['name'];
           
session_register("user");
           
// Осуществляем автоматический переход на
           // страницу index.php чтобы убедится, что
           // посетитель "вошёл"
           
Header("Location: men.php");
 
#       echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=men.php'></HEAD><body>";
         
       
}
       else
       {
         
#echo "Ошибка идентификации: неправильный пароль";
         
Header("Location: index.php");
         exit();
       }
    }
    
// Если в результате запроса не получено ни одной
    // строки - посетитель с таким именем не зарегистрирован
    
else
    {
     
# echo "Ошибка идентификации: посетитель не зарегистрирован";
     
Header("Location: index.php");
      exit();
    }
?>  


и обработчик

<?
session_start
();
if(isset(
$_POST['exit']))
    {
session_unset();
session_destroy();
Header("Location: ../index.php");
    }
?>
<HTML>
<HEAD>
<META http-equiv="Content-Language" content="ru">
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Title>WEB сервер УС БоГЭС</title>
</HEAD>
<body bgcolor="black" alink="Lime" link="lime" vlink="lime" text="Yellow">
<?
include("style.inc");
?>
<table bgcolor='#003366' border="1" width="15%">
  <tr>
    <td width="100%" bgcolor="#0000FF"><center>
    <font color="#FFFFFF">БоГЭС</font></center></td>
  </tr>
<?
    
include "knp/connect.php";
    
$ath=mysql_query("select id from avtoriz where login='".$HTTP_SESSION_VARS["user"]."'");
    
// Если запрос вернул результат - производим дальнейшую обработку
    
if(mysql_num_rows($ath) > 0)
        {
     
// Получаем id
    
$id mysql_result($ath0);
    switch (
$id)
    {
#####################################################################        
        
case "1": include_once "knp/user/admin.php"; break;
        case 
"2": include_once "knp/user/vitp.php"; break;
        
#default: include_once "index.php";
#####################################################################    
    
}
        }
    if(!isset(
$_POST['exit']))
    {
print
"<tr><td>";
print
"<form action='' method='POST'>
<input type='submit' name='exit' value='закончить работу'></td></tr>"
;
    }
?>
</table></form>
<?
$id 
$_GET['id'];
include_once 
"$id";
?>

   
 
 автор: cheops   (19.01.2005 в 13:02)   письмо автору
 
   для: Felix   (19.01.2005 в 12:58)
 

Я сейчас уезжаю, но вечером потестирую тщательно потестирую вашу форму и обработчик на локальной машине... скорее всего это ничего не даст, но по крайней мере мы исключим код (ну или найдём ошибку).

   
 
 автор: Felix   (19.01.2005 в 12:58)   письмо автору
 
   для: cheops   (19.01.2005 в 12:41)
 

Да именно с той формой и обработчиком которые выше.

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования