• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
693 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 (290,050 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 (290,050 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 810 wizyt
pytanie zadane 10 kwietnia 2016 w HTML i CSS przez pitruk Nowicjusz (140 p.)
0 głosów
1 odpowiedź 139 wizyt
0 głosów
1 odpowiedź 198 wizyt
pytanie zadane 8 lutego 2023 w PHP przez zbiku25 Gaduła (3,000 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,657 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...