Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]dziwne użycie session_destroy()
RAM
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


Dzień dobry,
Mam małe doświadczenie w pisaniu aplikacji WWW.
Mam stronę enter_announcement.php (główna, wprowadzanie ogłoszenia) zawierającą
session_start() i stronę summary.php (podsumowanie, też z session_start()).
Kiedy użytkownik chce cofnąć się wstecz strzałką w lewo przeglądarki z
podsumowania to przechodzi do modyfikacji ogłoszenia (formularz
enter_announcement.php wypełniony danymi ogłoszenia). Na zmiennej
$_SESSION['full_announcement_no'] przekazywany jest numer ogłoszenia w bazie. Na
stronie z podsumowaniem jest też link do strony głównej (żeby móc DODAĆ nowe
ogłoszenie):

<img src="images/home.png"><a href="java script:goToMain();">Powrót na stronę
główn±</a>

Nie mogłem zrobić po prostu href="enter_announcement.php" bo wtedy
przechodziłoby się do edycji ogłoszenia o numerze
$_SESSION['full_announcement_no'] a nie do dodawania nowego.
Oto funkcja goToMain():

function goToMain() {
document.announcement.action = 'goto_main.php';
document.announcement.submit();
}

A oto plik goto_main.php:

<?php
require_once 'include/functions.inc.php';
session_start();
$_SESSION = array();
session_destroy();
headerLocation('enter_announcement.php');
?>

Jak widać aby przejść do dodawania ogłoszenia a nie modyfikacji, czyszczę
zmienną sesji.

Nie podoba mi się to rozwiązanie (użycie sztucznego pliku goto_main.php) ale nie
wymyśliłem lepszego. Czy macie jakiś lepszy pomysł jak rowiązać przechodzenie do
dodawanie ogłoszenia ze strony podsumowania żeby przy cofaniu się wstecz
otrzymywać edycję ogłoszenia?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
norbis
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 8
Dołączył: 30.04.2008

Ostrzeżenie: (0%)
-----


Jeśli dobrze zrozumiałem, to powinno rozwiązać Twój problem:

  1. <img src="images/home.png"><a href="enter_announcement.php?clear=1">Powrót na stronę główną</a>


w pliku enter_announcement.php:

  1. if(is_set($_GET['clear']))
  2. $_SESSION = array();


I jeszcze jedna kwestia na marginesie, z tego co opisałeś domyślam się, że masz straszną dziurę w skrypcie. Nie wiem w jaki sposób znasz numer ogłoszenia przed dodaniem, a już po wczytaniu strony, ale mam nadzieję, że wziąłeś pod uwagę to, że kilka osób na raz może dodawać ogłoszenie? (IMG:style_emoticons/default/smile.gif)

Ten post edytował norbis 18.10.2010, 06:50:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 19:54