Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie i sesje...
Forum PHP.pl > Forum > Przedszkole
Siepet
Cześć wszystkim.

Tym razem dobija mnie jeden błąd. Mam stronę logowania, która wygląda tak:
  1. <?php
  2. $vlog = $_POST['vlog'];
  3. $vpass = $_POST['vpass'];
  4. // SPRAWDZANIE CZY OBA POLA FORMULARZA ZOSTAŁY WYSŁANE
  5. if(!isset($vlog) && !isset($vpass)) {
  6. echo "<form method='post' action=''>";
  7. echo "Imię i nazwisko:<br>";
  8. echo "<input type='text' name='vlog'/><br>";
  9. echo "Hasło:<br>";
  10. echo "<input type='password' name='vpass'/><br>";
  11. echo "<input type='submit' value='Zaloguj mnie'/>";
  12. echo "</form>";
  13. } else {
  14. // SPRAWDZA CZY ISTNIEJE PLIK Imie Nazwisko.ini pobrane z formularza
  15. if (file_exists($vlog.".ini")) {
  16. $file = @array_map('rtrim',@file($vlog.".ini"));
  17. $line = $file[0];
  18. $pas = explode("=", $line);
  19. $pass = $pas[1];
  20. // JEŚŁI HASŁO Z FORMULARZA JEST ZGODNE Z HASŁEM Z PLIKU TO PRZECHODZI DALEJ
  21. if($vpass == $pass) {
  22. $auth = "1";
  23. echo "<b><span style='color: #008000;'>Zalogowany pomyślnie jako ".$vlog."!</span></b>";
  24. } else {
  25. echo "Podano złe hasło! Spróbuj ponownie!";
  26. }
  27.  
  28.  
  29. } else {
  30. echo "Podany użytkownik nie istnieje.<br>";
  31. echo "Jesteś nowy? Zarejestruj się już dziś!<br>";
  32. }
  33. }
  34.  
  35.  
  36.  
  37. ?>
  38.  


Mam też menu. W jaki sposób mogę ustawić, aby po kliknięciu na odnośnik z menu "panel.php?page=info" nie wracało do strony logowania, tylko przechodziło na stronę? Chyba coś ciężko kumam, ale próbowałem już chyba wszystkiego co siedzi w mej głowie. Z góry dziękuję za nakierowanie.
Pozdrawiam.
mls
Zastanów się.
  1. $vlog = $_POST['vlog'];
  2. $vpass = $_POST['vpass'];

To jaki sens ma teraz linijka
  1. if(!isset($vlog) && !isset($vpass)) {

?
Rysh
Czy ja czegoś nie rozumiem, niewidzę, czy jestem ...? Gdzie w tym kodzie są sessje?
Siepet
No, jeśli zmienna nie została odebrana z formularza, czyli nie został wypełniony, czyli ma go pokazać, aby ktoś mógł go wypełnić. smile.gif

@Rysh: ups, fakt. Nie zapisałem tamtego kodu i jest bez sesji. :S


Chodzi też że mając już sesje, nie wiem w jaki sposób mogę wrzucić zawartość odnośnika na środek strony, zamiast formularza i innych tekstów...
mls
Cytat(Siepet @ 23.02.2010, 22:50:38 ) *
No, jeśli zmienna nie została odebrana z formularza, czyli nie został wypełniony, czyli ma go pokazać, aby ktoś mógł go wypełnić. smile.gif


No, to jaka część kodu za to odpowiada? Bo ja widzę, że żadna. Włącz sobie pełne raportowanie błędów i gwarantuję Ci, że na dzień dobry skrypt sypnie Ci komunikatami o braku indeksów w zmiennej $_POST...
I jeszcze podpowiem - naprawdę nie widzę sensu sprawdzania czy zadeklarowane linijkę wcześniej zmienne istnieją.
Rysh
Cytat(mls @ 23.02.2010, 22:57:56 ) *
I jeszcze podpowiem - naprawdę nie widzę sensu sprawdzania czy zadeklarowane linijkę wcześniej zmienne istnieją.

Przeprowadziłem mały teścik, żeby przekonać się czy zadziała...

  1. <?php
  2. if (isset($_POST['zmienna'])) {
  3. echo "Zmienna _POST['zmienna'] istnieje.<br />";
  4. } else {
  5. echo "Zmienna _POST['zmienna'] nieistnieje.<br />";
  6. }
  7.  
  8. if (isset($nowa)) {
  9. echo "Zmienna nowa istnieje.<br />";
  10. } else {
  11. echo "Zmienna nowa nieistnieje.<br />";
  12. }
  13.  
  14. $nowa = $_POST['zmienna'];
  15.  
  16. if (isset($nowa)) {
  17. echo "Zmienna nowa istnieje.<br />";
  18. } else {
  19. echo "Zmienna nowa nieistnieje.<br />";
  20. }
  21. echo "<form method='post'><input type='submit' value='wartosc' name='zmienna' /></form>";
  22. ?>
Siepet
Hmm, po przemyśleniu wszystkiego nasuwa mi się pytanie. Gdzie wsadzić kod odpowiedzialny za wyświetlenie danego pliku po naciśnięciu na link zamiast forma/napisów w skrycie z postu 1?
Rysh
Nie jestem pewny czy dobrze Cie rozumiem:
  1. <?php
  2. if ($_GET['page'] == "info") {
  3. echo "strona info";
  4. } elseif ($_GET['page'] == "zaloguj") {
  5. echo "tu te Twoje logowanie";
  6. } else {
  7. echo "jesli bez zadnego get";
  8. }
  9. ?>
Siepet
A jakbyś mógł to 'wprowadzić' w mój kod, tak aby działało? Byłbym wdzięczny i wysłałbym piwo pocztą. ;]
Rysh
Ok, podpowiem jeszcze bardziej.
  1. <?php
  2. if (isset($_POST['vlog']) && isset($_POST['vpass'])) {
  3. if (file_exists($_POST['vlog'].".ini")) {
  4. echo "Sprawdzasz hasło";
  5. //jeśli wszystko ok, mozesz przenieść użytkownika do index.php np...
  6. //header("Location: index.php");
  7. } else {
  8. echo "Brak użytkownika";
  9. }
  10. }
  11.  
  12. if ($_GET['page'] == "info") {
  13. echo "strona info";
  14. } elseif ($_GET['page'] == "zaloguj") {
  15. echo "tutaj dajesz formularz logowania";
  16. } else {
  17. echo "jesli bez zadnego get";
  18. }
  19. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.