Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja/logowanie
Forum PHP.pl > Forum > Przedszkole
Pigwa
Witam

Posiadam długo szukany skryp rejestracji i logowania, ale nie umie go wykorzystać ;(
tzn.: nie wiem jak go skonfigurować i jak wstawić do indexu.php ramke gdzie sie wpisuje login i hasło (tak jak wszędzie) Proszę o pomoc w skonfigurowaniu(co gdzie mam wpisać)

O to on (w 4plikach):

Plik config.php
Kod
<?

//Ustawienienia

$cookie_expire = 60*60*24*30;

//Ustawienia polaczenia do bazy danych

$db_host = 'localhost';

$db_user = 'user';

$db_pass = 'haslo';

$db_name = 'nazwa';



//Polaczenie z baza danych

if (!@mysql_connect($db_host, $db_user, $db_pass)) {

            echo 'Polaczenie z baza danych jest chwilowo nie mozliwe.';

            exit;

}

if (!@mysql_select_db($db_name)) {

            echo 'Polaczenie z baza danych jest chwilowo nie mozliwe.';

            exit;

}



//Tabele bazy danych

$prefix = '';

$users_tbl = $prefix.'users';



//Sesja

session_start();



//Podpiecie niezbednych plikow

include('funkcje.php');

?>


Plik funkcje.php
Kod
<?

//Blad logowania

function zle_logowanie() {

            header("Location: zle_logowanie.php");

}



//Logowanie i weryfikacja uzytkownika

function dostep($log) {

            global $users_tbl, $cookie_expire;

            if (!empty($_SESSION['nick'])) {

                        $query = "SELECT * FROM $users_tbl WHERE nick='{$_SESSION['nick']}'";

                        $result = mysql_query($query) or die(mysql_error());

                        $ile = mysql_num_rows($result);

                        $r = mysql_fetch_array($result);

                        

                        if ($ile == 1) {

                                   if ($r['nick'] === $_SESSION['nick'] && $r['pass'] === $_SESSION['pass']) {

                                               if ($r['admin'] == 'tak') { return 'admin'; }

                                               else { return 'user'; }

                                   }

                        }

            } elseif (!empty($_COOKIE['miesiac']) && empty($_SESSION['nick'])) {

                        $ciastko = explode(chr(15), $_COOKIE['miesiac']);

                        

                        $query = "SELECT * FROM $users_tbl WHERE nick='{$ciastko[0]}'";

                        $result = mysql_query($query) or die(mysql_error());

                        $ile = mysql_num_rows($result);

                        $r = mysql_fetch_array($result);

                        

                        if ($ile == 1) {

                                   if ($r['nick'] === $ciastko[0] && $r['pass'] === $ciastko[1]) {

                                               $_SESSION['nick'] = $r['nick'];

                                               $_SESSION['pass'] = $r['pass'];

                                              

                                               $q = "UPDATE $users_tbl SET last_log=now() WHERE nick='{$r['nick']}'";

                                               $re = mysql_query($q) or die(mysql_error());

                                                          

                                               if ($r['admin'] == 'tak') { return 'admin'; }

                                               else { return 'user'; }

                                   }

                        }

            } else {

                        if ($_POST['p'] == 1 && !empty($_POST['nick']) && !empty($_POST['pass'])) {

                                   $query = "SELECT * FROM $users_tbl WHERE nick='{$_POST['nick']}'";

                                   $result = mysql_query($query) or die(mysql_error());

                                   $ile = mysql_num_rows($result);

                                   $r = mysql_fetch_array($result);

                                  

                                   if ($ile == 1) {

                                               if ($r['nick'] === $_POST['nick'] && $r['pass'] === md5($_POST['pass'])) {

                                                           $_SESSION['nick'] = $r['nick'];

                                                           $_SESSION['pass'] = $r['pass'];

                                                          

                                                           if ($_POST['auto'] == 'tak') { setcookie("miesiac", $r['nick'].chr(15).$r['pass'], time()+$cookie_expire); }

                                                          

                                                           $q = "UPDATE $users_tbl SET last_log=now() WHERE nick='{$r['nick']}'";

                                                           $re = mysql_query($q) or die(mysql_error());

                                                          

                                                           header("Location: index.php");

                                               } else {

                                                           zle_logowanie();

                                               }

                                   } else {

                                               zle_logowanie();

                                   }

                        } elseif ($_POST['p'] == 1 && (empty($_POST['nick']) || empty($_POST['pass']))) {

                                   zle_logowanie();

                        } elseif ($log == 'tak') {

                                   echo '

                                   <form action=login.php method=post>

                                   <table width=100% collspacing=0 cellpadding=0>

                                               <tr>

                                                           <td colspan=2>Logowanie:</td>

                                               </tr>

                                               <tr>

                                                           <td colspan=2><img border=0 src=Obrazki/kreska_poprzeczna.gif width=100% height=3></td>

                                               </tr>

                                               <tr>

                                                           <td width=120>Login:</td><td><input style="width: 134; height: 18" type=text name=nick></td>

                                               </tr>

                                               <tr>

                                                           <td width=120>Hasło:</td><td><input style="width: 134; height: 18" type=password name=pass></td>

                                               </tr>

                                               <tr>

                                                           <td width=120>Loguj automatycznie:</td><td><input type=checkbox name=auto value=tak>&nbsp;&nbsp;&nbsp;<input type=hidden name=p value=1><input type=submit value=Zaloguj></td>

                                               </tr>

                                   </table>

                                   </form>';

                                  

                                   return 'anonim';

                        }

            }

}



if ($_GET['dzial'] == 'Wyloguj') {

            session_destroy();

            setcookie("miesiac");

            header("Location: index.php");

}

?>


Plik login.php
Kod
<?

include('config.php');



dostep('nie');

?>


Plik zle_logowanie.php
Kod
Podales nieprawidłowe dane, logowanie nie powiodło się.
Wieviór
Popróbuj trochę sam pomyśleć. Ja może pomogę jak dasz we właściwe znaczniki BB czyli "php", bo o tym tu mowa tongue.gif biggrin.gif
Pigwa
Plik config.php
  1. <?
  2.  
  3. //Ustawienienia
  4.  
  5. $cookie_expire = 60*60*24*30;
  6.  
  7.  //Ustawienia polaczenia do bazy danych
  8.  
  9. $db_host = 'localhost';
  10.  
  11. $db_user = 'user';
  12.  
  13. $db_pass = 'haslo';
  14.  
  15. $db_name = 'nazwa';
  16.  
  17.  
  18.  
  19. //Polaczenie z baza danych
  20.  
  21. if (!@mysql_connect($db_host, $db_user, $db_pass)) {
  22.  
  23.             echo 'Polaczenie z baza danych jest chwilowo nie mozliwe.';
  24.  
  25.             exit;
  26.  
  27. }
  28.  
  29. if (!@mysql_select_db($db_name)) {
  30.  
  31.             echo 'Polaczenie z baza danych jest chwilowo nie mozliwe.';
  32.  
  33.             exit;
  34.  
  35. }
  36.  
  37.  
  38.  
  39. //Tabele bazy danych
  40.  
  41. $prefix = '';
  42.  
  43. $users_tbl = $prefix.'users';
  44.  
  45.  
  46.  
  47. //Sesja
  48.  
  49.  
  50.  
  51.  
  52. //Podpiecie niezbednych plikow
  53.  
  54. include('funkcje.php');
  55.  
  56. ?>


Plik funkcje.php
  1. <?
  2.  
  3. //Blad logowania
  4.  
  5. function zle_logowanie() {
  6.  
  7.             header(&#092;"Location: zle_logowanie.php\");
  8.  
  9. }
  10.  
  11.  
  12.  
  13. //Logowanie i weryfikacja uzytkownika
  14.  
  15. function dostep($log) {
  16.  
  17.             global $users_tbl, $cookie_expire;
  18.  
  19.             if (!empty($_SESSION['nick'])) {
  20.  
  21.                         $query = &#092;"SELECT * FROM $users_tbl WHERE nick='{$_SESSION['nick']}'\";
  22.  
  23.                         $result = mysql_query($query) or die(mysql_error());
  24.  
  25.                         $ile = mysql_num_rows($result);
  26.  
  27.                         $r = mysql_fetch_array($result);
  28.  
  29.                         
  30.  
  31.                         if ($ile == 1) {
  32.  
  33.                                    if ($r['nick'] === $_SESSION['nick'] && $r['pass'] === $_SESSION['pass']) {
  34.  
  35.                                                if ($r['admin'] == 'tak') { return 'admin'; }
  36.  
  37.                                                else { return 'user'; }
  38.  
  39.                                    }
  40.  
  41.                         }
  42.  
  43.             } elseif (!empty($_COOKIE['miesiac']) && empty($_SESSION['nick'])) {
  44.  
  45.                         $ciastko = explode(chr(15), $_COOKIE['miesiac']);
  46.  
  47.                         
  48.  
  49.                         $query = &#092;"SELECT * FROM $users_tbl WHERE nick='{$ciastko[0]}'\";
  50.  
  51.                         $result = mysql_query($query) or die(mysql_error());
  52.  
  53.                         $ile = mysql_num_rows($result);
  54.  
  55.                         $r = mysql_fetch_array($result);
  56.  
  57.                         
  58.  
  59.                         if ($ile == 1) {
  60.  
  61.                                    if ($r['nick'] === $ciastko[0] && $r['pass'] === $ciastko[1]) {
  62.  
  63.                                                $_SESSION['nick'] = $r['nick'];
  64.  
  65.                                                $_SESSION['pass'] = $r['pass'];
  66.  
  67.                                                
  68.  
  69.                                                $q = &#092;"UPDATE $users_tbl SET last_log=now() WHERE nick='{$r['nick']}'\";
  70.  
  71.                                                $re = mysql_query($q) or die(mysql_error());
  72.  
  73.                                                            
  74.  
  75.                                                if ($r['admin'] == 'tak') { return 'admin'; }
  76.  
  77.                                                else { return 'user'; }
  78.  
  79.                                    }
  80.  
  81.                         }
  82.  
  83.             } else {
  84.  
  85.                         if ($_POST['p'] == 1 && !empty($_POST['nick']) && !empty($_POST['pass'])) {
  86.  
  87.                                    $query = &#092;"SELECT * FROM $users_tbl WHERE nick='{$_POST['nick']}'\";
  88.  
  89.                                    $result = mysql_query($query) or die(mysql_error());
  90.  
  91.                                    $ile = mysql_num_rows($result);
  92.  
  93.                                    $r = mysql_fetch_array($result);
  94.  
  95.                                    
  96.  
  97.                                    if ($ile == 1) {
  98.  
  99.                                                if ($r['nick'] === $_POST['nick'] && $r['pass'] === md5($_POST['pass'])) {
  100.  
  101.                                                            $_SESSION['nick'] = $r['nick'];
  102.  
  103.                                                            $_SESSION['pass'] = $r['pass'];
  104.  
  105.                                                            
  106.  
  107.                                                            if ($_POST['auto'] == 'tak') { setcookie(&#092;"miesiac\", $r['nick'].chr(15).$r['pass'], time()+$cookie_expire); }
  108.  
  109.                                                            
  110.  
  111.                                                            $q = &#092;"UPDATE $users_tbl SET last_log=now() WHERE nick='{$r['nick']}'\";
  112.  
  113.                                                            $re = mysql_query($q) or die(mysql_error());
  114.  
  115.                                                            
  116.  
  117.                                                            header(&#092;"Location: index.php\");
  118.  
  119.                                                } else {
  120.  
  121.                                                            zle_logowanie();
  122.  
  123.                                                }
  124.  
  125.                                    } else {
  126.  
  127.                                                zle_logowanie();
  128.  
  129.                                    }
  130.  
  131.                         } elseif ($_POST['p'] == 1 && (empty($_POST['nick']) || empty($_POST['pass']))) {
  132.  
  133.                                    zle_logowanie();
  134.  
  135.                         } elseif ($log == 'tak') {
  136.  
  137.                                    echo '
  138.  
  139.                                    <form action=login.php method=post>
  140.  
  141.                                    <table width=100% collspacing=0 cellpadding=0>
  142.  
  143.                                                <tr>
  144.  
  145.                                                            <td colspan=2>Logowanie:</td>
  146.  
  147.                                                </tr>
  148.  
  149.                                                <tr>
  150.  
  151.                                                            <td colspan=2><img border=0 src=Obrazki/kreska_poprzeczna.gif width=100% height=3></td>
  152.  
  153.                                                </tr>
  154.  
  155.                                                <tr>
  156.  
  157.                                                            <td width=120>Login:</td><td><input style=\"width: 134; height: 18\" type=text name=nick></td>
  158.  
  159.                                                </tr>
  160.  
  161.                                                <tr>
  162.  
  163.                                                            <td width=120>Hasło:</td><td><input style=\"width: 134; height: 18\" type=password name=pass></td>
  164.  
  165.                                                </tr>
  166.  
  167.                                                <tr>
  168.  
  169.                                                            <td width=120>Loguj automatycznie:</td><td><input type=checkbox name=auto value=tak>&nbsp;&nbsp;&nbsp;<input type=hidden name=p value=1><input type=submit value=Zaloguj></td>
  170.  
  171.                                                </tr>
  172.  
  173.                                    </table>
  174.  
  175.                                    </form>';
  176.  
  177.                                    
  178.  
  179.                                    return 'anonim';
  180.  
  181.                         }
  182.  
  183.             }
  184.  
  185. }
  186.  
  187.  
  188.  
  189. if ($_GET['dzial'] == 'Wyloguj') {
  190.  
  191.             session_destroy();
  192.  
  193.             setcookie(&#092;"miesiac\");
  194.  
  195.             header(&#092;"Location: index.php\");
  196.  
  197. }
  198.  
  199. ?>

[
Plik login.php
  1. <?
  2.  
  3. include('config.php');
  4.  
  5.  
  6.  
  7. dostep('nie');
  8.  
  9. ?>


Plik zle_logowanie.php
  1. <?php
  2.  
  3. Podales nieprawidłowe dane, logowanie nie powiodło się.
  4.  
  5. ?>


nie znam sie wogóle na php więc sam nic nie wymyśle sad.gif
Ale może Ktoś z forum mi podpowie...

EDIT: przynajmniej już wiem co to są zmienne rolleyes.gif
Coyote
z tego co widze to ten skrypt to nic skaplikowanego ... jak bede w domku tak za 2 godzinki to siade i napisze ci dokladnie jak to zrobic tylko wczesniej sam go przetestuje .... i dam znac ...
Vertical
Cytat
jak wstawić do indexu.php ramke gdzie sie wpisuje login i hasło

...tam gdzie masz fragment z HTML świadczący o tym, że dany input służy do wpisania nazwy użytkownika albo hasła i jest tam też submit, to znaczy, że to jest formularz przesyłający dane o użytkowniku i haśle, które będą Ci potrzebne do zalogowania. A gdzie je wkleić? W index.php tam, gdzie chcesz mieć skrypt logowania.
Cytat
nie znam sie wogóle na php więc sam nic nie wymyśle
Ale może Ktoś z forum mi podpowie...

EDIT: przynajmniej już wiem co to są zmienne 

Skoro nie znasz się na php, to nawet jeśli Ci podpowiemy, to niewiele zrozumiesz... Po prostu naucz się podstaw, to wtedy będziesz mógł samodzielnie korzystać z takich skryptów zamiast za każdym razem pytać się na forum o co chodzi
Pigwa
Rozumiem przez to że w index.php należy wstawić tylko to: TAK?
  1. <?php
  2.  
  3.  <form action=login.php method=post>
  4.  
  5.                                    <table width=100% collspacing=0 cellpadding=0>
  6.  
  7.                                                <tr>
  8.  
  9.                                                            <td colspan=2>Logowanie:</td>
  10.  
  11.                                                </tr>
  12.  
  13.                                                <tr>
  14.  
  15.                                                            <td colspan=2><img border=0 src=Obrazki/kreska_poprzeczna.gif width=100% height=3></td>
  16.  
  17.                                                </tr>
  18.  
  19.                                                <tr>
  20.  
  21.                                                            <td width=120>Login:</td><td><input style=&#092;"width: 134; height: 18\" type=text name=nick></td>
  22.  
  23.                                                </tr>
  24.  
  25.                                                <tr>
  26.  
  27.                                                            <td width=120>Hasło:</td><td><input style=&#092;"width: 134; height: 18\" type=password name=pass></td>
  28.  
  29.                                                </tr>
  30.  
  31.                                                <tr>
  32.  
  33.                                                            <td width=120>Loguj automatycznie:</td><td><input type=checkbox name=auto value=tak>&nbsp;&nbsp;&nbsp;<input type=hidden name=p value=1><input type=submit value=Zaloguj></td>
  34.  
  35.                                                </tr>
  36.  
  37.                                    </table>
  38.  
  39.                                    </form>
  40.  
  41. ?>

Jak wstawiłem powyższy kod to mi wyświetliło tabelke logowania smile.gif bez możliwości zarejestrowania sad.gif

I jeszcze jedno pytanko tongue.gif
Czy w pliku config.php należy wypełnić dane:
  1. <?php
  2.  
  3. $db_host = 'localhost';
  4.  
  5. $db_user = 'user';
  6.  
  7. $db_pass = 'haslo';
  8.  
  9. $db_name = 'nazwa';
  10.  
  11. ?>

A podstaw sie zaczynam uczyć biggrin.gif
Wieviór
Tak trzeba, bo inaczej nie połaczy się z bazą. A zrobiłeś w ogóle tabele w Bazie danych?
Pigwa
Cytat(Wieviór @ 2005-02-26 14:51:20)
Tak trzeba, bo inaczej nie połaczy się z bazą. A zrobiłeś w ogóle tabele w Bazie danych?

Nie zrobiłem tabeli bo nie wiem jak tongue.gif

a wracając do wypełnienia w pliku config.php to chyba to nie jest zbyt bezpieczne bo przecież łatwo można uzyskać hasło np.:
www.costam.pl/rejestracja/config.php-->źródło i wszystko wyświetlone łącznie z hasłem withstupidsmiley.gif
shizo
Nie jest wyświetlone. Zobacz sam. smile.gif php to nie to samo co HTML, gdzie HTML wykonuje się po stronie przeglądarki. php, "zamienia" własny kod na HTML. (takie wieeeeeelkie uogólnienie winksmiley.jpg )
Pigwa
Eh... już wiem jak skonfigórować tongue.gif wydałem na te info 5zł angrysmiley.gif
thx za odpowiedzi axesmiley.png
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.