Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:00 28.09.24 
Компютри и Интернет
   >> PHP
Всички теми Следваща тема *Кратък преглед

Тема 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");
}

Ако някой види къде съм се 'увъртял', ще му бъда много благодарен да ме насочи/светне.
Благодаря предварително.



Тема Re: session_register() и register_globalsнови [re: Eмo]  
Авторvido (Нерегистриран)
Публикувано31.01.07 13:40



ползвай $_GET['Page'] вместо $Page



Тема Re: session_register() и register_globalsнови [re: Eмo]  
Автор Blake (член)
Публикувано31.01.07 15:51



session_register() е малко излишно, работи направо със $_SESSION['variable_name']='bla-bla';

колкото до грешката дето ти я дава на тема сесии - сесията трябва да се стартира преди изпращане на HTTP хедърите, т.е. преди да имаш какъвто и да е аутпут към браузъра (ХТМЛ)



Тема Re: session_register() и register_globalsнови [re: Blake]  
АвторEмo (Нерегистриран)
Публикувано31.01.07 16:55



Мерсаж за съветите. session_register() е в main.php преди 'всичко', нещо подобно е:
<?php
session_start();

include . . . .


session_destroy();
?>



Тема Re: session_register() и register_globalsнови [re: vido]  
АвторEмo (Нерегистриран)
Публикувано31.01.07 17:04



Мерси за съвета, така и ще направя, аз съм с PHP 5 (5.1.2), а пък ето хората какво са написали:

Warning
In PHP 4.2.0 and later, the default value for the PHP directive register_globals is off. This is a major change in PHP. Having register_globals off affects the set of predefined variables available in the global scope. For example, to get DOCUMENT_ROOT you'll use $_SERVER['DOCUMENT_ROOT'] instead of $DOCUMENT_ROOT, or $_GET['id'] from the URL http://www.example.com/test.php?id=3 instead of $id, or $_ENV['HOME'] instead of $HOME.

For related information on this change, read the configuration entry for register_globals, the security chapter on Using Register Globals , as well as the PHP 4.1.0 and 4.2.0 Release Announcements.

Using the available PHP Reserved Predefined Variables, like the superglobal arrays, is preferred.

Ама който чете стари книжки кат' мен е така.



Тема Олелелелелелелелеленови [re: Eмo]  
Автор ro6aviaМодератор (усер френдли)
Публикувано02.02.07 14:21



session_start();

include . . . .


session_destroy();

За какво ти е тогава сесията ?
Това дето си го направил е голяяяяяяяяма боза. Създаваш сесия в рамките на 1 скрипт и после я унищожаваш. Сесиите имат съвсем друго предназначение наречено условно "Запазване на състоянието"

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy


Тема Re: Олелелелелелелелеленови [re: ro6avia]  
АвторEмo (Нерегистриран)
Публикувано02.02.07 17:36



Не ми се смей, сигурно изглежда тъпня, ама толкоз мога. Идеята е следната имам един main.php, който зрежда темплиитите на страниците и подменя някакви маркер-етикети с някакво съдържание.

Тази постановка (session_start() . . . . . session_destroy() в main.php) е дадена като примерен работещ код в една книга, чрез която се опитвам да науча нещо, ама явно съм поел в грешната посока.
Ще почета този уикенд и си запазвам правото за смислен въпрос след това.

Успех.




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.