Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] logowanie uzytkownika problem z formularzem
Forum PHP.pl > Forum > Przedszkole
-yeszie-
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>
matx132
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
yeszie
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
matx132
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
yeszie
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"?..
matx132
zauwaz w bazie masz Hasło
a w php select masz haslo:)

jedynie w tym widzę bład
yeszie
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...
drPayton
  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?
kazag
czy raz nie jest users(skrypt) a raz Users(w BD)?
yeszie
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>
matx132
Kod
$_SESSION['uzytkownik'"index.php"]


zamien na

Kod
$_SESSION['uzytkownik']
yeszie
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?
drPayton
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
yeszie
Bardzo dziekuje za wszystkie odpowiedzi i tak szybką i trafną pomoc smile.gif
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.