|
Тема |
session_register() и register_globals |
|
Автор | Eмo (Нерегистриран) | |
Публикувано | 31.01.07 12:15 |
|
|
Кротко си чета и образовам, пускам по някой пример, едни тръгват, други не ()като в живота). Заиграх се от няколко дни с един пример от 'динамични уеб форми' на Дан Рансъм (примера е с форма за регистрация) и ми направи впечатление, че в момента в който променя
register_globals на Off
и престава да бачка
http://127.0.0.1/alabala/main.php?Page=somepage
държи се така сякаш
$Page e empty, защото за 'секи случай му написах:
if (empty($Page))
{
$Page = "home";
}
От друга страна в php.ini пише че е най-добре register_globals да е Off от гледна точка на сигурността (You should do your best to write your scripts so that they do not require register_globals to be on . . . ).
Та да попитам, тез дет' му разбират, как мога да направя така, щото 'ем:
register_globals=Off, 'ем http://127.0.0.1/alabala/main.php?Page=somepage да отваря 'somepage'.
За session_register също четох, но резултата е
Warning: session_register() [function.session-register]: Cannot send session cookie - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_connect.php:7) in C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_validate.php on line 244
Warning: session_register() [function.session-register]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_connect.php:7) in C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_validate.php on line 244
Notice: Undefined variable: strWarningOutput in C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_validate.php on line 245
Notice: Undefined variable: strWarningOutput in C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_validate.php on line 246
това което го генерира е метода m_Alert() на класа o_Validate:
function m_Alert($strDelim)
{
$strWarningOut = "";
while (list($intWanVal, $strWarnText) = each($this->p_arrWarnings))
{
$strWarningOutput = $strWarningOututput . $strWarnText . $strDelim . "\r\n";
}
session_register("sessErrors");
$GLOBALS["sessErrors"] = $strWarningOutput;
return $strWarningOutput;
}
и накрая:
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\global\i_connect.php:7) in C:\Program Files\Apache Group\Apache2\htdocs\MembershipForms\a_login.php on line 40
което идва вероятно от следните редове на а_login.php:
if (mysql_num_rows($objResult) != 1)
{
$GLOBALS["sessMemberID"] = $strBadMatch;
header("Location: main.php?Page=login");
}
else
{
session_register("sessMemberID");
$GLOBALS["sessMemberID"] = mysql_result($objResult, "memberID");
}
Ако някой види къде съм се 'увъртял', ще му бъда много благодарен да ме насочи/светне.
Благодаря предварително.
|
| |
|
|
|