Robię sobie system kont i mam pewien problem. Mianowicie mam plik który jest include'owany. Całość wczytywana jest na takim linku: http://localhost/?p=2 (p=2 oznacza że jest załadowana jakaś tam nieistotna strona 2)
login_form.php
<a name="a"> <?php $_SESSION['url']=$_SERVER['REQUEST_URI']; ?> <a name="b"> <?php $url=$_SERVER['REQUEST_URI']; ?> Zaloguj się:<br /> <form method="POST" action=" <?php //jeśli zawiera już r=function to nie dodaje tylko wchodzi na aktualny url //jeśli nie ma r=function w url'u to dodaje //jeśli są też inne zmienne w url'u //jeśli nie ma innych zmiennych } ?> "> Nickname: <input type="text" name="nickname"><br /> Hasło: <input type="password" name="password"><br /> <input type="submit" value="login" name="login"> </form>
zmienna r=function powoduje załadowanie login_function.php Gdy ktoś wpisze dobre dane, to login_function.php zrobi coś takiego:
$url=$_SESSION['url'];
Jednak gdy coś się nie zgadza, to robi coś takiego (przykład, ale reszta działa analogicznie):
$back=include('login_form.php');
No i teraz jak to zrobić żeby przy podaniu złego loginu i hasła zaczął czytać login_form od części "b"?
Druga kwestia jest taka, że nawet gdy za pierwszym razem użytkownik poda dobre dane, to odwiedzana strona się odświerza i pokazuje ukrytą treść (widoczną tylko po zalogowaniu - czyli loguje normalnie), jednak w miejscu gdzie znajduje się formularz logowania powinien się pojawić panel użytkownika. Zamiast tego dalej widzę tam formularz, a dodatkowo błędy że nie zdefiniowano nickname i password oraz wyświetla mi komunikat niespełnionego pierwszego warunku logowania (w podanym przezemnie przykładzie to byłoby "konto nieaktywowane". Jest to normalny efekt w przypadku zwykłego załadowania http://localhost/?p=2&r=function Tylko czemu po poprawnym logowaniu ładuje mi ten link? Powinien załadować stronę bez zmiennej "r"..
Próbowałem też tak pobierać potrzebny link, ale nie pomogło:
Jakby się przydało, to załączam jeszcze ten pliczek:
panel.php
<?php //ładowanie odpowiedniej strony na bazie zmiennej z linku //jeśli r puste //jeśli niezalogowany if ($_SESSION['logged']!=1) {include('login_form.php');} //jeśli zalogowany } //jeśli r ma daną wartość else if ($_GET['r']=="function") {include('pages/functions/login_function.php');} //w wypadku gdy r nie jest puste i ma inną wartość niż wyżej zdefiniowane ?>