Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исправить ошибку 
:(
    Опции темы
len4ixa
Дата 28.11.2009, 19:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



PHP 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
 Как это поправить? На чужом хостинге

Добавлено через 3 минуты и 16 секунд
PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/www707/web/connect.php:23) in /var/www/www707/web/enter.php on line 19
[28-Nov-2009 21:55:21] PHP Warning:  session_register() [<a href='function.session-register'>function.session-register</a>]: Cannot send session cookie - headers already sent by (output started at /var/www/www707/web/connect.php:23) in /var/www/www707/web/enter.php on line 106
[28-Nov-2009 21:55:21] PHP Warning:  session_register() [<a href='function.session-register'>function.session-register</a>]: Cannot send session cache limiter - headers already sent (output started at /var/www/www707/web/connect.php:23) in /var/www/www707/web/enter.php on line 106
[28-Nov-2009 21:55:21] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/www707/web/connect.php:23) in /var/www/www707/web/enter.php on line 114
[28-Nov-2009 
И эти заодно. Оно вместе вылетает

Это сообщение отредактировал(а) len4ixa - 28.11.2009, 19:34
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
Pitlord
Дата 28.11.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Цитата(len4ixa @  28.11.2009,  19:32 Найти цитируемый пост)
PHP 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

В принципе, стараться не давать переменным те же имена, что и ключам массива $_SESSION. И отключить register_globals.
PM MAIL   Вверх
Ипатьев
Дата 28.11.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Эта ошибка появляется именно при выключенной register_globals smile

PM MAIL   Вверх
len4ixa
Дата 28.11.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



Цитата

register_globals

А включить ее как?

Добавлено @ 22:26
$_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER (в PHP версии от 4.1) или, соответственно, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS (в любых версиях PHP). 
Об этом речь? переменные переделать? Поищу насчет совпадений в названиях ключей и других переменных пока что.

Добавлено @ 22:30
А еще такая проблема, может быть из-за этого же. Есть страница регистрации, забыла, как там передаются данные из формы в компилятор, но в итоге страница загружается заново, а записи в бд значений, которые должны были записаться, не происходит. Наверное, оно для ранних версий было написано кодиво.

Добавлено через 10 минут и 46 секунд
Приведу примеры двух стр, может поможет чем... Там не только php файлы. 
Код

<?Error_Reporting(E_ALL & ~E_NOTICE);
include("connect.php"); // Коннектимся к БД

switch($act){
case"out":

session_start();
session_destroy();

Header("Location: index.php");

break;


default:

if(!ereg("[a-zA-Zа-яА-Я0-9_]$",$_POST[login]))Header("Location: index.php");
if(strlen($_POST[login]>15))Header("Location: index.php");
if(strlen($_POST[pass]>25))Header("Location: index.php");


$result = mysql_query("select id,login,pass,align from users where login ='$_POST[login]' and pass='$_POST[pass]'");
$num = mysql_num_rows($result);
$row = mysql_fetch_array($result);
if($num<1){

echo"<b>Произошла ошибка:</b> в доступе на персонажа \"$_POST[login]</b>\" отказано! 

<p>
Возможно вы ввели не верный логин или пароль, либо такого персонажа не существует! <br>Попробуйте повторить ввести данные с <A href=/>главной страницы</a><br>
* <b>или воспользуйтесь ";?><a href=index.php onclick="javascript:window.open('remind.php', 'remind', 'width=400, height=300');">системой смены пароля</a>. <?echo"</b>.
</p>
<hr size=1 color=#000000><table border=0 width=100%>
<tr><td align=right>&copy Мир Гладиаторов<br><A href=/>www.gladiators.ru</a>
</td></tr></table>
";

}
else
{


 $file = file("database/ban/list.dat");
 $num = count($file);

 for($i=0;$i<=$num-1;$i++){ 

   $row_ban = explode("|",$file[$i]);
   
   if($row_ban[0]==$row[login]){
   
      $num_banlist=1;
      $time=$row_ban[2];
      $why=$row_ban[1];
      $period=$row_ban[3];
    
   }

 }

if($num_banlist>0)
  echo"<b>Произошла ошибка:</b><p>персонаж \"".$row[login]."\" был отправлен в тюрьму ".$time."!\n<br>\nСообщение от сенаторов по этом поводу:<br>\n\"...<i>\n".$why."\n</i>...\"\n<br>Персонаж будет находиться в тюрме - $period.</p>\n<p>Если вы считаете, что это действие было незаконно, то напишите это <a href=#>на форуме</a> в разделе \"Жалобы\"<br>\nили на <a href='mailto:[email protected]'>[email protected]</a>.</p>\n<hr size=1 color=#000000><table border=0 width=100%>\n<tr><td align=right>&copy Мир Гладиаторов<br><A href=/>www.gladiators.ru</a>\n</td></tr></table>";
else
{

 $ip = $REMOTE_ADDR;

 $file = file("database/ban/ip.dat");
 $num = count($file);

 for($i=0;$i<=$num-1;$i++){ 

   $arr = explode("|",$file[$i]);
   
   if(strstr($arr[0], $ip)){

    $num_banip=1;

   }
}


if($num_banip>0){
echo"<b>Проиошла ошибка:</b> <p>Доступ с вашего ip заблокирован!<br>
Это могло произойти из-за систематических нарушений <a href=low.php target=_blank>законов Мира Гладиаторов</a> либо по другой причине...
<br>За помощью обращайтесь на <a href='mailto:[email protected]'>[email protected]</a>.</p>
<hr size=1 color=#000000><table border=0 width=100%>
<tr><td align=right>&copy Мир Гладиаторов<br><A href=/>www.gladiators.ru</a>
</td></tr></table>";


}
else
{

$time_ip = Date("d.m.Y H:i");
    $file = fopen("database/ip/ip.dat", "a+");
    flock($file,2);
    fwrite($file,"$row[login]|$ip|$time_ip|
");
    flock($file,3);
    fclose($file);



session_register('id','login', 'pass','align','room');
$id = $row[id];
$login = $row[login];
$pass = $row[pass];
$align = $row[align];
$room = "tranning";
session_set_cookie_params("0"); //Задаем время жизни куки

Header("Location: game.php?sid=$PHPSESSID");



}}}

break;
}

mysql_close($db);
?>

 Это та, в которой получаются эти ошибки.
А это регистрация:
Код

<?require("top.php");
Error_Reporting(E_ALL & ~E_NOTICE);
?>


<center>
<table border=0 width=90% height=90%>
<tr><td valign=top>
<br>

<p class=text><b><big>Регистрация</big></b></p>

<?
switch($act){
case"reg":

include("connect.php");
nl2br($hobby);

$country = htmlspecialchars($country);
$city = htmlspecialchars($city);
$icq = htmlspecialchars($icq);
$chat_color = htmlspecialchars($chat_color);
$day = htmlspecialchars($day);
$month = htmlspecialchars($month);
$year = htmlspecialchars($year);
$hobby = htmlspecialchars($hobby);
$ip = $REMOTE_ADDR;

$file = file("database/ban/ip.dat");
$num = count($file);

for($i=0;$i<=$num-1;$i++){ 
  $arr = explode("|",$file[$i]);
  if(strstr($arr[0],$ip))$num_ip=1;
}

if(!$_POST[name] || !$_POST[login] || !$_POST[pass] || !$_POST[repass] || !$_POST[email] || !$_POST[day] || !$_POST[month] || !$_POST[year]  || !$_POST[country])
$error="Незаполнены поля необходимые для регистрации";
elseif($num_ip>0)
$error="Регистрация с этого ip заблокирована";
elseif(strlen($_POST[pass])<6)
$error="Пароль должен быть не менее 8 символов";
elseif(strlen($_POST[pass])>25)
$error="Пароль должен быть не более 25 символов";
elseif(strlen($_POST[login])<3)
$error="Логин не может быть меньше 3-х символов";
elseif(strlen($_POST[login])>13)
$error="Логин не может быть более 13 символов";
elseif($_POST[pass] != $_POST[repass])
$error="Второй пароль несовпадает с первым";
elseif (!ereg("[a-zA-Zа-яА-Я0-9_]$",$_POST[login])) 
$error="Логин может состоять только из букв русского и английского алфавита, а также из цифр и символа _";
elseif (!ereg("[a-zA-Zа-яА-Я]{4,15}$",$_POST[name]))
$error="Имя может состоять только из букв русского и английского алфавита";
elseif (!ereg("^[a-zA-Zа-яА-Я]{2,10}$",$_POST[chat_color]))
$error="Неправильный формат цвета в чате! Попробуйте выбрать заново";
elseif(preg_match("/(.)\\1\\1/",$_POST[login]))
$error="В логине не могут присутствовать подряд более 3-х одинаковых символов";
elseif ((!ereg("^[a-zA-Z0-9_\.-]+@([a-z0-9][a-z0-9-]+\.)+[a-z]{2,4}$", $_POST[email])) && (trim($_POST[email]) != ''))
$error="Неверный адрес e-mail";
elseif(!checkdate($month, $day, $year))
$error="Неверная дата рождения";
elseif(mysql_num_rows(mysql_query("select login from users where login='".$_POST[login]."'"))>0)
$error="Такой логин уже существует";
elseif($low!="on")
$error="Чтобы продолжить регистрацию, вам необходимо принять <a href=low.php target=_blank class=text>законы Мира Гладиаторов</a>,<br> для этого прочтите их и поставьте галочку напротив \"Я принимаю законы Мира Гладиаторов\"";
else
{
session_start();

$time = time();
$date = Date("d.m.Y-H:i");
$ip = $REMOTE_ADDR;
$time_ip = Date("d.m.Y H:i");
$birthday = $_POST[year]."-".$_POST[month]."-".$_POST[day];

mysql_query("insert into users(name,login,pass,sex,country,city,email,birthday,date,chat_color,icq,last_update_uron) values('$_POST[name]', '$_POST[login]', '$_POST[pass]', '$sex', '$_POST[country]', '$_POST[city]', '$_POST[email]', '$birthday', '".Date("Y-m-d H:i:s")."', '$_POST[chat_color]', '$_POST[icq]', '".time()."')");


$file = fopen("database/ip/ip.dat", "a+");
flock($file,2);
fwrite($file,$_POST[login]."|".$ip."|".$time_ip."|
");
flock($file,3);
fclose($file);

session_register('id','login', 'pass','align');
$row_id = mysql_fetch_array(mysql_query("select id from users where login='".$_POST[login]."'"));
$id=$row_id[id];
$login = $_POST[login];
$pass = $_POST[pass];
$align="";
session_set_cookie_params("0"); //Задаем время жизни куки

echo"<script language=JavaScript>window.location.href='game.php?sid=$PHPSESSID';</script>";

exit();
}
break;
}

if($error)echo"<center><div class=text><b><u>".$error."</u></b></div></center>";

?>


<br><center>

<form action='reg.php' method=post>
<input type=hidden name=act value=reg>

<table border=0 cellspacing=1 bgcolor=#000000 cellpadding=3>
<tr><td class=text bgcolor=#101010><b>Логин:</b></td><td class=text bgcolor=#101010 colspan=3><input type=text name=login maxlength=15 style="width: 110px;" value='<?echo"$login";?>' maxlength=20></td></tr>
<tr><td colspan=4 class=text><i>Логин - Ваше имя в игре. Должно состоять из русских или английских букв, знака _</i></td></tr>
<tr><td class=text bgcolor=#101010 ><b>Пароль:</b></td><td  bgcolor=#101010 class=text> <input type=password name=pass style="width: 110px;" maxlength=30></td><td  bgcolor=#101010 class=text><b>Повторите пароль:</b></td><td  bgcolor=#101010 class=text><input type=password name=repass style="width: 110px;"></td></tr>
<tr><td colspan=4 class=text><i>Пароль не может быть меньше 6 символов и должен состоять из русских и английских букв</i></td></tr>
<tr><td class=text bgcolor=#101010 ><b>E-mail:</b></td><td  bgcolor=#101010 class=text colspan=3><input type=text name=email style="width: 130px;" value='<?if($email)echo $email;else echo"@";?>'></td></tr>
<tr><td colspan=4 class=text><i>Вы должны указать ваш действительный email, т.к. он используется в игровом процессе.</i></td></tr>


<tr><td colspan=4 height=50 class=text ><li class=text><b>Дополнительная информация</b>(обязательна для заполнения):</td></tr>
<tr><td class=text bgcolor=#101010 ><b>Ваше имя:</b></td><td class=text  bgcolor=#101010 colspan=3><input type=text name=name value="<?echo"$name";?>" style="width: 140px;"> мин. 4 буквы</td></tr>
<tr><td class=text bgcolor=#101010 ><b>Пол:</b></td><td class=text  bgcolor=#101010 colspan=3><select name="sex" style="font-size:11px"><option value="Мужской" >Мужской</option><option value="Женский" >Женский</option></select></td></tr>
<tr><td class=text bgcolor=#101010 ><b>День рождения:</b></td><td  bgcolor=#101010 class=text colspan=3>

<select name=day>
<option value=''>--
<option value='1'>1
<option value='2'>2
<option value='3'>3
<option value='4'>4
<option value='5'>5
<option value='6'>6
<option value='7'>7
<option value='8'>8
<option value='9'>9
<option value='10'>10
<option value='11'>11
<option value='12'>12
<option value='13'>13
<option value='14'>14
<option value='15'>15
<option value='16'>16
<option value='17'>17
<option value='18'>18
<option value='19'>19
<option value='20'>20
<option value='21'>21
<option value='22'>22
<option value='23'>23
<option value='24'>24
<option value='25'>25
<option value='26'>26
<option value='27'>27
<option value='28'>28
<option value='29'>29
<option value='30'>30
<option value='31'>31
</select>

<select name=month>
<option value=''>-----
<option value='1'>январь
<option value='2'>февраль
<option value='3'>март
<option value='4'>апрель
<option value='5'>май
<option value='6'>июнь
<option value='7'>июль
<option value='8'>август
<option value='9'>сентябрь
<option value='10'>октябрь
<option value='11'>ноябрь
<option value='12'>декабрь
</select>




<select name=year>
<option value=''>---
<option value='1930'>1930
<option value='1931'>1931
<option value='1932'>1932
<option value='1933'>1933
<option value='1934'>1934
<option value='1935'>1935
<option value='1936'>1936
<option value='1937'>1937
<option value='1938'>1938
<option value='1939'>1939
<option value='1940'>1940
<option value='1941'>1941
<option value='1942'>1942
<option value='1943'>1943
<option value='1944'>1944
<option value='1945'>1945
<option value='1946'>1946
<option value='1947'>1947
<option value='1948'>1948
<option value='1949'>1949
<option value='1950'>1950
<option value='1951'>1951
<option value='1952'>1952
<option value='1953'>1953
<option value='1954'>1954
<option value='1955'>1955
<option value='1956'>1956
<option value='1957'>1957
<option value='1958'>1958
<option value='1959'>1959
<option value='1960'>1960
<option value='1961'>1961
<option value='1962'>1962
<option value='1963'>1963
<option value='1964'>1964
<option value='1965'>1965
<option value='1966'>1966
<option value='1967'>1967
<option value='1968'>1968
<option value='1969'>1969
<option value='1970'>1970
<option value='1971'>1971
<option value='1972'>1972
<option value='1973'>1973
<option value='1974'>1974
<option value='1975'>1975
<option value='1976'>1976
<option value='1977'>1977
<option value='1978'>1978
<option value='1979'>1979
<option value='1980'>1980
<option value='1981'>1981
<option value='1982'>1982
<option value='1983'>1983
<option value='1984'>1984
<option value='1985'>1985
<option value='1986'>1986
<option value='1987'>1987
<option value='1988'>1988
<option value='1989'>1989
<option value='1990'>1990
<option value='1991'>1991
<option value='1992'>1992
<option value='1993'>1993
<option value='1994'>1994
<option value='1995'>1995
<option value='1996'>1996
<option value='1997'>1997
<option value='1998'>1998
<option value='1999'>1999
<option value='2000'>2000
</select>
</td></tr>
<tr><td class=text bgcolor=#101010 ><b>Страна:</b></td><td class=text bgcolor=#101010 > 
<select name="country"> 
<option value="Австралия">Австралия
<option value="Австрия">Австрия
<option value="Азербайджан">Азербайджан
<option value="Аргентина">Аргентина
<option value="Армения">Армения
<option value="Беларусь">Беларусь
<option value="Бельгия">Бельгия
<option value="Болгария">Болгария
<option value="Боливия">Боливия
<option value="Бразилия">Бразилия
<option value="Великобритания">Великобритания
<option value="Венгрия">Венгрия
<option value="Венесуэла">Венесуэла
<option value="Германия">Германия
<option value="Голландия">Голландия
<option value="Греция">Греция
<option value="Грузия">Грузия
<option value="Дания">Дания
<option value="Израиль">Израиль
<option value="Индия">Индия
<option value="Испания">Испания
<option value="Италия">Италия
<option value="Казахстан">Казахстан
<option value="Канада">Канада
<option value="Киргизстан">Киргизстан
<option value="Китай">Китай
<option value="Латвия">Латвия
<option value="Литва">Литва
<option value="Люксембург">Люксембург
<option value="Молдова">Молдова
<option value="Новая Зеландия">Новая Зеландия
<option value="Норвегия">Норвегия
<option value="Парагвай">Парагвай
<option value="Перу">Перу
<option value="Польша">Польша
<option value="Россия" selected>Россия
<option value="Румыния">Румыния
<option value="Словакия">Словакия
<option value="США">США
<option value="Таджикистан">Таджикистан
<option value="Тайланд">Тайланд
<option value="Турция">Турция
<option value="Туркмения">Туркмения
<option value="Узбекистан">Узбекистан
<option value="Украина">Украина
<option value="Уругвай">Уругвай
<option value="Финляндия">Финляндия
<option value="Франция">Франция
<option value="Хорватия">Хорватия
<option value="Чехия">Чехия
<option value="Швейцария">Швейцария
<option value="Швеция">Швеция
<option value="Эквадор">Эквадор
<option value="Эстония">Эстония
<option value="ЮАР">ЮАР
<option value="Югославия">Югославия
<option value="Япония">Япония
</select>
</td><td class=text  bgcolor=#101010 align=right><b>Город:</b></td><td  bgcolor=#101010 class=text><input type=text name=city style="width: 130px;" value='<?echo"$city";?>'></td></tr>
<tr><td class=text bgcolor=#101010 ><b>Цвет в чате:</b></td><td  bgcolor=#101010 class=text colspan=3>
<SELECT name=chat_color> 
<OPTION style="COLOR: black" value="Black">Черный
<OPTION style="COLOR: blue"  value="Blue">Синий
<OPTION style="COLOR: fuchsia" value="Fuchsia">Розовый
<OPTION style="COLOR: gray" value="Gray">Серый
<OPTION style="COLOR: green" value="Green">Зеленый
<OPTION style="COLOR: maroon" value="Maroon">Темнокрасный
<OPTION style="COLOR: navy" value="Navy">Темносиний
<OPTION style="COLOR: olive" value="Olive">Оливковый
<OPTION style="COLOR: purple" value="Purple">Фиолетовый
<OPTION style="COLOR: teal" value="Teal">Морской волны
<OPTION style="COLOR: chocolate" value="Chocolate">Шоколадный
</OPTION></SELECT>
</td></tr>
<tr><td class=text bgcolor=#101010 ><b>ICQ:</b></td><td  bgcolor=#101010 class=text colspan=3><input type=text name=icq value='<?echo"$icq";?>'></td></tr>
<tr><td colspan=4 height=50 class=text valign=bottom><input type=checkbox name=low> Я принимаю <A href=law.php target=_blank class=text>законы Мира Гладиаторов</a></td></tr>
<tr><td colspan=4 height=50 class=text valign=bottom><input type=submit value=Регистрировать style="width: 200px;"></td></tr>

</table>

</td></tr></table>

<?



require("bottom.php");
?>





Это сообщение отредактировал(а) len4ixa - 28.11.2009, 22:31
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
Pitlord
Дата 28.11.2009, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Цитата(len4ixa @  28.11.2009,  22:23 Найти цитируемый пост)
А включить ее как?

Не надо включать.

Отключи директивы session.bug_compat_42 и session.bug_compat_warn (.htaccess):
Код

php_flag "session.bug_compat_42" 0
php_flag "session.bug_compat_warn" 0


Добавлено через 4 минуты и 31 секунду
Ууу. Твой код работать без register_globals вообще не будет. Переписывать его надо.
PM MAIL   Вверх
Ипатьев
Дата 28.11.2009, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



директивы не надо включать smile
Достаточно не использовать session_register
PM MAIL   Вверх
Pitlord
Дата 28.11.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



session_register() — DEPRECATED, не надо использовать.

Добавлено @ 22:46
Цитата(Ипатьев @  28.11.2009,  22:43 Найти цитируемый пост)
Достаточно не использовать session_register 

Недостаточно. Такая ошибка и при обычном session_start() и $_SESSION возникает

Это сообщение отредактировал(а) Pitlord - 28.11.2009, 22:46
PM MAIL   Вверх
Ипатьев
Дата 28.11.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Возникает, но при очень редком сочетании обстоятельств. И в данном случае это прямое следствие session_register + register_globals
Возникающие ошибки кагбе говорят нам, "вы наивно думаете, что все изменения зарегистрированной в сессии переменной будут автоматически заноситься в сессию даже при регистер глобалс офф, но  вы обломаетесь! Это была наша ошибка, что даже при отключенных глобалсах сессии продолжали вести себя как при велюченных. Поэтому начиная с версии  4.2.3 мы это дело отключили. Но потом спохватились, и нафигачили аж два предупреждения в пхпюини, чтобы вам скучно не было". 
Следовательно, с переходом на $_SESSION ошибка исчезнет. 
И уж всяко с ней надо бороться не отключением директив.

Это сообщение отредактировал(а) Ипатьев - 28.11.2009, 23:04
PM MAIL   Вверх
Pitlord
Дата 28.11.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Цитата(Ипатьев @  28.11.2009,  23:01 Найти цитируемый пост)
И уж всяко с ней надо бороться не отключением директив. 

Это борьба с warning'ом, который возникает и при нормальном коде.

Добавлено через 1 минуту и 16 секунд
Лично у меня такая ошибка возникала именно при использовании имён переменных, совпадающих с ключами массива $_SESSION
PM MAIL   Вверх
Ипатьев
Дата 28.11.2009, 23:33 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



при нормальном коде warning'ов не бывает! smile
это по определению сигнал о плохом коде. 
покажите мне код, в котором оно возникает, и я укажу на ошибку.
PM MAIL   Вверх
Pitlord
Дата 29.11.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Ипатьев, ты очень самоуверенный человек.

Код

<?php

session_start();

$_SESSION['var'] = NULL;
$var = isset($_GET['v']) ? $_GET['v'] : NULL;

#session_destroy();

?>


Настройки:
Цитата
php_flag "register_globals" 0
php_flag "display_errors" 1
php_flag "session.bug_compat_42" 1
php_flag "session.bug_compat_warn" 1


Сделай так:
1. Запусти скрипт. Сессия стартует, в $_SESSION['var'] NULL будет.
2. Запусти скрипт с GET-параметром $_GET['v']: test.php?v=123

Получаем:
Цитата
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 


Вопрос тебе: в чём ошибка с моей стороны?
PM MAIL   Вверх
Ипатьев
Дата 29.11.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



в том, что в $_SESSION['var'] пишется NULL smile
была бы там нормальная пустая строка, и ошибки бы не было smile
PM MAIL   Вверх
Pitlord
Дата 29.11.2009, 00:23 (ссылка)   | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Цитата(Ипатьев @  29.11.2009,  00:17 Найти цитируемый пост)
в том, что в $_SESSION['var'] пишется NULL smile
была бы там нормальная пустая строка, и ошибки бы не было smile 

То есть записывать в $_SESSION NULL запрещено? Лови минус. Ты не умеешь отвечать за свои слова и признавать свои ошибки.

Это сообщение отредактировал(а) Pitlord - 29.11.2009, 04:33
PM MAIL   Вверх
len4ixa
Дата 29.11.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



Все-таки как код переписать?=)
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
Pitlord
Дата 29.11.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: 4
Всего: 7



Цитата(len4ixa @  29.11.2009,  17:12 Найти цитируемый пост)
Все-таки как код переписать?=) 

a) Не использовать устаревшие функции (ereg, session_register), желательно вместо mysql_fetch_array() использовать mysql_fetch_assoc()
b) Убрать зависимость от register_globals
c) Правильно обрабатывать SQL-запросы и все поступающие данные (экранирование перед вставкой в запрос, htmlspecialchars там где нужно), 
d) Не использовать файлы в качестве хранилищ данных
e) Исправить ошибки, влекующие notice'ы
f) Желательно вынести HTML-код в шаблоны

Переписывай)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0607 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.