BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Проблем с session_start()
midjis
Публикувано на: 25-08-2019, 14:26
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 451
Регистриран на: 27.11.06



Здравейте,
Къде и какви настройки трябва да направя така, че когато използвам функцията:
CODE

     header("location: registration.php");

Действието на session_start() да запазва свойството си като глобална променлива?

Това мнение е било редактирано от midjis на 25-08-2019, 14:27


--------------------
Съвършенството е моята цел.
PMEmail Poster
Top
thrawn
Публикувано на: 25-08-2019, 17:01
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2490
Регистриран на: 17.01.17



Въпрос лишен от смисъл...
PMEmail Poster
Top
midjis
Публикувано на: 26-08-2019, 16:45
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 451
Регистриран на: 27.11.06



Извинявам се за допуснатата грешка! Нека изразът session_start() да се чете $_SESSION[].

Въпросът има смисъл защото при мен се получи следната ситуация:

Сесийната променлива, която е глобална, приема стойност:
CODE

<?php  session_start();
$_SESSION['parva_reg']='parva_reg';
?>

Но при изпълнението на функцията:
CODE

<?php  session_start();
$_SESSION['parva_reg']='parva_reg';
header("location: registration/registration.php");
?>


Стойността и изчезва. Проявява се като обикновена променлива.
Когато се изпълни този код:
CODE

<?php  session_start();
$_SESSION['parva_reg']='parva_reg';
echo  "<script> window.location = 'registration/registration.php'; </script>";      
?>

Стойността и се запазва и тя си е глобална променлива.

Това мнение е било редактирано от midjis на 26-08-2019, 16:58


--------------------
Съвършенството е моята цел.
PMEmail Poster
Top
ici
Публикувано на: 26-08-2019, 17:26
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 16439
Регистриран на: 06.06.04



CODE
<?php  session_start();
$_SESSION['parva_reg']='parva_reg';
header("location: registration/registration.php");
exit();
?>


--------------------
Reading undefined locations provides undefined data.
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 26-08-2019, 17:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2490
Регистриран на: 17.01.17



Няма нужда от exit(). Проблемът му е на друго място.
PMEmail Poster
Top
midjis
Публикувано на: 27-08-2019, 15:26
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 451
Регистриран на: 27.11.06



Искам да отбележа, че този проблем идва при качването на този код на VPS, на локалният ми сървър (XAMPP) този проблем го няма.


--------------------
Съвършенството е моята цел.
PMEmail Poster
Top
thrawn
Публикувано на: 27-08-2019, 16:48
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2490
Регистриран на: 17.01.17



Описанието на проблема е абсурдно. Извикването на session_start() инициализира масив със сесийните променливи. Така, че това Стойността и изчезва. Проявява се като обикновена променлива. е някаква безсмислица. Масив или е инициализиран или не. "Обикновени променливи" няма как да се появят от нищото. Някой трябва да ги декларира и инициализира.

Как ще се зареди втората страница също е без значение. Дали ще използваш хедър за препращане, javascript или ще отвориш директно страницата е все тая. Важно е единствено да се изпрати бисквитката със сесийния идентификатор.

Ако има проблем то той изобщо не е в кода който постваш тук.
PMEmail Poster
Top
midjis
Публикувано на: 28-08-2019, 12:16
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 451
Регистриран на: 27.11.06



Да, има проблем.При изпълнение на функцията header("location: registration/registration.php"); и print_r($_SESSION); ми връща Array ( ).
Когато използвам:
CODE
<?php  session_start();
$_SESSION['parva_reg']='parva_reg';
echo  "<script> window.location = 'registration/registration.php'; </script>";      
?>

Масивът е пълен.

Навярно проблемите са в настройките на php.ini.
Промених някои от тях, като:
register_globals = On
register_long_arrays = On
register_argc_argv = On

session.save_path = "N;/path"
session.bug_compat_42 = 1

Какво още да направя?


--------------------
Съвършенството е моята цел.
PMEmail Poster
Top
thrawn
Публикувано на: 28-08-2019, 12:38
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2490
Регистриран на: 17.01.17



Виж какво се изпраща де. Така с налучкване, особено като не знаеш какво правиш, няма как да решиш нищо.

Register_globals вече не се използва. От няколко години е премахнат а доста от преди това беше на off по подразбиране. Та там недей да мажеш - върни си го на off ако ползваш толкова стара версия на php.

Като начало се опитай да разбереш как работят нещата. Провери дали се стартира сесия, дали препращането работи и дали бисквитката се изпраща коректно. Провери и дали няма някакви грешки (включително и в логовете).
PMEmail Poster
Top
midjis
Публикувано на: 28-08-2019, 17:07
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 451
Регистриран на: 27.11.06



Нещата без каквато и да е функция за пренасочване работят нормално,това съм го проверил.
Само при изпълнение на header("location: registration/registration.php");,имаме Array ( ).
Това е!




--------------------
Съвършенството е моята цел.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0