• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

utowrzenie zmiennej sesyjna po wejściu wejściu na hiperłącze

Object Storage Arubacloud
0 głosów
464 wizyt
pytanie zadane 2 marca 2016 w PHP przez dkarski Obywatel (1,610 p.)

Cześć,

czy można utworzyć zmienną sesyjną bezpośrednio po wejściu na hiperłącze? Jeśli tak, to w jaki sposób to o kodować?

W sposób, który przedstawiam ma wadę, że gdy odświeżam stronę, to tworzy mi się zmienna sesyjna bez znaczenia, czy wszedłem w link czy nie.

 

		<a href="index.php">[Rejestracja]</a><br><br>		

		<form action="zaloguj.php" method="post">

			Login: <br/><input type="text" name="login"/><br/>
			Hasło: <br/><input type="password" name="haslo"/><br/><br/>
			<input type="submit" value="Zaloguj się">
			
		</form>

<?php
	
	if((!isset($_SESSION['login'])) || (!isset($_SESSION['haslo']))){
		$_SESSION['rejestracja'] = true;
	}
	
 ?>

 

1 odpowiedź

0 głosów
odpowiedź 2 marca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Czyli chodzi Ci o to, że chciałbyś aby zmienna sesyjna tworzyła się tylko przy wejściu na stronę z danego adresu?

Raczej nie ma takiej możliwości, jedyne co mi przychodzi do głowy to $_SERVER['HTTP_REFERER'] - to właśnie zwraca takową ścieżkę z której przyszedł użytkownik. Jest tylko jeden mały problem... to czy ta ścieżka zostanie wysłana zależy od przeglądarki, można też taką ścieżkę łatwo zmienić. Tak więc krótko mówiąc jest to metoda mało skuteczna i niezbyt wiarygodna.

Źródełko: http://php.net/manual/en/reserved.variables.server.php

Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

komentarz 3 marca 2016 przez dkarski Obywatel (1,610 p.)

Cześć Arek!

Dzięki za odpowiedź. Niekoniecznie z danego adresu. Mogłem wyrazić się nieprawidłowo! Przepraszam, spróbuję wyjaśnić to na przykładzie, który realizuję.

Moim zamysłem jest stworzenie opcji w stronie, która podmieni mi tylko jednego diva z

logowanie.php (1)

na rejestracja.php (2)

 

znalazłem zastępczy sposób na razie:

<a href="index.php?glos=1">[Rejestracja]</a><br><br>


<?php

	$glos = @$_GET['glos'];

?>

<!DOCTYPE HTML>
<html lang="pl">

....

<?php
	if(!$glos == 1){
		require "logowanie.php";	
	}
	else{
		require "rejestracja.php";
	}
?>

co o tym myślisz? Czy można ten pomysł zrealizować łatwiej?

 

komentarz 3 marca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Całkiem dobry sposób znalazłeś, można tak jak robisz przez adres (metoda GET) przekazywać jaką podstronę ma pokazać. I nie musi to być wcale na cyferkach, równie dobrze może być przykładowo index.php?page=register czy jak tam chcesz.

Często też robi się tzw. routing - czyli każde wywołanie jest kierowane na sam index.php, odczytywane jest to co wpisał użytkownik i sprawdzane czy taka podstrona istnieje i co należy dla niej wykonać. Jeśli nie istnieje to wiadomo, rzucany jest jakiś tam błąd. Znalazłem przykład na szybko, tutaj można zobaczyć bardzo prosty routing: http://dominikmarczuk.pl/2012/05/routing-z-czym-to-sie-je

Warto jeszcze dodać, że w większych projektach robi się to obiektowo i nie miesza kodu HTML i PHP - używa się systemów szablonów (polecam Twiga) - dzięki temu kod jest czytelniejszy i nie jest to wszystko pomieszane.

A i jeszcze na koniec wspomnę, że używanie @ jest złą praktyką. Lepiej błędy obsłużyć, a nie ukryć. Pewnie dałeś ją tam gdyż w przypadku niepodania parametru glos wyskakiwało ostrzeżenie o niezdefiniowanym indeksie tablicy $_GET. Rozwiązanie: wystarczy najpierw sprawdzić czy podany indeks w tablicy istnieje i problemu nie będzie.

Podobne pytania

0 głosów
3 odpowiedzi 542 wizyt
pytanie zadane 10 kwietnia 2016 w HTML i CSS przez pitruk Nowicjusz (140 p.)
0 głosów
1 odpowiedź 107 wizyt
0 głosów
1 odpowiedź 118 wizyt
pytanie zadane 8 lutego 2023 w PHP przez zbiku25 Bywalec (2,940 p.)

92,544 zapytań

141,387 odpowiedzi

319,503 komentarzy

61,930 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...