Sesja na drugiej stronie

0

Męcze sie z tym juz jakis czas dzisiaj i albo mam pomroczność albo juz nie wiem.

//tu wczesniej jest kod nie zwiazany z tym ponizej

session_start(); // to jest na samej gorze pliku

unset($_SESSION['id']);
unset($_SESSION['username']);
unset($_SESSION['timeout']);

$_SESSION = array();
session_destroy();
							
if(ini_get("session.use_cookies"))
{
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 3600,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
							
session_start();
							
$_SESSION['delete_true'] = "Konto zostało usunięte";
							
header('location: index.php');
exit;

Problem w tym ze nie widac w index.php tej sesji $_SESSION['delete_true'] choc jest zainicjowane session_start();
W indexie mam warrninga ze Undefined index.....Jakby session_start() w tym kodzie nie zostało wywołane.

1

Eeee.... Masz 2x session_start(). Musi być to tylko raz i na samej górze strony.

1

Zmień nazwę ciasteczka na coś innego niż nazwa sesji.

0
serek napisał(a):

Zmień nazwę ciasteczka na coś innego niż nazwa sesji.

Nic nie daje zmiana. Nie daje tez nawet usuniecie tego i zostawienie tylko session_destroy()

W index.php

if(isset($_SESSION['delete_true']))
{
	print "<div class=\"alert alert-success alert-dismissible fade in\">";
	print "<a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-label=\"close\">&times;</a>";
	print "<strong>Informacja!</strong> " . $_SESSION['delete_true'];
	print "</div>";
	
	unset($_SESSION['delete_true']);
	
}
0

Kurde, pomyśl... Taki problem sprawdzać linijka po linijce? Ten kod jest krótki...

Wywal session_destroy()

0

No ale wlasnie chce zeby to bylo. To jest dalsza część kodu ktory usuwa usera iwszystkie jego wpisy z bazy. To mam wczesniej i nie podalem bo to sensu nie ma. Jesli usuwam usera to musze go wylogowac wiec usuwam ciastko, inne zmienne sesyjne i daje session_destroy() i po tym od razu session_start() tylko to wlasnie nie dziala. Dziwna sprawa bo jak wytne session_destroy i wstawie w warunku w index to tez nie chce dzialac. Zupelnie nie wiem o co chodzi. Chce w index wyswietlic info ze user usunął konto wiec musze powtornie zainicjowac sesje

0

W index.php masz session_start() ?

0

Dobra, przyjrzałem się na ten Twój kod i @serek ma rację. Zobacz:

index.php

<?php
    session_start(); // to jest na samej gorze pliku

    $_SESSION['delete_true'] = "Konto zostało usunięte";

    if(ini_get("session.use_cookies"))
    {
        $params = session_get_cookie_params();
        setcookie('loggedUser', '', time() - 3600, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
    }
    header('location: index2.php');
?>

I teraz index2.php

<?php
	session_start();

	print_r($_SESSION);

	echo '<br /><a href="index.php">back</a>';
?>
0

Juz sobie poradzilem.
Przenioslem cale te usuwanie do pliku gdzie wyswietlam te sesje i ponizej tego osadzilem usuniecie ale do teraz e wiem z czym byl problem.
Na moje to po session_destroy() powinno zadzialac session_start() a tak sie nie dzialo.

1

Ale rozwiązaniem Twojego problemu było nazewnictwo cookie nazwą sesji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1