Тема
|
Problem sys sesiite
|
|
Автор |
iNT19 () |
Публикувано | 09.10.02 03:31 |
|
Opitvam se da napravia login script kato izpolzvam sesii no imam niakolko problema ot koito osnovnia moje bi e 4e niamam predstava kakvo stoi zad poniatieto sesii eto nakratko do kade sym stignal:
sled kato proveria v bazada danni dali systestvuva potrebitelia sys saotvetnata mu parola se "opitvam" da startiran/inizializiram/ sesiata po tozi na4in:
if(!session_start()){
echo "Грешка при създаването на сесията!";
}else
{
session_register("$username");
$username=$user; //tova e potrebitelskoto ime koeto iskam da imam kato globalna promenliva
?>
<a href="logout.php">logout</a>
<?
}
eto i "logout.php"
<?
session_start(); //tova ne sym siguren dali triabva da go ima no bez nego mi dava slednoto saobstenie: "Warning: Trying to destroy uninitialized session in C:\apache\htdocs\logout.php on line 10" kato line 10 mi e if (!session_destroy()){
if (!isset($username)){
echo "Няма регистрирани глобални променливи ";
}else
{
echo $username." ";
}
if (!session_destroy()){
echo "Грешка при изтриването на сессията!";
}
else
{
echo "Сессията е изтрита успешно";
}
?>
smiatam 4e promenlivata $username triabva da sadyrja stoinostta na potrebitelskoto ime ot predishnia script zastoto v php_manual-a e napisano 4e session_register() pravi promenlivite globalni za sesiata... No tova ne se polu4ava pri men .
Iavno ne razbiram samata koncepcia, ste sym mnogo blagodaren ako niakoi mi obiasni zastoto s 4eteneto na manuala iavno ne se polu4i  
|
|
Тема
|
Re: Problem sys sesiite
[re: iNT19]
|
|
Автор |
voyager (бастун) |
Публикувано | 09.10.02 09:17 |
|
Sesiite se startirat predi da izprati6 kakvoto i da e kym browsera. Ne mi stana qsno ti koga go pravi6. Osven tova ne mi stana qsno kakvo to4no ne se polu4ava. Tyi 4e davai info s kofi ;) Pyk i neka po-svetnatite da se sybudqt, ttoagava nqkoi 6te ti kaje
It`s more fun to compute
|
|
Тема
|
Re: Problem sys sesiite
[re: iNT19]
|
|
Автор |
Dakota (гол на деня) |
Публикувано | 09.10.02 09:53 |
|
В началото на всеки файл викаш session_start() (освен ако нямаш session_auto_start в php.ini)...след това вътре си инициализираш каквито ти душа поиска променливи посредством session_register() или ги премахваш със session_unregister()...може да се използва и алтернативен синтаксис с масива $_SESSION.
Накрая в logout скрипта праскаш едно session_destroy().
"Да живееш - значи да се променяш." - Анатол Франс
|
|
Тема
|
Eto i malko scriptove
[re: Dakota]
|
|
Автор |
iNT19 () |
Публикувано | 09.10.02 20:30 |
|
"test.php":
<?PHP
if (!session_start()){
echo "Проблем при стартирането на сесията";
exit();
}else
{
session_register("username");
$username="pen4o";
?>
<a href="stest.php">Към другиа скрипт</a><?
}
?>
"stest.php":
<?PHP
session_start();
echo "регистрираната променлива е ";
echo $username;?>
<a href="slogout.php">Logout</a><?
?>
"slogout.php":
<?PHP
session_start();
echo "И пак регистрираната променлива за сесията: ";
echo $username;
if (!session_destroy()){
echo " Проблем при изтриване на сесията...";
}else
{
echo " Сесията е изтрита успешно!";
session_unregister("username");
echo "стойността на регистрираната променлива след session_unregister() за сесията е: ".$username;
}
?>
Въпроса ми е защо след като съм регистрирал променливара username като променлива за сесията не мога да извлека стойността и от другите скриптове? В самия файл койото се генерира в темп-а има записана стойността на username...
|
|
|
В крайна сметка работия с PHPTriad под виндовс и предполагам, че това е една от причините, че не работят изправно някой неща. След като качих горните скриптове на server-a променливите регистрирани за сесията се "виждат" от всички скриптове. Остана проблема, че сесията не се унищожава... Някой може ли да ми каже каде бъркам?
Благодаря Ви!
|
|
Тема
|
Re: P.S.
[re: iNT19]
|
|
Автор | yanko (Нерегистриран) |
Публикувано | 15.10.02 08:22 |
|
Proveri dali imash sazdadena c:\tmp direktoria. Ako q nyamash, nyama kade da se zapisvat sesiite pod windows.
|
|
|
Probvah ti skriptovete. sesiata ti se unishtozhava. refreshni slogout.php i shte se ubedish sam.
rabotata e tam che sesiinata promenliva se iztriva ot sesiata, no ostava v skripta. Reshenieto e ili da zaredish nov script (ili prezaredish staria) ili da osven session_unregister da izpolzvash i unset($username);
P.S. Testovete sa pod XP, apache 1.3.24, php 4.2.1 zareden kato modul
Ne haresvam triad, zashtoto slaga php-to kato CGI, ili pone predi taka beshe. Ne znam za segashnite versii.
|
|
|
Otka4am ve4e vsi4ki mi kazvat 4e bi triabvalo da trygne scripta, ti mi kazvash 4e vyrvi, no pogledni tuk... 
|
|
|
ami, pich, skripta ti raboti po sushtia nachin kakto i pri men. Prosto sled kato unishtozhish sesiata, promenlivite naistina gi "niama" sled kato refreshnesh.... t.e. sled kato edin put otidesh na slogout.php, natinsi refresh! Shvashtash li ideiata?
|
|
|
Защо session_destroy ми връща false? И при следващото зареждане на sstest.php PHPSESID има същата стойност? Това не значи ли, че сесията не се унищожава и ако е така какъв точно е проблема?
|
|