Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> Logowanie na strone...
tinware
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Witajcie.

Zrobiłem dzisiaj logowanie na stronę, ale jest jakiś problem z zalogowaniem, pomożecie w poprawieniu kodu?
---------------

Strona dla oglądających:
Cytat


Panel administracyjny:
Cytat



----------------

Kod: index.php
Cytat


Ten post edytował tinware 15.02.2011, 21:57:54
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




blink.gif

1) Jaki problem??
2) Jaki kod?? Czy naprawdę musimy go ściągać z jakiejś strony? Nie możesz go podać? Nie możesz go przynajmniej wkleic do pasebin czy innej takiej strony
3) Przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tinware
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Po zakonczonej rejestracji nie można się zalogować, występuję błąd. Kod wstawiłem, ale nie chciało dodać mi posta bo był on zbyt długi więc wstawiłem to jako plik.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dlatego powiedzialem, byś wstawił to np. na pastebin
http://pastebin.pl/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Prezi2907
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

Ostrzeżenie: (10%)
X----


Jak wyżej nie będą ludzie pobierać z sieci tego kodu... Na moje jak loguje się to złe sprawdzanie. Albo gdzie zrobiłeś kodowanie mp5() to podczas wysyłania do serwera zapytania czy istnieje user z LOGINEM[x] ... To czy istnieje on z hasłem nie np login10 pass10 tylko login10 mp5(pass10) ....

Tak z reki dałem możliwość choć widzę że chyba nie kodujesz tego bo w tej tabeli masz podane zwykłe wartości...

Najprostrze zapytanie SQL sprawdzające czy dany user istnieje to

  1.  
  2. $spr = "SELECT*FROM users WHERE login='".$_POST['login']."' AND pass='".$_POST['pass']."'";
  3. $sprawdz = mysql_query($spr);
  4.  
  5. if(mysql_fetch_array($sprawdz) !== false )
  6. echo 'ZALOGOWAŁEŚ SIĘ JAKO '.$_POST['login'];
  7. else
  8. echo 'PODAŁEŚ ZŁE DANE';


Mogę się mylić co do składni ale sens jest zawarty chodzi o to by ze sobą połączyć te dwie wysyłane informacje ... jeśli istnieje taki user z hasłem to sprawa załatwiona... Po drugie w przypadku loginu i hasła zrób sobie to etapowo. Sprawdź login czy istnieje a później hasło czy istnieje jak oba są ok to później na siłe możesz jeszcze porównać hasło z loginem i wiesz na którym momencie pada Ci logowanie... Nic prostszego... smile.gif Podaj kod z loginu a na bank pomogę smile.gif
Go to the top of the page
+Quote Post
tinware
post
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Cytat(nospor @ 15.02.2011, 21:50:43 ) *
Dlatego powiedzialem, byś wstawił to np. na pastebin
http://pastebin.pl/


Zrobione:
Cytat
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przy rejestracji wkladasz hasło w postaci jawnej (niehashowanej) a przy logowaniu sprawdzasz hasło hashowane.
od kiedy hash ma się rownać postaci niehashowanej?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tinware
post
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Cytat(Prezi2907 @ 15.02.2011, 21:57:04 ) *
Podaj kod z loginu a na bank pomogę smile.gif

Już podaje cały index.php na pastebin. Przepraszam za całe zamieszanie, jestem tutaj nowy. Słabo znam php, ale moja upartość pozwoliła napisać mi stronę, nauczyć tworzenia formularzy i wysyłania ich do bazy. Tak, hasło to nie jest kodowane. Oto tabela wgrana do bazy:

Kod
CREATE TABLE `Users` (
`nr` int(9) auto_increment,
`data` text,
`login` text,
`haslo` text,
`email` text,
`gg` text,
`imie` text,
`nazwisko` text,
`pseudonim` text,
`miejscowosc` text,
`data_urodzenia_dzien` text,
`data_urodzenia_miesiac` text,
`data_urodzenia_rok` text,
KEY `nr` (`nr`)
) TYPE=MyISAM AUTO_INCREMENT=1;
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Tak, hasło to nie jest kodowane. Oto tabela wgrana do bazy:
To wiem. Sam ci to powiedziałem. I tu masz problem.
Bo jesli nie kodujesz hasla to i przy logowaniu go nie koduj
Albo koduj i tu i tu. No to przecież logiczne.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tinware
post
Post #10





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Rozumiem, czy więc pomożesz mi tak aby podczas logowania hasło nie było kodowane?
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ponoć sam to napisałes.... to powinienes wiedziec,ze to:
$haslo = sha1($haslo);
hashuje wlasnie hasło. Skoro więc nie chcesz hashować to wywal tę linijkę.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

Ostrzeżenie: (10%)
X----


Pozwolę sobie zwrócić uwagę na kod...
  1. echo '<TR><TD align="right">
  2. <br>
  3. <font color=red>*</font>
  4. Data ur.:</TD>
  5. <TD width="300">
  6. <br><select NAME="data_urodzenia_dzien" style="width: 45px"><option></option><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option><option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option></select> .
  7. <select NAME="data_urodzenia_miesiac" style="width: 45px"><option></option><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option><option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option></select> .
  8. <select NAME="data_urodzenia_rok" style="width: 60px"><option></option><option>1900</option><option>1901</option><option>1902</option><option>1903</option><option>1904</option><option>1905</option><option>1906</option><option>1907</option><option>1908</option><option>1909</option><option>1910</option><option>1911</option><option>1912</option><option>1913</option><option>1914</option><option>1915</option><option>1916</option><option>1917</option><option>1918</option><option>1919</option><option>1920</option><option>1921</option><option>1922</option><option>1923</option><option>1924</option><option>1925</option><option>1926</option><option>1927</option><option>1928</option><option>1929</option><option>1930</option><option>1931</option><option>1932</option><option>1933</option><option>1934</option><option>1935</option><option>1936</option><option>1937</option><option>1938</option><option>1939</option><option>1940</option><option>1941</option><option>1942</option><option>1943</option><option>1944</option><option>1945</option><option>1946</option><option>1947</option><option>1948</option><option>1949</option><option>1950</option><option>1951</option><option>1952</option><option>1953</option><option>1954</option><option>1955</option><option>1956</option><option>1957</option><option>1958</option><option>1959</option><option>1960</option><option>1961</option><option>1962</option><option>1963</option><option>1964</option><option>1965</option><option>1966</option><option>1967</option><option>1968</option><option>1969</option><option>1970</option><option>1971</option><option>1972</option><option>1973</option><option>1974</option><option>1975</option><option>1976</option><option>1977</option><option>1978</option><option>1979</option><option>1980</option><option>1981</option><option>1982</option><option>1983</option><option>1984</option><option>1985</option><option>1986</option><option>1987</option><option>1988</option><option>1989</option><option>1990</option><option>1991</option><option>1992</option><option>1993</option><option>1994</option><option>1995</option><option>1996</option><option>1997</option><option>1998</option><option>1999</option><option>2000</option><option>2001</option><option>2002</option><option>2003</option><option>2004</option><option>2005</option><option>2006</option><option>2007</option><option>2008</option><option>2009</option><option>2010</option><option>2011</option> &nbsp [DD.MM.RRRR]
  9. </TD>
  10. </TR>';
  11.  


WOW a można po prostu zrobić...
  1. echo '<TR><TD align="right"><br><font color=red>*</font>Data ur.:</TD><TD width="300px">
  2. <br>
  3. <select name="data_urodzenia_dzien" style="width: 45px">
  4. <option><option>';
  5. for ($n = 1 ; $n == 31 ; $n++){
  6. echo '<option value="'.$n.'">'.$n.'</option>';
  7. }
  8. </select>
  9. <select name="data_urodzenia_miesiac" style="width: 45px"><option></option>
  10. for($m = 1 ; $m==9 ; $m++){ //najpierw 9 pierwszych miesięcy z 0 na początku
  11. echo '<option value="0'.$m.'">0'.$m.'</option>';
  12. }
  13. for($m = 10; $m == 12 ; $m++)
  14. {
  15. echo '<option value="'.$m'">'.$m'</option>';
  16. }
  17. echo '</select>
  18. <select name="data_urodzenia_rok" style="width: 60px"><option></option>';
  19. for($r = 1900; $r == 2000 ; $r++){
  20. echo '<option value="'.$r.'">'.$r.'</option>';
  21. }
  22. echo '</select>&nbsp [DD.MM.RRRR]</td></tr>';

I tak jak cała reszta kodu wiesz że gdzieś dzwoni ale nie wiesz w którym kościele i jak głośno...

Polecam poczytać o pętlach jak tworzysz formularze ... Pomagają bardzo i przyspieszają znacznie przeładowywanie stron... Dodatkowo poczytaj o zabezpieczeniach bo po 5 minutach w kodzie wiem jak wykasować Ci całą bazę smile.gif Ale to już poczytaj a kod wklep zamiast tej paplaniny długiej...

Poczytaj o kodowaniu w sh1() i md5() a później o działaniu ich w bazie danych...
Dla sprostowania napisze Ci po krótce o tym.

Polecenie INSERT wysyła nam kod do bazy danych w odpowiednie miejsca teraz stosując zapytanie typu

  1. $register = "INSERT INTO s_users values(NULL,'".$login."','".sha1($r_pass)."')";

To wrzucasz zakodowane hasło w sh1();

A jeżeli zrobisz takie zapytanie
  1. $register = "INSERT INTO s_users values(NULL,'".$login."','".$r_pass."')";


To NIE kodujesz hasła i można je porównywać normalnie bez żadnych dodatkowych myków...

Teraz aby porównać zakodowane hasło (tak nie pobrać tylko porównać) - bo kodując w sh1() nie odkodowujesz hasła a porównujesz czy zakodowane zmienne string są takie same - musimy wysłać mu przekształconego stringa przez funkcje sh1() ... Spróbuje ci to pokazać na kodzie i zwróć uwagę gdzie zawarta jest funkcja sh1() która przekształci nam stringa w zakodowaną formę i dopiero porówna...
[php]
$login = "SELECT*FROM s_users WHERE login='".$login."' pass="'.sh1($r_pass).'" ";
[php]
I to cała logika...

Musisz pamiętać o fakcie iż jeżeli kodujesz dane i później wysyłasz je do bazy to nie można odczytywać ich bez kodowania danych które chcesz porównać bez ich kodowania...

Mam nadzieje że trochę Ci to rozjaśni całą sprawę...
Go to the top of the page
+Quote Post
tinware
post
Post #13





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Poprawiłem kod, logowanie przebiega pomyślnie. Jakim kodem i w którym miejscu mam stworzyć aby część strony ?go=page była widoczna tylko dla zalogowanych, a a dla nie zalogowanych komunikat: "musisz zalogowac sie aby ogladac ta czesc strony" ?

Prezi2907, rozumiem w czym mój błąd.

Ten post edytował tinware 15.02.2011, 22:45:22
Go to the top of the page
+Quote Post
potreb
post
Post #14





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

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


Kodem:
  1. if(isset($_SESSION['isauth']) && $_SESSION['isauth'] != 1)) die("Dostęp do tej strony jest zablokowany dla hakierów");


--------------------

Go to the top of the page
+Quote Post
tinware
post
Post #15





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Cytat(potreb @ 15.02.2011, 22:47:07 ) *
Kodem:
  1. if(isset($_SESSION['isauth']) && $_SESSION['isauth'] != 1)) die("Dostęp do tej strony jest zablokowany dla hakierów");

W jaki sposób mam go przyłączyć tutaj?
  1. if ($_GET['go'] == 'page') {
  2. echo "<b>Strona:</b><br><br><br>";
  3. echo "Tutaj znajduje się jeden z działów strony wywołany adresem ?go=page<br>Treści te powinny być widoczne tylko dla zarejestrowanych i zalogowanych osób.<br>W innym razie powinien pokazać się napis, że nie jesteśmy zarejestrowani i zalogowani i pod tym formularz rejestracji i logowania.";
  4. }
Go to the top of the page
+Quote Post
Prezi2907
post
Post #16





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

Ostrzeżenie: (10%)
X----


Cytat(tinware @ 15.02.2011, 22:57:58 ) *
W jaki sposób mam go przyłączyć tutaj?
  1. if ($_GET['go'] == 'page') {
  2. echo "<b>Strona:</b><br><br><br>";
  3. echo "Tutaj znajduje się jeden z działów strony wywołany adresem ?go=page<br>Treści te powinny być widoczne tylko dla zarejestrowanych i zalogowanych osób.<br>W innym razie powinien pokazać się napis, że nie jesteśmy zarejestrowani i zalogowani i pod tym formularz rejestracji i logowania.";
  4. }

Oj chłopie napisał Ci kolega wyżej jak sprawie zaradzić...

Na początku każdej strony do której dostęp mają mieć tylko zarejestrowani
  1. <?php
  2. if ($_SESSION['isauth'] == 1 || $_SESSION['isauth'] == "1" ) \\dla pewności...
  3. {
  4. echo 'User Autoryzowany, masz dostęp...';
  5. }
  6. else
  7. {
  8. die ("Strona wyłącznie dla zalogowanych użytkowników...");
  9. }
  10. ?>


Pozdrawiam

A i jeszcze jedno... Jak już jesteś w sesjach to poczytaj jak je zabezpieczać i nie używaj metody GET aby przesyłać ID... Bo wtedy musisz jeszcze sprawdzać czy nie została przechwycona sesja...

Ten post edytował Prezi2907 15.02.2011, 23:32:30
Go to the top of the page
+Quote Post
tinware
post
Post #17





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Mógłbym Cię prosić o sprawdzenie i wykrycie mojego błędu:

Cytat


Kod
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/a8731498/public_html/budowa/index.php on line 2
Go to the top of the page
+Quote Post
Prezi2907
post
Post #18





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

Ostrzeżenie: (10%)
X----


Wywal ten komentarz bo źle wpisałem smile.gif czyli te \\ i wszystko dalej smile.gif
Go to the top of the page
+Quote Post
tinware
post
Post #19





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Cytat(Prezi2907 @ 15.02.2011, 23:59:30 ) *
Wywal ten komentarz bo źle wpisałem smile.gif czyli te \\ i wszystko dalej smile.gif

Zrobiłem to w ten sposób:
http://pastebin.pl/36631

Zależało mi żeby strony logowania i rejestracji były widoczne dla niezalogowanych, a dla zalogowanych strona logowania i rejestracji pokazywal się napis: jestes juz zalogowany.

Część ?go=page oczywiście po zalogowaniu, ale jeśli zalogowani nie jesteśmy włącza się ?go=users_login
Go to the top of the page
+Quote Post
Prezi2907
post
Post #20





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

Ostrzeżenie: (10%)
X----


To jest kwestia manipulacji ta pętlą if i jej warunkiem...

Dla sprostowania tego co ci podałem nie używaj w register i index... W register w ogóle nie włączaj tegoa w login daj coś takiego...

  1. <?php
  2. if ($_SESSION['isauth'] == 1 || $_SESSION['isauth'] == "1" )
  3. {
  4. header("Refresh:3; URL=index.php");
  5. echo 'Jesteś zalogowany, za 3 sek. zostaniesz przekierowany na stronę główną...';
  6. }
  7. else
  8. {
  9. echo "Zaloguj się";
  10. }
  11. ?>


Analogicznie zmieniasz te sprawy dla każdej strony zależy co chcesz... no i redirect możesz robić do danego user itd... ale jak pisałemm nie wysyłaj danych o userze w GET bo to łatwo wykorzystać źle... Wymieniaj wszystko albo w post albo sesjami tak unikniesz włamań... GETEM wysyłaj najwyżej jakieś nazwy plików lub zmienne które może każdy widzieć... Kto się zna może łatwo podłączyć się pod dowolnego usera (np. pod administratora) i wszystko Ci wykasuje, zniszczy...

Pozdrawiam... Dalej radź sobie sam bo dałem Ci już dużo podstaw smile.gif Jak by były jakieś problemy składniowe to pisz z tym że nie na PW...

Ten post edytował Prezi2907 16.02.2011, 00:29:00
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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 Aktualny czas: 22.08.2025 - 06:11