Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dodatkowe komendy do skryptu
Forum PHP.pl > Forum > Przedszkole
Nocek
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 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. ?>
Kszyhuu
Cytat(Nocek @ 26.08.2009, 19:07:56 ) *
Przy okazji prosiłbym o skrypt wylogowania 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. smile.gif
Pawel_W
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"] winksmiley.jpg
Nocek
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 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?
Pawel_W
  1. header('Location: ' . www.kredyt.hostzi.com);

zamien na
  1. header('Location: www.kredyt.hostzi.com');
Nocek
Tak było wpisane, ale ten skrypt mnie nie wylogowywuje.
Pawel_W
sprawdź czy wogóle to co jest między ifem się wykonuje, wstaw tam jakieś echo winksmiley.jpg

jeżeli się nie wykonuje to rzeczywiście nie ma $_GET
Nocek
  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
Pawel_W
tak, adres musi wyglądać tak: jakis_adres?logout=byleco winksmiley.jpg
Nocek
Niestety nic mi to nie mówi, mógłbyś jaśniej?
Pawel_W
wklej sobie gdzieś tam taki kod:
  1. echo '<a href="'.$_SERVER['REMOTE_ADDR'].$_SERVER['SCRIPT_NAME'].'?logout=logout">wyloguj</a>";

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