Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] logowanie uzytkownika problem z formularzem
--yeszie--
post 14.09.2008, 19:28:32
Post #1





Goście







Witam,
mam problem - nie wiem jak dokładnie powinny być napisane pola do autentykacji użytkownika.

user = admin
pass = 1234

Hasło jest zaszyfrowane w basie Mysql. Jest tez plik main.php do ktorego powinien przekierowac.

Czy moge prosic o pomoc w rozwiazaniu tego...?

  1. <?
  2.  
  3.  
  4.    $message="";
  5.                    
  6.  
  7. $login=$_POST['login'];
  8. if($login) {
  9.  
  10.  $uzytkownik=$_POST['uzytkownik'];
  11.  $md5_haslo=md5($_POST['haslo']);
  12.  
  13.  
  14.  
  15.  
  16.  $host="localhost";
  17.  $db_user="aaa";
  18.  $db_password="bbb";
  19.  $database="ccc";
  20.    mysql_connect($host,$db_user,$db_password);
  21.    mysql_select_db($database);
  22.  
  23.  $rezultat=mysql_query("select * FROM users WHERE uzytkownik='$uzytkownik' AND haslo='$md5_haslo'");
  24.    if(@mysql_num_rows($rezultat)){
  25.   session_register("uzytkownik");
  26.    header("locatio:main.php");
  27.  exit;
  28.  }else {
  29.  $message="Nieprawidłowa nazwa użytkownika lub hasło";
  30.  }
  31. }
  32. ?>
  33.  
  34.  
  35.  
  36.  
  37. <head>
  38.  
  39. <title>Dokument</title>
  40. </head>
  41.  <body>
  42. <? echo $message; ?>
  43. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  44.  
  45. <input name="uzytkownik" type="text" id="uzytkownik" />
  46. <input name="haslo" type="password" id="haslo" />
  47.  
  48. <input name="login" type="submit" id="login" value="login" />
  49. </form>
  50. </body>
  51. </html>
Powód edycji: Poprawiłem tyuł oraz dodałem bbcode. /webdice
Go to the top of the page
+Quote Post
matx132
post 14.09.2008, 19:33:00
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


jednego nie rozumiem

session_start();

session_destroy();

po co tworzysz sesje a po chwili ja niszczysz??
nastepna rzecz jest cos takiego na forum jak [php][/php]
a ostatnia rzecz jaki masz bład?
co sie dzieje
Go to the top of the page
+Quote Post
yeszie
post 14.09.2008, 19:47:33
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


Wszystko skopiowane stad

http://www.egrafik.pl/phpmysql-prosty-syst...owania,880.html

nie wiem mysle ze nawet jak usune te sesje nic to nie zmieni
nastepnym razem poprawie sie i bede uzywac tych znacznikow smile.gif
Go to the top of the page
+Quote Post
matx132
post 14.09.2008, 20:06:08
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


nadal nie dostałem informacji od ciebie w czym problem jest??

ponieważ skrypt dziaął dobrze tzn sprawdza czy user isteniej czy podane haslo jets dobrze i jesli wszystko ok przenosi do main.php
Go to the top of the page
+Quote Post
yeszie
post 14.09.2008, 21:04:26
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


problem jest taki ze skrypt nie działa tzn nie przenosi do main.php
mam komunikat Nieprawidłowa nazwa użytkownika lub hasło
w pierwszym polu wpisuje admin, w drugim 1234

baza była robiona tak:
  1. <?php
  2. $TabelaUzytkownikow="create table Users
  3. ( id int auto_increment primary key,
  4.  Nazwisko char(40),
  5.  Imie char(40),
  6.  Haslo varchar(32),
  7.  uzytkownik varchar(50))";
  8.  
  9. potem
  10. $WpiszUsera = "insert into Users values ('1', 'Kowalski', 'Marek', '81dc9bdb52d04dc20036dbd8313ed055','admin')";
  11. ?>


Skrypt bez problemu łączy się z bazą i wybiera właściwą bazę jako aktywną.

Na tej stronce gdzie skrypt jest opisany cos wcielo i oryginalnie jest

  1. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>""uzytkownik" type="text" id="uzytkownik""haslo" type="password" id="haslo" /></td>
  2.      </tr>
  3.    </table>
  4.  <input name="login" type="submit" id="login" value="login" />
  5.  </form>


Ja to troche zmienialem i w efekcie mam ten fragment tak
  1. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  2.  
  3. <input name="uzytkownik" type="text" id="uzytkownik" />
  4. <input name="haslo" type="password" id="haslo" />
  5.  
  6. <input name="login" type="submit" id="login" value="login" />
  7. </form>


Niestety nie działa. Moze cos jest nie tak z tym name="uzytkownik" id="uzytkownik" oraz name="haslo"?..
Go to the top of the page
+Quote Post
matx132
post 14.09.2008, 21:11:03
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


zauwaz w bazie masz Hasło
a w php select masz haslo:)

jedynie w tym widzę bład
Go to the top of the page
+Quote Post
yeszie
post 15.09.2008, 08:40:58
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


zmienilem w bazie danych kolumne haslo i w skypcie wszystkie "hasla" sa z malej i ciagle nie autoryzuje.. szczerze mowiac myslalem ze wielkosc znakow nie ma wplywu...
Go to the top of the page
+Quote Post
drPayton
post 15.09.2008, 10:33:37
Post #8





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. if(@mysql_num_rows($rezultat)){
  3.  session_register("uzytkownik");
  4.   header("locatio:main.php");
  5. ?>


1. Literówka w header ('Locatio' zamiast 'Location')
2. mysql_num_rows zwraca liczbę pobranych rekordów, zatem logiczniej byłoby:
  1. <?php
  2. if(@mysql_num_rows($rezultat) == 1)
  3. ?>



ADDED:
Twój kod działa poprawnie, zauważyłem natomiast, że zmieniłeś nazwę tabeli z userami z 'logowanie' na 'users' w skrypcie. Czy faktycznie tak nazywa się Twoja tabela w bazie?

Ten post edytował drPayton 15.09.2008, 10:47:30
Go to the top of the page
+Quote Post
kazag
post 15.09.2008, 10:56:03
Post #9





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


czy raz nie jest users(skrypt) a raz Users(w BD)?

Ten post edytował kazag 15.09.2008, 10:56:49


--------------------
Okoczia - jedyne w Polsce wirtualne państwo indiańskie.
kazag.net - i coś o mnie.
Go to the top of the page
+Quote Post
yeszie
post 15.09.2008, 17:11:44
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


Kwestia location faktycznie bylo cos nie tak - obecnie juz mam dobrze.

  1. <?php
  2. if(@mysql_num_rows($rezultat) == 1)
  3. ?>
dzieki - tak poprawilem

odnosnie users i Users tak było - poprawilem wszystko leci z malej..

Zmienilem nazwe czyli z pierwotnego logowanie na users a kolumna jest ta sama czyli uzytkownik

po tych poprawkach mam taki komunikat

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in /sciezka/main.php on line 17

a wiec jest duzo lepiej bo juz przechodzi autoryzacje..

w main wywala na tej linijce

  1. <? echo $_SESSION['uzytkownik'"index.php"] ?>


a całość main wyglata tak

  1. <?
  2.  
  3.  if(!session_is_registered("uzytkownik")){ //
  4.  header("locatio:index.php"); // Przekierowanie do index.php
  5. }
  6. ?>
  7.  
  8. <head>
  9.  
  10. <title>Dokument</title>
  11. </head>
  12.    <body>
  13.  
  14. <p>Witaj
  15.  
  16. <? echo $_SESSION['uzytkownik'"index.php"] ?>
  17. Wyloguj</a></p>
  18. </body>
  19. </html>
Go to the top of the page
+Quote Post
matx132
post 15.09.2008, 17:27:13
Post #11





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


Kod
$_SESSION['uzytkownik'"index.php"]


zamien na

Kod
$_SESSION['uzytkownik']
Go to the top of the page
+Quote Post
yeszie
post 15.09.2008, 17:40:35
Post #12





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


super! dzieki, teraz działa idelanie
mam jeszcze odnosnie kwestii logowania 2 watpliwosci
mam w main.php Wyloguj ktore nic nie robi czy musze to podwiązać np w ten sposob ze podłącze go do
funkcji zakonczenia sesji session_destroy();? czli np <a href="<? session_destroy(); ?>"Wyloguj</a>?

potrzebuje tez kodowac hasla do md5 wiec jakbym zrobil formularz do dodawania usera to musze uzyc funkcji
$md5_haslo?
Go to the top of the page
+Quote Post
drPayton
post 15.09.2008, 17:45:27
Post #13





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


1. Wylogowanie przykład:

gdzieś w html:
  1. <a href="index.php?action=wyloguj">wyloguj</a>


a w php:
  1. <?php
  2. if(isset($_GET['action']) && 'wyloguj' ==$_GET['action']) {
  3. }
  4. ?>


To oczywiście najprostszy przykład.

2. md5:

w php odbierasz formularz:
  1. <?php
  2. $haslo = md5($_POST['haslo']);
  3. ?>


i to wszystko winksmiley.jpg
Go to the top of the page
+Quote Post
yeszie
post 15.09.2008, 17:59:22
Post #14





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.09.2008

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


Bardzo dziekuje za wszystkie odpowiedzi i tak szybką i trafną pomoc smile.gif
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: 29.06.2025 - 20:58