Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Logowanie[/php]
endriut
post 12.09.2007, 18:15:57
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 14.05.2007

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


Kolejny dzien kolejne pytania

  1. <?php ob_start(); ?>
  2. <? 
  3. include_once 'common.php'; 
  4. include_once 'pol.php';
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. if (isset($_POST['login'])) { 
  12. $login = $_POST['login']; 
  13. } else { 
  14. $login = $_SESSION['login']; 
  15. } 
  16. if (isset($_POST['haslo'])) { 
  17. $haslo = $_POST['haslo']; 
  18. } else { 
  19. $haslo = $_SESSION['haslo']; 
  20. }
  21.  
  22. if(!isset($login)) { 
  23. ?> 
  24. <HTML>
  25. <HEAD> 
  26. <STYLE type="text/css">
  27. <!--
  28. BODY, TABLE, FORM { font-size: 8pt; font-family: Verdana, Arial; text-decoration: none }
  29. SELECT, INPUT { font-size: 8pt; font-family: Courier, Arial; text-decoration: none }
  30. -->
  31. </STYLE>
  32. </HEAD> 
  33. <BODY>
  34. <fieldset><legend>Musisz Się Zalogować</legend></span><br />
  35. <small> Musisz sie zalogować aby mieć dostęp do strony</small>
  36. <FORM method="post" action="<?=$_SERVER['PHP_SELF']?>"> 
  37. <TABLE border="0" cellpadding="0" cellspacing="5"> 
  38. <TR> 
  39. <TD align="right">Login:</TD> 
  40. <TD> 
  41. <INPUT name="login" type="text" maxlength="100" size="25">
  42. </TD> 
  43. </TR> 
  44. <TR> 
  45. <TD align="right">Hasło:</TD> 
  46. <TD> 
  47. <INPUT name="haslo" type="password" maxlength="100" size="25"> 
  48. </TD> 
  49. </TR> 
  50. <TR> 
  51. <TD align="center" colspan="2"> 
  52. <INPUT type="submit" value="Zaloguj"> 
  53. </TD> 
  54. </TR> 
  55. </TABLE> 
  56. </FORM>
  57. </BODY> 
  58. </HTML>
  59. <?php 
  60. exit; 
  61. }
  62.  
  63. $_SESSION['login'] = $login; 
  64. $_SESSION['haslo'] = $haslo;
  65.  
  66. dbConnect("absolwenci"); 
  67.  
  68. $sql = "SELECT * FROM logow WHERE login = '$login' AND haslo = PASSWORD('$haslo')"; 
  69. $result = mysql_query($sql); 
  70. if (!$result) { 
  71. error('Błąd w zapytaniu SQL'); 
  72. }
  73.  
  74. if (mysql_num_rows($result) == 0) { 
  75. unset($_SESSION['login']); 
  76. unset($_SESSION['haslo']); 
  77. ?> 
  78. <HTML> 
  79. <HEAD> 
  80. <TITLE>Brak dostępu</TITLE>
  81. <STYLE type="text/css">
  82. <!--
  83. BODY { font-size: 8pt; font-family: Verdana, Arial; text-decoration: none }
  84. -->
  85. </STYLE>
  86. </HEAD> 
  87. <BODY> 
  88. <B>Brak dostępu</B>
  89. <P>Sprawdź czy poprawnie wpisałeś Login i Hasło</P> 
  90. <A href="javascript:history.go(-1)">powrót</A>
  91. </BODY> 
  92. </HTML> 
  93. <?php 
  94. exit; 
  95. }
  96.  
  97. $kto = mysql_result($result,0,'login');
  98. ?>
  99.  
  100. <?php ob_end_flush(); ?>
  101. <HTML> 
  102. <HEAD> 
  103. <TITLE>Strona zabezpieczona</TITLE> 
  104. </HEAD> 
  105. <BODY> 
  106. <P>Witaj, <?=$kto?>! Ta informacja jest poufna</P> 
  107. </BODY> 
  108. </HTML>



skrypt logowania
odrazu przenosi
do

  1. </STYLE>
  2. </HEAD> 
  3. <BODY> 
  4. <B>Brak dostępu</B>
  5. <P>Sprawdź czy poprawnie wpisałeś Login i Hasło</P> 
  6. <A href="javascript:history.go(-1)">powrót</A>
  7. </BODY> 
  8. </HTML> 
  9. <?php 
  10. exit; 
  11. }
  12. ?>


co jest
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
b_chmura
post 12.09.2007, 19:12:09
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


ponieważ żaden inny warunek oprócz:
if (mysql_num_rows($result) == 0)
nie jest spełniony...

popracuj trochę i logicznie poukładaj instrukcje if
Go to the top of the page
+Quote Post
endriut
post 13.09.2007, 20:11:55
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 14.05.2007

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


własnie kombinuje i nic sad.gif

ktoś pomoże
Go to the top of the page
+Quote Post
Berkovits
post 13.09.2007, 22:41:24
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2007

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


Jestem poczatkujacy, ale z checia pomoge (jesli potrafie).
Nie rozumiem tego fragmentu:
  1. <small> Musisz sie zalogować aby mieć dostęp do strony</small>
  2. <FORM method="post" action="<?=$_SERVER['PHP_SELF']?>">
  3. <TABLE border="0" cellpadding="0" cellspacing="5">


php otrzyma polecenie: =$_SERVER['PHP_SELF'], ktore nie wiem, co mialoby znaczyc. Chyba raczej trzebaby zrobic:
  1. <FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

Podejrzyj sobie zrodlo strony wygenerowanej przez ten skrypt, czy jest tak, jakbys chcial.
Choc z drugiej strony jesli wartosc action w <form> jest pusta, to chyba przekierowuje do skryptu, w ktorym jest formularz, wiec chyba jest OK (ale wtedy nie potrzeba zupelnie tej wstawki).

Tak a propos, wystrzegaj sie skroconego zapisu: <? skrypt ?> i uzywaj raczej <?php skrypt ?>. Ja kiedys napisalem strone i wszystko dzialalo, ale gdy przenosilem na inny serwer, musialem wszystko zmieniac, bo wyskakiwal blad (to chyba od ustawienia parsera php zalezy, czy dopuszcza skrocony zapis).

Nie znam uzywanych przez ciebie procedur komunikacji z baza danych (ucze sie PDO), ale jakos brakuje mi czegos w stylu mysql_connect(baza, login, haslo); Moze do tego jest dbConnect("absolwenci")...

Ponadto nie robilbym tak:
  1. <?php
  2. if (isset($_POST['login'])) { 
  3. $login = $_POST['login']; 
  4. } else { 
  5. $login = $_SESSION['login']; 
  6. }
  7. ?>

Na niektorych serwerach (np. na tym, z ktorym mam do czynienia) wyskoczylby blad, ze uzywasz zmiennej ($_SESSION['login']), ktorej nie ma. Lepiej zrobic by tak:
  1. <?php
  2. if (isset($_POST['login'])) $login = $_POST['login']; 
  3. else if (isset($_SESSION['login'])) $login = $_SESSION['login'];
  4. ?>


Jesli napisalem jakas nieprawde, prosze mnie poprawic - tez sie czegos naucze.
Go to the top of the page
+Quote Post
qqrq
post 14.09.2007, 05:37:31
Post #5





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


Co znaczy komenda PASSWORD w zapytaniu:

  1. SELECT * FROM logow WHERE login = '$login' AND haslo = PASSWORD('$haslo')


Nie powinno aby być:


  1. SELECT * FROM logow WHERE login = '$login' AND haslo = '$haslo'


questionmark.gif


--------------------
Go to the top of the page
+Quote Post
endriut
post 14.09.2007, 07:01:40
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 14.05.2007

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


to zakodowana zmienna $haslo , nadal czy wprowadze jakies dane czy nie : Brak dostępu
Sprawdź czy poprawnie wpisałeś Login i Hasło
Go to the top of the page
+Quote Post
.radex
post 14.09.2007, 07:29:54
Post #7





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


~Berkovits - <?= oznacza <?php echo

Albo to:

else if (isset($_SESSION['login'])) $login = $_SESSION['login'];

będzie, bo właśnie ją deklarujesz, po za tym jeśli wyskakują błędy starczy zrobić:

error_reporting(E_ALL ^ E_NOTICE);


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
endriut
post 14.09.2007, 13:03:48
Post #8





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 14.05.2007

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


błedy mi nie wyskakują żadne, juz nic nie wiem

Pomoże mi ktoś chociaz jakies nakierowanie małe no. Oto chodzi ze kiedys mi to chodzilo i juz nie wiem co jest :/
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:35