Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Dodatkowe komendy do skryptu
Nocek
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


Skrypt, który zaraz przedstawię, służy do logowania aby móc się dostać do zablokowanych stron.

Jestem przedszkolakiem w php, tylko się domyślam co znaczą poszczególne linijki. Z tego co rozkminiam skrypt działa na rozpoznawaniu czy ktoś jest zalogowany lub nie, poprzez cookie (SETCOOKIE).

Sytuacja wygląda tak: jestem zalogowany na swojej stronie, jeśli znowu wchodzę na stronę logowania jest pusta, chciałbym aby rozpoznała że jestem zalogowany, i przekierowała mnie do określonej strony www, a nie jak dotychczas wyświetlała się pusta. Prosiłbym o treść kodu, oraz info w którym miejscu go wkleić.

Przy okazji prosiłbym o skrypt wylogowania (IMG:style_emoticons/default/smile.gif)

Treść skryptu:
  1. <?php
  2.  
  3. ######################
  4. # SETTINGS START
  5. ######################
  6.  
  7. // Add login/password pairs below, like described above
  8. // NOTE: all rows except last must have comma "," at the end of line
  9. $LOGIN_INFORMATION = array(
  10. 'xxx' => 'xxx',
  11. 'xxx' => 'xxx'
  12. );
  13.  
  14. // request login? true - show login and password boxes, false - password box only
  15. define('USE_USERNAME', true);
  16.  
  17. // User will be redirected to this page after logout
  18. define('LOGOUT_URL', 'http://www.google.pl');
  19.  
  20. // time out after NN minutes of inactivity. Set to 0 to not timeout
  21. define('TIMEOUT_MINUTES', 10);
  22.  
  23. // This parameter is only useful when TIMEOUT_MINUTES is not zero
  24. // true - timeout time from last activity, false - timeout time from login
  25. define('TIMEOUT_CHECK_ACTIVITY', true);
  26.  
  27. ######################
  28. # SETTINGS END
  29. ######################
  30.  
  31.  
  32. /////////////////////////////
  33. // do not change code below
  34. /////////////////////////////
  35.  
  36.  
  37. if(isset($_GET['help'])) {
  38. die('Include following code into every page you would like to protect, at the very beginning (first line):<br><?php include("' . str_replace('\\','\\\\',__FILE__) . '"); ?>');
  39. }
  40.  
  41.  
  42. $timeout = (TIMEOUT_MINUTES == 0 ? 0 : time() + TIMEOUT_MINUTES * 60);
  43.  
  44.  
  45. if(isset($_GET['logout'])) {
  46. setcookie("verify", '', $timeout, '/');
  47. header('Location: ' . LOGOUT_URL);
  48. exit();
  49. }
  50.  
  51. if(!function_exists('showLoginPasswordProtect')) {
  52.  
  53.  
  54. function showLoginPasswordProtect($error_msg) {
  55. ?>
  56. <html>
  57. <head>
  58. <title>Enter the MATRIX</title>
  59. <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
  60. <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
  61. </head>
  62. <body>
  63. <style>
  64. input { border: 1px solid black; }
  65. </style>
  66. <div style="width:500px; margin-left:auto; margin-right:auto; text-align:center">
  67. <form method="post">
  68. <font color="white"><h2 style="padding-top:40px";>Zaloguj się do <br /> MATRIX</h2></font>
  69. <font color="white"><?php echo $error_msg; ?></font>
  70. <?php if (USE_USERNAME) echo '<font color="white">Login:</font><br /><input type="input" name="access_login" /><br /><font color="white">Hasło:<font><br />'; ?>
  71. <input type="password" name="access_password" /><p></p><input type="submit" name="Submit" value="Submit" />
  72. </form>
  73.  
  74.  
  75.  
  76. <br />
  77.  
  78. </div>
  79. </body>
  80. </html>
  81.  
  82. <?php
  83.  
  84. die();
  85. }
  86. }
  87.  
  88.  
  89. if (isset($_POST['access_password'])) {
  90.  
  91. $login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
  92. $pass = $_POST['access_password'];
  93. if (!USE_USERNAME && !in_array($pass, $LOGIN_INFORMATION)
  94. || (USE_USERNAME && ( !array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass ) )
  95. ) {
  96. showLoginPasswordProtect("Błędne hasło.");
  97. }
  98. else {
  99.  
  100. setcookie("verify", md5($login.'%'.$pass), $timeout, '/');
  101. header("Location: matrix.php");
  102.  
  103. unset($_POST['access_login']);
  104. unset($_POST['access_password']);
  105. unset($_POST['Submit']);
  106. }
  107.  
  108. }
  109.  
  110. else {
  111.  
  112.  
  113. if (!isset($_COOKIE['verify'])) {
  114. showLoginPasswordProtect("");
  115. }
  116.  
  117.  
  118. $found = false;
  119. foreach($LOGIN_INFORMATION as $key=>$val) {
  120. $lp = (USE_USERNAME ? $key : '') .'%'.$val;
  121. if ($_COOKIE['verify'] == md5($lp)) {
  122. $found = true;
  123.  
  124. if (TIMEOUT_CHECK_ACTIVITY) {
  125. setcookie("verify", md5($lp), $timeout, '/');
  126. }
  127. break;
  128. }
  129. }
  130. if (!$found) {
  131. showLoginPasswordProtect("");
  132. }
  133.  
  134. }
  135.  
  136. ?>


Ten post edytował Nocek 26.08.2009, 23:39:33
Go to the top of the page
+Quote Post
Kszyhuu
post
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


Cytat(Nocek @ 26.08.2009, 19:07:56 ) *
Przy okazji prosiłbym o skrypt wylogowania (IMG:style_emoticons/default/smile.gif)

  1. if(isset($_GET['logout'])) {
  2. setcookie("verify", '', $timeout, '/');
  3. header('Location: ' . LOGOUT_URL);
  4. exit();
  5. }

Jak widać jako takie wylogowanie masz w tym pliku. Jeśli chodzi o sprawdzenie, czy jesteś zalogowany, czy nie, wystarczy wstawić ifa:
  1. if (isset($_COOKIE["verify"])){
  2. echo 'Jesteś zalogowany.';
  3. }
  4. else{
  5. echo 'TUTAJ WSTAWIASZ LOGOWANIE';
  6. }

Poza tym ten skrypt mi się nie podoba. Jak chcesz, to wrzucę tutaj mój, który napisałem dziś na kolanie do innego tematu.

Edit down: Mój błąd. Już poprawione. (IMG:style_emoticons/default/smile.gif)

Ten post edytował Kszyhuu 26.08.2009, 19:06:29
Go to the top of the page
+Quote Post
Pawel_W
post
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(Kszyhuu @ 26.08.2009, 20:00:26 ) *
  1. if(isset($_GET['logout'])) {
  2. setcookie("verify", '', $timeout, '/');
  3. header('Location: ' . LOGOUT_URL);
  4. exit();
  5. }

Jak widać jako takie wylogowanie masz w tym pliku. Jeśli chodzi o sprawdzenie, czy jesteś zalogowany, czy nie, wystarczy wstawić ifa:
  1. if (isset($_COOKIE["user"])){
  2. echo 'Jesteś zalogowany.';
  3. }
  4. else{
  5. echo 'TUTAJ WSTAWIASZ LOGOWANIE';
  6. }

Poza tym ten skrypt mi się nie podoba. Jak chcesz, to wrzucę tutaj mój, który napisałem dziś na kolanie do innego tematu.

nie $_COOKIE["user"] a $_COOKIE["verify"] (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Nocek
post
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


Cytat
Poza tym ten skrypt mi się nie podoba. Jak chcesz, to wrzucę tutaj mój, który napisałem dziś na kolanie do innego tematu.


Dziękuje, ten spełnia moje wymagania (IMG:style_emoticons/default/winksmiley.jpg) .


Dzięki za pomoc. Skrypt do wylogowywania nie działa. Pewnie brakuje w nim wartośći $_GET.

  1. <?
  2. if(isset($_GET['logout'])) {
  3. setcookie("verify", '', $timeout, '/');
  4. header('Location: ' . url);
  5. exit();
  6. }
  7. ?>


Na stronie kliknięcie w przycisk "Wyloguj", powinno spowodować wylogowanie oraz przemieszczenie do innej strony.
Jak w pełni powinien wyglądać ten skrypt?

Ten post edytował Nocek 26.08.2009, 22:41:57
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. header('Location: ' . www.kredyt.hostzi.com);

zamien na
  1. header('Location: www.kredyt.hostzi.com');
Go to the top of the page
+Quote Post
Nocek
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


Tak było wpisane, ale ten skrypt mnie nie wylogowywuje.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


sprawdź czy wogóle to co jest między ifem się wykonuje, wstaw tam jakieś echo (IMG:style_emoticons/default/winksmiley.jpg)

jeżeli się nie wykonuje to rzeczywiście nie ma $_GET
Go to the top of the page
+Quote Post
Nocek
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


  1. <?
  2. if(isset($_GET['logout']))
  3. {
  4. echo ('dziala');
  5. setcookie("verify", '', $timeout, '/');
  6. header('Location: www.kredyt.hostzi.com');
  7. exit();
  8. }
  9. ?>


Nie pokazuje echo, czyli nie nie spełnia warunku if. Więc chodzi o te $_GET ? ;p
Go to the top of the page
+Quote Post
Pawel_W
post
Post #9





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


tak, adres musi wyglądać tak: jakis_adres?logout=byleco (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Nocek
post
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


Niestety nic mi to nie mówi, mógłbyś jaśniej?
Go to the top of the page
+Quote Post
Pawel_W
post
Post #11





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


wklej sobie gdzieś tam taki kod:
  1. echo '<a href="'.$_SERVER['REMOTE_ADDR'].$_SERVER['SCRIPT_NAME'].'?logout=logout">wyloguj</a>";

Go to the top of the page
+Quote Post
Nocek
post
Post #12





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.08.2009

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


Napisz do mnie na gadu jak byś mógł. 1465765.
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: 23.08.2025 - 04:46