![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 21.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
mam 3 adresy URL pod postacią kodu QR, nazwijmy je 'A', 'B', 'C'. Gdy zeskanuję któryś z kodów po raz pierwszy, to wyświetla mi się obrazek z mapą. Przykład: Skanujemy kod QR 'B', więc wyświetla się obrazek mapy z miejsca 'start' do obiektu 'B'. Następnie gdy zeskanuję kod, tym razem np. 'A', to wyświetla się obrazek z mapą z miejsca 'A' do miejsca 'B'. Następnie jeżeli zeskanuję kod 'C', to wyświetla się obrazek z mapą z miejsca 'C' do miejsca 'B'. Jednak, gdy zeskanuję kod 'B' (ten sam kod, który zeskanowałem na samym początku) to wyświetla się tym razem informacja o obiekcie 'B'. Do tego momentu skrypty działają prawidłowo. Jednakże, gdy teraz zeskanuję kod QR 'C' (ten sam, który zeskanowałem wcześniej; pogrubiony fragment) to chciałbym, żeby wyświetliła mi się mapa z miejsca 'B' do miejsca 'C'. Obecnie jest tak, że wyświetla mi się mapka z 'C' do 'B' i to jest błąd, ponieważ jesteśmy aktualnie w miejscu 'B'. W skrócie, gdy wyświetlę informację o obiekcie 'B', ten obiekt musi przyjąć punkt startowy. Tutaj właśnie potrzebuję pomocy, nie wiem jak to ugryźć. Adres URL to np.: .../index.php?obiekt=obiektX, gdzie X to A, B lub C. Wszystkie kombinacje obrazków mam: A->B, A->C, itp. Jeżeli coś jest nie jasne, to pytać, postaram się opisać to na przykładzie "życiowej sytuacji" (IMG:style_emoticons/default/biggrin.gif) Skrypty: index.php Kod <?php require_once('funkcje.php'); session_start(); $obiekt = isset($_GET['obiekt']) ? $_GET['obiekt'] : 'obiekt1'; if (!isset($_SESSION['cel'])) { $_SESSION['cel'] = $obiekt; pokazMapeStart('start',$obiekt); } else { if ($_SESSION['cel'] == $obiekt) { pokazInfo($obiekt); } else { pokazMape($obiekt, $_SESSION['cel']); } } ?> funkcje.php Kod <?php function pokazInfo($obiekt) { header('Location: /info.php?obiekt=' . $obiekt); } function pokazMape($obiektZ,$obiektDo) { header('Location: /mapka.php?z='.$obiektZ.'&do='.$obiektDo); } function pokazMapeStart($start,$obiektDo) { header('Location: /mapka.php?z='.$start.'&do='.$obiektDo); } mapka.php Kod <?php $nazwaMapy = 'mapa_'. $_GET['z'].'_'.$_GET['do'].'.png'; echo '<img src="/'.$nazwaMapy.'" alt="mapa"/>'; ?> info.php Kod <?php switch($_GET['obiekt']) { case 'obiekt1': echo '<img src="obiekt1.png">'; break; case 'obiekt2': echo '<img src="obiekt2.png">'; break; case 'obiekt3': echo '<img src="obiekt3.png">'; break; } ?> Sorry, że podbiłem, ale niestety jeszcze nie rozwiązałem sam mojego problemu. Może jednak ktoś wie, w jaki sposób rozwiązać mój problem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 264 Pomógł: 54 Dołączył: 31.08.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Ok więc po kolei.
1. Funkcja pokazMapeStart() robi dokładnie to samo co pokazMape() więc nie wiem po co duplikat. 2. Przy wyświetlaniu Informacji o obiekcie musisz zresetować CEL czyli usunąć sesję z CELEM (bo do niego dotarłeś) 3. Nie obejdzie się bez stworzenia nowej zmiennej w SESJI o nazwie start która będzie trzymać miejsce startu, czyli miejsce do którego dotarłeś po usunięciu sesji CEL Czyli coś takiego:
Ten post edytował Greg0 29.09.2014, 19:39:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 17:55 |