[PHP] automatycznie dodana zmienna z parametrem do linków

0

Witam,

Mam następujące pytanie na które nie mogę wygooglować odpowiedzi. Postaram się to dobrze opisać:

Użytkownik wchodzi na stronę z specjalnie spreparowanym linkiem np (url)/index.php?zmienna=1 i teraz chciał bym aby "zmienna=1" dodawała się za każdym razem do wszystkich linków na stronie tak abym nie musiał jej wpisywać ręcznie do kodu strony.

Można to rozwiązać zmiennymi SESSION ale podobno jest jakiś inny sposób na to. Przykładem takiej zmiennej jest "SSID" która można włączyć w pliku php.ini aby doklejała się do każdej strony.

Z góry dziękuje za pomoc.
Quim

0

A czemu nie przez sesje? Znasz kogoś kto z wyłączonymi ciasteczkami odpisuje na forum czy loguje się gdziekolwiek? Bo ja nie. Po prostu wystartuj na początku pliku sesję:

session_start();

Po czym możesz już sobie na luzie zapisywać i odczytywać dane z tablicy $_SESSION, która automatycznie jest wczytywana przez PHP po jej wystartowaniu. Tak wygląda system logowania (prowizoryczny) na sesjach:

session_start();
if ($_POST['haslo'] == 'aaa123') { //W formularzu podano prawidłowe hasło
   $_SESSION['admin'] = 1;
}

if ($_SESSION['admin']) { //Sprawdzamy czy w sesji usera jest zapisane że jest on adminem
echo('Witaj w Panelu Admina!');
} else { //Jeśli nie, to wywalamy login form
echo('<form [...] method="POST">Hasło: <input [...] name="haslo"> <input [...] type="submit" value="OK"></form>');
}

W taki sposób można zapisać każdą wartość, a co jeszcze ciekawsze nikt po stronie klienta nie może odczytywać zawartości tablicy $_SESSION, bo w ciasteczkach przechowuje się tylko identyfikator sesji na serwerze.

0

Możesz użyć tego:

<?php
echo "<a href=\"file.php?zmienna={$_GET['zmienna']}\"";
?>

Możesz też wyświetlić zmienną $_SERVER['QUERY_STRING'] jeśli nie znasz nazwy tego przed znakiem "=".
Zmienna ta zawiera wszystko po znaku "?" w adresie.

0

No kur** po jaką cholerę wy ciągle stawiacie krzyże na drodze?

echo('<a href="file.php?zmienna='.$_GET['zmienna'].'">costam</a>');

Poza tym przestawiłem bardzo prosty sposób z sesjami, a w temacie padło pytanie o to jak dokleić to masowo do wszystkich linków lub inaczej rozwiązać problem bez rozkopywania kodu.

Potem mnie szlag trafia bo młodzi piszą tak:

echo"Jesteś zalogowany jako: <a href=\"?mode=profil&".$_GET['zmienna']."&uid=".$_SESSION['uid']."\">\"".$_SESSION['nick']."\"</a>";

Czy ty jesteś pewien że potem coś takiego jest czytelne, kiedy można wreszcie nauczyć się używać apostrofu?

->enginer: no te theme.php to mnie dobijały do reszty i jeszcze każdy miał swoją własną specyfikę bo autor myślał że będzie 'elastyczniej'.

Jeszcze tak dla wargo specjalnie mój zapis, który pozornie wydaje się dłuższy na listingu, ale w notatniku zajmuje mniej i jest czytelniejszy.

echo('Jesteś zalogowany jako: <a href="?mode=profil&'.$_GET['zmienna'].'&uid='.$_SESSION['uid'].'">"'.$_SESSION['nick'].'"</a>');
0

z tymi apostrofami to zwróć się do php-fusiona :D
większość młodych zazwyczaj ogląda kody innych cms'ów przed napisaniem własnych skryptów (cms i inne) co skutkuje nauczeniem się "błędnego" zapisu kodu ^^

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