Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z logowanie
kamilkomo
post 11.10.2010, 16:11:20
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


Witam

Mam problem ze zrobieniem poprawnego systemuu logowania, niestety nie wyskakuje zaden blad, po kliknieciu na submit="loguj" w pliku index.php skrypt przenosi mnie do pliku logusr.php a nie do main.php tak jak jest ustawione w kodzie php nie ma zadnego komunikatu tj, czy jestem zalogowany czy tez nie. ponizej przedstawie kod


formularz w pliku index.php
Kod
    <form id="form1" name="form1" method="post" action="logusr.php">
    <b>Login:</b> <input type='text' name='login' id='login' size='15' />
    <b>Haslo:</b> <input type='password' name='haslo'id='haslo' size='15' />
    <input name="login" type="submit" id="login" value="login" />
  </form>


kod w pliku logusr.php na samej gurze tego pliku mam jeszcze session_start();

Kod
<div id="LOGUJ">
<?php

$login=$_POST[‘login’];
if($login) {


  $login=$_POST[‘login’];
  $md5_haslo=md5($_POST[‘haslo’]);


  $host="*****************"; // Nazwa hosta.
  $db_user="*********"; // Nazwa użytkownika - MySQL.
  $db_password="*******"; // Hasło do bazy.
  $database="*********"; // Nazwa bazy.
    mysql_connect($host,$db_user,$db_password);
    mysql_select_db($database);
        
// Sprawdzenie nazwy użtkownika i hasła.
  $rezultat=mysql_query("select login,haslo FROM users WHERE login=’$login’ AND haslo=’$md5_haslo’");
    if(mysql_num_rows($rezultat)){
        
   session_register("uzytkownik"); // Zapamiętuje zmienną sesji
    header("location:main.php"); // Przekierowanie do strony main.php
  exit;
  }else {
  $message="Nieprawidłowa nazwa użytkownika lub hasło";
  }
}
?>
</div>


Poprosze o jakas pomoc
Go to the top of the page
+Quote Post
nospor
post 11.10.2010, 19:35:51
Post #2





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




Nie: $_POST[‘login’];
a: $_POST['login'];
Patrz jakiś ciapków używasz.
Analogicznie reszta

ps: 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
kamilkomo
post 12.10.2010, 09:15:52
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


niestety zmiana ciapkow nie pomogla z byt wiele, czy wpisze poprawne haslo czy tez nie to i tak wyskakuje napis ze jestem zalogowany a i nie przenosi mnie do strony main.php tylko zostaje na logusr.php? prosze o pomoc
Go to the top of the page
+Quote Post
nospor
post 12.10.2010, 09:22:27
Post #4





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




nie:login=’$login’ AND haslo=’$md5_haslo’
a: login='$login' AND haslo='$md5_haslo'


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

"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
hind
post 12.10.2010, 09:25:32
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


a najlepuiej jeszcze po mysql_query() dodać or die(mysql_error()) (w celu sprawdzenia czy są błedy)
i mysql_real_Escape_string($login) (chyba że masz włączone magic_quotes to w tedy jest to nie potrzebne)
  1. $rezultat=mysql_query("select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());


Ten post edytował hind 12.10.2010, 09:28:30
Go to the top of the page
+Quote Post
kamilkomo
post 12.10.2010, 12:25:04
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


niestety ale nic to nie pomoglo , wprowadzilem wszystkie poprawki jakie podaliscie, ale niestety dalej nic. Czy podam haslo i login ktory sie znajduje w bazie czy tesz nie to i tam mam komunikat ze jestem zalogowany a i nie przenosi mnie do strony main.php. kod po poprawkach ponizej, jesli ktos ma jakies pomysly bede wdzieczny

Kod
<div id="LOGIN">
<?php

$login=$_POST['login'];
$haslo=$_POST['haslo'];
if($login) {
  // W momencie kliknięcia w przycisk formularza
  $login=$_POST['login'];
  $haslo=$_POST['haslo'];
  // Koduje hasło funkcja md5().

// Połaczenie z baza.
  $host="************"; // Nazwa hosta.
  $db_user="************"; // Nazwa użytkownika - MySQL.
  $db_password="************"; // Hasło do bazy.
  $database="************"; // Nazwa bazy.
    mysql_connect($host,$db_user,$db_password);
    mysql_select_db($database);
        
// Sprawdzenie nazwy użtkownika i hasła.
      $rezultat=mysql_query("select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($rezultat)){
        print "jestes zalogowany";
   session_register("uzytkownik"); // Zapamiętuje zmienna sesji
    header("location:main.php"); // Przekierowanie do strony main.php
  exit;
  }else {
  $message="Nieprawidłowa nazwa użytkownika lub hasło";
  }
}
?>

</div>
Go to the top of the page
+Quote Post
hind
post 12.10.2010, 12:36:13
Post #7





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


nie przeniesie cie bo wcześniej wyświetlasz że jesteś zalogowany (header, set_cookie, session_start nie lubią gdy przed ich wywołaniem coś się wyświetla i wtedy plują błedami)
na początek dodaj ob_start() , a tak w ogóle to ustaw error_reporting na E_ALL ^ E_NOTICE ;
Go to the top of the page
+Quote Post
kamilkomo
post 12.10.2010, 12:47:09
Post #8





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


niestety dalej nic, moze mogl bys mi napisac jak to powinno wygladac bo juz zglupialem
Go to the top of the page
+Quote Post
nospor
post 12.10.2010, 13:11:05
Post #9





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




Zastosuj się do podanych wszystkich tu porad:
Temat: Jak poprawnie zada pytanie
a może zobaczysz dodatkowe bledy/informacje które ułatwią Tobie lub nam analize problemu


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

"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
kamilkomo
post 12.10.2010, 13:25:26
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


zastosowalem sie do wszystkich porad i niesttety dalej nic, wywalilem linijke ktora wyswietla napis ze jestes zalogowany i dalej nie przenosi mnie do main.php w ponizszym kodzie przedstawiam wszystkie naniesione poprawki, a co do raportu bledow php to czekam na odpowiedz od admistratorow serweru

i oczywiscie na samej gorze strony dodalem:

<?php
ob_start();
session_start();
?>

Kod
<div id="LOGIN">
<?php
    $login=$_POST['login'];
    if($login) {
    
  $login=$_POST['login'];
  $md5_haslo=md5($_POST['haslo']);
    
      // Poł?czenie z baz?.
  $host="*"; // Nazwa hosta.
  $db_user="*"; // Nazwa użytkownika - MySQL.
  $db_password="*"; // Hasło do bazy.
  $database=*"; // Nazwa bazy.
    mysql_connect($host,$db_user,$db_password);
    mysql_select_db($database);

        
// Sprawdzenie nazwy użtkownika i hasła.
$rezultat=mysql_query("select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());

    if(mysql_num_rows($rezultat)){
        
    session_register("uzytkownik"); // Zapamiętuje zmienną sesji
    header("location:main.php"); // Przekierowanie do strony main.php
  exit;
  }else {
  $message="Nieprawidłowa nazwa użytkownika lub hasło";
  }
}
?>
</div>


display_errors wlaczone i niestety nic nie wyswietla, zero bledu.

Ten post edytował kamilkomo 12.10.2010, 13:45:13
Go to the top of the page
+Quote Post
hind
post 12.10.2010, 14:06:18
Post #11





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


a jak masz ustawiony error_reporting ?
Bo tak to wszystko wydaje się być dobrze


Ten post edytował hind 12.10.2010, 14:13:10
Go to the top of the page
+Quote Post
kamilkomo
post 12.10.2010, 14:41:30
Post #12





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


dostep do tej funkcji mam jedynie przez panel administracyjny serwera , w ktorym to wlaczam lub wylaczam error_reporting.
Go to the top of the page
+Quote Post
hind
post 12.10.2010, 14:47:17
Post #13





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


to jesze pod ob_start() dodaj error_reporting(E_ALL);
jak to nie pomoże (nie wyświetli błędów) to już nie wiem dla czego header location nie działa
Go to the top of the page
+Quote Post
kamilkomo
post 12.10.2010, 15:00:18
Post #14





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


dodalem i bledow brak nic nie wyswietla, tzn wyswietlil mi jeden ale to zwiazany z wyswietlaniem danych z tabeli, wpisalem inna nazwe tabeli a inna nazwa byla w bazie, poprawilem blad i teraz juz zadnego nie wyswietla.

Ale dla czego tez nie wyswietla komunikmatu o blednym logowaniu jesli podam nie istniejace dane takie jak login i haslo?
Czy podam dobre czy zle dane logowania dzieje sie dokladnie to samo, przechodzi do strony logusr.php i nic po za tym, zero komunikatu o zlym logowaniu a w przypadku wpisania poprawnego loginu nie przenosi mnie do main.php

Ten post edytował kamilkomo 12.10.2010, 15:05:21
Go to the top of the page
+Quote Post
hind
post 12.10.2010, 15:30:16
Post #15





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


  1. $rezultat=mysql_query($q = "select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());
  2. die($q);

i to co wyświetli sprawdź w phpMyAdmin co wybierze
dodatkowo możesz jeszcze sprawdzić
  1. var_dump($_POST);

żeby zobaczyć co w ogóle przyltauje z browsera
Go to the top of the page
+Quote Post
kamilkomo
post 12.10.2010, 15:56:28
Post #16





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


nie bardyo royumie jak mam sprawdyic w phpMzadmin to co wzbierye_

po wpisaniu tych linijek kody i po wyslaniu danych po przez formularz pojawia sie pusta strona i zero bledow
Go to the top of the page
+Quote Post
minolone
post 12.10.2010, 19:32:51
Post #17





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Sprawdź to, powinno działać.
  1. <?php
  2.  
  3. if(!empty($_POST['login']) && !empty($_POST['haslo'])) {
  4.  
  5. $login=$_POST['login'];
  6. $md5_haslo=md5($_POST['haslo']);
  7.  
  8. // Poł?czenie z baz?.
  9. $host = '*'; // Nazwa hosta.
  10. $db_user = '*'; // Nazwa użytkownika - MySQL.
  11. $db_password = '*'; // Hasło do bazy.
  12. $database = '*'; // Nazwa bazy.
  13. mysql_connect($host,$db_user,$db_password) or die(mysql_error());
  14. mysql_select_db($database) or die (mysql_error());
  15.  
  16. // Sprawdzenie nazwy użtkownika i hasła.
  17. $rezultat=mysql_query('SELECT login, haslo FROM users WHERE login="'.mysql_real_escape_string($login).'" AND haslo="'.$md5_haslo.'" LIMIT 1') or die(mysql_error());
  18.  
  19. if(mysql_num_rows($rezultat)){
  20. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
  21. header("location:main.php"); // Przekierowanie do strony main.php
  22. }else {
  23. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  24. }
  25. } else {
  26. echo 'Nie podano nazwy uzytkownika lub hasła!';
  27. }
  28. ?>


Ten post edytował minolone 12.10.2010, 19:38:32
Go to the top of the page
+Quote Post
kamilkomo
post 13.10.2010, 12:24:01
Post #18





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


niestety ale nie dziala nadal reakcja taka sama jaka zostala opisana wyzej ani nie przenosi do main.php ani tez nic nie wyswietla , kurde o co tu w tym chodzi? zwarjuje.......
Go to the top of the page
+Quote Post
minolone
post 13.10.2010, 12:59:16
Post #19





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Zamień to
  1. if(mysql_num_rows($rezultat)){
  2. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
  3. header("location:main.php"); // Przekierowanie do strony main.php
  4. }else {
  5. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  6. }
  7. } else {
  8. echo 'Nie podano nazwy uzytkownika lub hasła!';
  9. }

na to i zobacz jaki bedzie komunikat,
  1. if(mysql_num_rows($rezultat)){
  2. echo 'Wszystko OK';
  3. }else {
  4. echo 'Nieprawidłowa nazwa użytkownika lub hasło';
  5. }
  6. } else {
  7. echo 'Nie podano nazwy uzytkownika lub hasła!';
  8. }
Go to the top of the page
+Quote Post
kamilkomo
post 13.10.2010, 21:38:53
Post #20





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 13.04.2010

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


po wpisaniu poprawnych danych > Nieprawidłowa nazwa użytkownika lub hasło

Mam taka hipoteze, w bazie danych mam hasla w czystej postaci , nie zaszyfrowane w md5, a wysylam haslo zaszyfrowane moze to jest przyczyna nie poprawnego logowania

Ten post edytował kamilkomo 14.10.2010, 13:57:15
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: 12.06.2025 - 14:28