Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 26 Май, 2012, 04:27:25

Страниц: [1]
Печать
Автор Тема: Помогите разобраться в коде сессии  (Прочитано 357 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Александр2010    ↓ 
03 Сентябрь, 2010, 10:16:38
НЕ ХУЕТА! ХУЕТА!

Карма: -2
Сообщений: 103
Сила слова: -1.94

Уважаемые жители пыхи. Помогите пожалуйста разобраться в коде сессии. Существует три кода первый это форма отправки данных второй обработчик и третии на странице на которую непосредственно нужно попасть. На денвере все работает просто велликолепно но загрузив на выделенный сервер все не так как хотелось бы.
 
первый код форма отправки данных на обработчик
PHP
<?
if (isset($_GET['lang'])) { $lang = $_GET['lang'];}
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
<?
if (isset($lang))
{
    echo "Entrance to the casino";
}
else
{
echo "Вход в казино";
}
?>
</title>
<link href="css/staly.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<table width="1024" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td><img src="img/1.gif" width="13" height="13" /></td>
    <td class="bordertop"></td>
    <td><img src="img/2.gif" width="13" height="13" /></td>
  </tr>
  <tr>
    <td class="borderleft">&nbsp;</td>
    <td>
    <table width="1024"  border="0"  height="100%" cellpadding="0" cellspacing="0" align="center">
<tr></tr>
<? include("blocks/header.php");?>
<tr>
  <td height="306" valign="top" bgcolor="#FFFFFF"><table width="100%" height="100%" border="0"  cellpadding="0" cellspacing="0" class="menu">
    <tr>
     
      <td width="774" align="center" valign="middle" bgcolor="#FFFFFF"><table width="50%" height="70" border="0">
        <tr>
          <td class="
          <?
if (isset($lang))
{
    echo "
vxodcaz2";
}
else
{
echo "
vxodcaz";
}
?>
         
         
          "
>&nbsp;</td>
        </tr>
      </table>
      <br />
      <FORM name="form" action="login_proc.php" method="post">
      <TABLE width="50%" border=0 cellPadding=5 cellSpacing=0 class="dengi">
        <TBODY>
        <TR>
          <TD width="54%" height="88" align=center><B class="texttttt">
           <?
if (isset($lang))
{
    echo "Login:";
}
else
{
echo "Логин:";
}
?>
         
         
          </B></TD>
          <TD width="46%"><INPUT maxLength="16" size="17" id="log" name="log" style=" border: 1px solid rgb(0,0,0)"></TD></TR>
        <TR>
          <TD height="79" align=center><B class="texttttt">
           <?
if (isset($lang))
{
    echo "Password:";
}
else
{
echo "Пароль:";
}
?>
         
         
          </B></TD>
          <TD><INPUT type="password" maxLength="16" size="17" id="psw" name="psw" style=" border: 1px solid rgb(0,0,0)"></TD></TR>
        <TR>
          <TD height="76" colspan="2" align="center"><INPUT type="hidden" value="1" name="send"><INPUT  name="submit" type="submit" class="
          <?
          if (isset($lang))
          {
              echo "
button4";
          }
          else
          {
          echo "
button";
          }
          ?>
          "
value=""></TD>
          </TR>
        <TR>
          <TD height="54">&nbsp;</TD>
          <TD></TD></TR></TBODY></TABLE>
      <br />
      </FORM>
     
     
      </td>
    </tr>
  </table></td>
</tr>
<? include("blocks/footer.php");?>
</table></td>
    <td class="borderrigt">&nbsp;</td>
  </tr>
  <tr>
    <td><img src="img/4.gif" width="13" height="13" /></td>
    <td class="borderbot"></td>
    <td><img src="img/3.gif" width="13" height="13" /></td>
  </tr>
</table>
</body>
</html>

Второй код обработчика с редиректом на нужную страницу
PHP
<?
if (isset($_POST['log'])) { $log = $_POST['log'];}
 if (isset($_POST['psw'])) { $psw = $_POST['psw']}
 

 
session_start();
 
foreach ($_POST as $var => $value)
{
if ($var=="amp;log"){$log=$value;}
if ($var=="amp;psw"){$psw=$value;}
}
$log = htmlentities($log);
$psw = htmlentities($psw);
$psw    = md5($psw);//шифруем пароль
            $psw    = strrev($psw);// для надежности добавим реверс
            $psw    = $psw."b3hg4sp6f";
if(isset($submit) )
{
include ("setup.php");
$log2=$log;
$result=mysql_query("select * from users where login='$log2'");
$row=mysql_fetch_array($result);
$base_login=$row[1];
$base_psw=$row[2];
if($log==$base_login && $psw==$base_psw && $log<>"")
{
$HTTP_SESSION_VARS['l']=$base_login;
Header("Location: lobby/index.php");
exit;
}
else
{
Header("Location: ../index.php");
exit;
}
}
?>

И третий код который расположен на странице на которую мы ломимся
PHP
<?
if (isset($_GET['lang'])) { $lang = $_GET['lang'];}
Error_Reporting(E_ALL & ~E_NOTICE);
unset($l);
session_start();
session_register($l);
if(!isset($l)){
header("Location: login.php");
exit;
}
if ($st == "exit"){
unset($l);
session_destroy();
echo "<script language=\"JavaScript\">location.href=\"../index.php\";</script>";
}
include ("../setup.php");
 

$row=mysql_fetch_array(mysql_query("select * from users where login='$l'"));
$conf=mysql_fetch_array(mysql_query("select * from seting"));
 
?>

На сервере этот код приводит к постоянному редиректу тоесть неоткрывается сессия на денвере все работает велликолепно.
Но если убрать редирект из третьего кода то тогда страница вобще перестает быть закрытой от всех остальных пользователей.
Прошу вас сердечно помоч разобраться.
Записан
md5    ↓ 
03 Сентябрь, 2010, 11:21:06 , спустя 1 час 4 минуты 28 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

а на выделенном сервере какая-то ошибка вылетает?
в самом начале скрипта
PHP
error_reporting(E_ALL);
ini_set('display_errors', 1);
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
Александр2010    ↓ 
03 Сентябрь, 2010, 11:24:25 , спустя 3 минуты 19 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -2
Сообщений: 103
Сила слова: -1.94

Нет обсалютно никакой ошибки невылетает просто выкидывает постоянно на страницу login.php и все. Сессия неоткрывается походу.
Записан
Sinkler    ↓ 
03 Сентябрь, 2010, 03:09:34 , спустя 3 часа 45 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6811
Сила слова: 1.07

как-то всё через зад сделано...
 
почему бы просто если логин удался писать
 
PHP
$_SESSION['id'] = $log;

а в странице, на которую ломимся
 
PHP

if (isset($_SESSION['id'])) {
    echo 'Доступ открыт';
} else {
    die('Доступ закрыт.');//ну или редирект
}
 
Спустя 2 минуты 39 секунд добавил
4.1.0   Introduced $_SESSION that deprecated $HTTP_SESSION_VARS.
Спустя 35 секунд добавил
Александр2010, где ты находишь эти скрипты для пхп4?))))))))))))))
Записан

Stasovsky    ↓ 
03 Сентябрь, 2010, 03:18:34 , спустя 9 минут
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

мб из-за этого
unset($l);
session_start();
session_register($l);
if(!isset($l)){
header("Location: login.php");
exit;
}
ты сначала сбросил $l, потом стартуешь сессию, потом регистрируешь пустую $l, а потом проверяешь, если нет $l (а ты ее сбросил), то перейти на login.php))
если я все правильно понимаю))
Записан
Александр2010    ↓ 
03 Сентябрь, 2010, 03:25:25 , спустя 6 минут 51 секунду
НЕ ХУЕТА! ХУЕТА!

Карма: -2
Сообщений: 103
Сила слова: -1.94

Вот в том то и дело что я вобще непонимаю откуда взялась эта переменная а если этот редирект убираешь то ничего не работает. вся проблема в том что такой код не на одной странице а на целых 600 поэтому  может какнибуть возможно подогнать код обработчика чтобы он хотябы работал ?? тоесть он и так работает но только на денвере
Записан
Stasovsky    ↓ 
03 Сентябрь, 2010, 03:30:22 , спустя 4 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

просто в последнем блоке совсем пиздец)) два раза сбрасываете $l, а потом по ней что-то ищите в бд))
Записан
Александр2010    ↓ 
03 Сентябрь, 2010, 03:32:25 , спустя 2 минуты 3 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: -2
Сообщений: 103
Сила слова: -1.94

Я понимаю что это полная ж но другого нет пока что ((
я даже готов заплатить за то чтобы мне помогли подогнать скрипт обработчика так чтобы мне непришлось менять код во всех 600 та страницах (
Записан
Stasovsky    ↓ 
03 Сентябрь, 2010, 03:39:04 , спустя 6 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

а в чем проблема изменить одинаковые строки в 600 файлах?
Записан
Александр2010    ↓ 
03 Сентябрь, 2010, 03:45:31 , спустя 6 минут 27 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -2
Сообщений: 103
Сила слова: -1.94

Так меня интересует теперь другой вопрос вот этот код написан на php 4 ?
PHP
<?
if (isset($_POST['log'])) { $log = $_POST['log'];}
 if (isset($_POST['psw'])) { $psw = $_POST['psw']}
 
 
 
session_start();
 
foreach ($_POST as $var => $value)
{
if ($var=="amp;log"){$log=$value;}
if ($var=="amp;psw"){$psw=$value;}
}
$log = htmlentities($log);
$psw = htmlentities($psw);
$psw    = md5($psw);//шифруем пароль
            $psw    = strrev($psw);// для надежности добавим реверс
            $psw    = $psw."b3hg4sp6f";
if(isset($submit) )
{
include ("setup.php");
$log2=$log;
$result=mysql_query("select * from users where login='$log2'");
$row=mysql_fetch_array($result);
$base_login=$row[1];
$base_psw=$row[2];
if($log==$base_login && $psw==$base_psw && $log<>"")
{
$HTTP_SESSION_VARS['l']=$base_login;
Header("Location: lobby/index.php");
exit;
}
else
{
Header("Location: ../index.php");
exit;
}
}
?>

Тоесть без потдержки Php4 на сервере он работать не будет ? У меня на сервере стоит потдержка Php 5
Записан
Sinkler    ↓ 
03 Сентябрь, 2010, 04:30:54 , спустя 45 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6811
Сила слова: 1.07

Так меня интересует теперь другой вопрос вот этот код написан на php 4 ?
судя по
$HTTP_SESSION_VARS
- да
Тоесть без потдержки Php4 на сервере он работать не будет ?
хуй его знает, как эта херь работала, и как сейчас работает. я не такой старый, что застал те времена, когда не было $_SESSION)))))))))
Записан

Troy    ↓ 
03 Сентябрь, 2010, 05:23:09 , спустя 52 минуты 15 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 45
Сообщений: 2393
Сила слова: 1.88

Будет работать на РНР5 если включить register_long_arrays = Off , или изменить на $_SESSION
Записан

Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: mario