Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Podstrona na hasło
-canuhelpme-
post
Post #1





Goście







Witam!
Raczkuję w temacie PHP, jednak potrzebny jest mi skrypt, który poprosi o hasło i przeniesie na daną stronę.
Poniżej znajduje się skrypt jaki znalazłem w sieci. Działa bez problemu na serwerze cba.pl, problem pojawia się kiedy umieściłem go na nazwa.pl. Skrypt nie ładuje mi strony. Nie mam pojęcia dlaczego, stąd moja prośba o pomoc. Oczywiście strona musi znaleść się na serwerze nazwa.pl. Oto kod:

  1. <div id="trzeci_blok">
  2. <p><br />
  3. <?php
  4. session_start(); //rozpoczęcie sesji
  5. include "haslo.php";
  6. //skrypt :)
  7. $pass = $_POST[pass];
  8. if ($pass)
  9. {
  10. if ($pass==$haslo)
  11. {
  12. $_SESSION[haslo] = $haslo;
  13. header ("Location: ./materials2.html"); //podajesz adres, na który po zalogowaniu skrypt przekierowuje
  14. }
  15. else
  16. {
  17. echo 'Podałeś niepoprawne hasło. :(';
  18. }
  19. }
  20. else
  21. {
  22. <form method=post>
  23. Podaj hasło: <INPUT TYPE="PASSWORD" NAME="pass" VALUE="'.$pass.'">
  24. <INPUT TYPE="SUBMIT" VALUE="Zaloguj">
  25. </FORM>
  26. ';
  27. }
  28. $action = $_GET[action];
  29. if ($action=="logout")
  30. {
  31. header("Location: index.html"); //podajesz adres, na który po wylogowaniu skrypt przekierowuje
  32. }
  33. ?>
  34.  
  35.  
  36.  
  37. </p>
  38. </div>


Podstrona z tym kodem ma rozszerzenie .php. Dodatkowo jest plik haslo.php. Jego kod to:

  1. <?php
  2. $haslo = "123456"; //hasło dostępu
  3. ?>


Bardzo proszę o pomoc. Pozdrawiam
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


jak to możliwe, że skrypt startuje, skoro przed session_start() masz wyświetlanie kodu html ?
Go to the top of the page
+Quote Post
maciusiek995
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


  1. <?
  2. session_start(); //rozpoczęcie sesji musi być przed wykonaniem nagłówków
  3. ?>
  4.  
  5.  
  6. <?php
  7.  
  8. include "haslo.php";
  9. //skrypt :)
  10. $pass = $_POST[pass];
  11. if ($pass)
  12. {
  13. if ($pass==$haslo)
  14. {
  15. $_SESSION[haslo] = $haslo;
  16. header ("Location: ./materials2.html"); //tak samo z header
  17. }
  18. else
  19. {
  20. $komunikat= 'Podałeś niepoprawne hasło. :( </br>';
  21. }
  22. }
  23. else
  24. {
  25. echo '<div id="trzeci_blok">
  26. <p>
  27. if(isset($komunikat)) echo $komunikat;
  28.  
  29. <form method=post>
  30. Podaj hasło: <INPUT TYPE="PASSWORD" NAME="pass" VALUE="'.$pass.'">
  31. <INPUT TYPE="SUBMIT" VALUE="Zaloguj">
  32. </FORM>
  33. ';
  34. }
  35. $action = $_GET[action];
  36. if ($action=="logout")
  37. {
  38. header("Location: index.html"); //podajesz adres, na który po wylogowaniu skrypt przekierowuje
  39. }
  40. ?>


Ten post edytował maciusiek995 16.08.2011, 20:04:21
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #4





Goście







To jest tylko część kodu. Wrzuciłem skrypt php w diva, żeby umiejscowić pole logowania w dobrym miejscu. Ten pierwszy skrypt nie jest osobnym plikiem, jest po prostu wrzucony w stronę.
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #5





Goście







Cytat(maciusiek995 @ 16.08.2011, 19:59:24 ) *
  1.  
  2.  
  3. echo '<div id="trzeci_blok">
  4. <p>
  5. if(isset($komunikat)) echo $komunikat;
  6.  


? tu chyba jest błąd, a skrypt nadal się nie ładuje
Go to the top of the page
+Quote Post
maciusiek995
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


to jest tylko sprawdzenie czy została użyta zmienna $komunikat czy nie bo inaczej wywali errora (IMG:style_emoticons/default/smile.gif)



Ten post edytował maciusiek995 16.08.2011, 20:25:46
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #7





Goście







Skrypt nadal nie działa na serwerze nazwa.pl. Jaka moze byc tego przyczyna? Moze miec to zwiazek z plikiem .htacces lub jakas konfiguracja? Skrypt dziala bez problemu na innych serwerach obslugujacych php. Nie mam juz pomyslu co zrobic.
Go to the top of the page
+Quote Post
CuteOne
post
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1.  
  2. $pass = '12345';
  3.  
  4. if(!empty($_POST)) {
  5.  
  6. if($pass == $_POST['pass']) {
  7.  
  8. $_SESSION['pass'] = $pass;
  9.  
  10. header('Location: http: // www. example .com/ jakas.strona.html');
  11. }
  12. else {
  13.  
  14. $komunikat = 'Złe hasło';
  15. }
  16. }
  17.  
  18.  
  19.  
  20. if(isset($komunikat)) echo $komunikat;
  21.  
  22. echo '<form method="post" action="">
  23. Podaj hasło: <INPUT TYPE="PASSWORD" NAME="pass" VALUE="">
  24. <INPUT TYPE="SUBMIT" VALUE="Zaloguj">
  25. </FORM>';
  26.  


Dopisz sobie co potrzebujesz

Ten post edytował CuteOne 16.08.2011, 20:49:16
Go to the top of the page
+Quote Post
Calibri
post
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 4
Dołączył: 22.07.2011

Ostrzeżenie: (0%)
-----


Cześć.
Masz błędy w kodzie, możliwe że przez to serwer na nazwa.pl nie trybi.
Popraw błędy w liniach: 7, 12 i 29.

Linia 7:
masz:
Kod
$pass = $_POST[pass];

powinno być:
Kod
$pass = $_POST['pass'];
nie miałeś pass w apostrofach czy tam w cudzysłowach (niewiem jak piszesz). Dodatkowo na początku muszisz sprawdzić czy wogóle została taka zmienna zainicjowana. Więc popraw na:
Kod
$pass = (isset($_POST['pass'])) ? $_POST['pass'] : FALSE.


Linia 12:
masz:
Kod
$_SESSION[haslo] = $haslo;

powinno być:
Kod
$_SESSION['haslo'] = $haslo; // <- popraw na to.


Linia 29:
(podobnie jak z linią nr 7) - podam poprawną wersję:
Kod
$action = (isset($_GET[action])) ? $_GET['action'] : FALSE;


Linia 10:
brak wcześniejszej wersji inicjalizacyjnej $haslo. Mam nadzieję że w pliku który includujesz w linii 5 takowa zmienna istnieje (IMG:style_emoticons/default/wink.gif)

Pozdrawiam.

Ten post edytował Calibri 16.08.2011, 21:29:16
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #10





Goście







@CuteOne
Dzięki ale wyglada na to ze jest chyba jakis problem po stronie serwera. Kiedy wpisuje niepoprawne haslo to wyskakuje komunikat 'Złe hasło', ale kiedy wpisuje poprawne nic sie nie dzieje. Sekunde sie cos laduje ale zostaje na tej samej stronie.

@Calibri
Jak porawilem kod Twoim sposobem ($pass = (isset($_POST['pass'])) ? $_POST['pass'] : FALSE.) , wywalalo mi biala strone na ktorej nic nie bylo. Kiedy uzylem "$pass = $_POST['pass'];" skrypt podobnie jak CuteOne'a nie powodowal zaladowania oczekiwanej strony.

Pozdrawiam
Go to the top of the page
+Quote Post
potreb
post
Post #11





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No tak bo jest bład: ($pass = (isset($_POST['pass'])) ? $_POST['pass'] : FALSE.)

Kropka po false. Jak ci coś nie działa to czytaj błędy, raportowanie błędów to podstawa. Dodatkowo printuj sobie zmienne, wtedy wiesz co się dzieje.
Go to the top of the page
+Quote Post
CuteOne
post
Post #12





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Ehhh... podaj kod skryptu do którego powinno Cię przerzucić.. widocznie tam masz błąd
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #13





Goście







@CuteOne
Nie chce zeby przerzucalo mnie do skryptu, tylko prosto do strony. Wpisuje haslo i wyswietla sie strona.
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #14





Goście







sorry nie zalapalem.. To ten skrypt:

  1. <?php
  2. //pliki
  3. include "haslo.php";
  4. if ($_SESSION[haslo])
  5. {
  6. if (!($_SESSION[haslo] == $haslo))
  7. {
  8. header ("Location: logowanie.php");
  9. }
  10. }
  11. else
  12. {
  13. header ("Location: logowanie.php");
  14. }
  15. //odtąd wstawiasz treść strony.
  16. ?>
Go to the top of the page
+Quote Post
-canuhelpme-
post
Post #15





Goście







Wazna informacja. Okazalo sie ze ten skrypt ktory wkleilem w 1 poscie dziala, ale tylko kiedy jest osobnym plikiem 'logowanie.php'. Przestaje dzialac kiedy wrzucam go w strone, mimo iz strona ma rozszerzenie php. Jakies pomysly? Cala strona jest zbudowana na css.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 01:46