Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Problem z logowaniem.
Adis92
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

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


Witam. Mam prosty system logowania, tylko coś z nim jest nie tak ponieważ po zalogowaniu nie chce przenieść mnie do pliku docelowego. Nawet nie wywala mi żadnego błędu.
  1. <div id="login">
  2.        <img class="zaloguj" src="images/login/zaloguj.png" alt="">
  3.        
  4.        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  5.            <input type="text" name="login" value="Użytkownik..." title="Nazwa Użytkownika" onClick="if(this.value='Użytkownik...'){this.value='';} return true;" onBlur="if (this.value=='') {this.value='Użytkownik...';}"><br>
  6.            <input type="password" name="password" value="Hasło..." onClick="if(this.value='Hasło...'){this.value='';} return true;" onBlur="if (this.value=='') {this.value='Hasło...';}"><br>
  7.            <input type="submit" name="loguj" value="">
  8.            <input type="reset" value="">
  9.        </form>
  10.        
  11.        <?php
  12.        
  13.        ob_start();
  14.        session_start();
  15.  
  16.        $login = mysql_escape_string($_POST['loguj']);
  17.        
  18.        if($login)
  19.        {
  20.            $username = mysql_escape_string($_POST['login']);
  21.            $haslo = mysql_escape_string($_POST['password']);
  22.            $password = md5($haslo);
  23.            
  24.                // Połączenie z bazą.
  25.                include("*******");
  26.    
  27.                $polacz = mysql_connect($host, $user, $password);
  28.  
  29.                if($polacz){
  30.                    $select = mysql_select_db($baza);
  31.                } else echo "Blad polaczenia!";
  32.            
  33.                if($select){
  34.                    $sql = mysql_query("SELECT * FROM login WHERE username='$username' AND password='$password'");
  35.                } else echo "Blad wyboru Bazy!";
  36.                
  37.                
  38.                    if(@mysql_num_rows($sql))
  39.                    {
  40.                        session_register("uzytkownik");
  41.                        header("Location: index.php");
  42.                        exit;
  43.                    }
  44.                    else echo "Nieprawidłowa nazwa użytkownika lub hasło.";
  45.        
  46.        }else echo "błąd logowania";
  47.        
  48.        ob_end_flush();
  49.        ?>
  50.        <img class="key" src="images/login/key.png" alt="">
  51.    </div>


Ten post edytował Adis92 22.07.2009, 21:42:39
Go to the top of the page
+Quote Post
Asmox
post
Post #2





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Jeżeli nie wywala żadnego błędu, znaczy że może w zmiennej $_POST['login'] nic nie ma. Bo nawet nie odpala bloku if($login). Nałóż instrukcje echo w niektórych miejscach aby sprawdzić do których momentów w tym skrypcie jest uzyskiwany dostęp (może błąd powinien się wyświetlić a się nie wyświetla, hę?)


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





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

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


dodałem echo do if($login) i wyświetla mi je. Tylko teraz zastanawiam się w czym jest problem.
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


polecam biblioteczkę http://pear.php.net/package/Auth


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
tomekpl
post
Post #5





Grupa: Zarejestrowani
Postów: 134
Pomógł: 5
Dołączył: 9.08.2008
Skąd: Szczecin

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


jak masz:
  1. <?php
  2. if(@mysql_num_rows($sql))
  3.                   {
  4.                       session_register("uzytkownik");
  5.                       header("Location: index.php");
  6.                       exit;
  7.                   }
  8. ?>

To małpa nie jest potrzebna i exit wywal smile.gif
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zwrócę Ci uwagę publicznie, bo sam do końca się nie nauczysz, to już któryś raz z rzędu i innych wprowadzasz w błąd: session_register" title="Zobacz w manualu PHP" target="_manual jest już odradzane.

Chcesz być lekarzem po niepełnym kursie pierwszej pomocy?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Asmox
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Cytat(Adis92 @ 22.07.2009, 22:41:46 ) *
dodałem echo do if($login) i wyświetla mi je. Tylko teraz zastanawiam się w czym jest problem.


Chyba wiem w czym problem.
Sprawdzanie if($polacz) to sprawdzenie, czy zmienna $polacz ma jakąś wartość, a nie czy poprawnie się połączyłeś. Funkcja is_resource" title="Zobacz w manualu PHP" target="_manual rozwiąże problem, ponieważ sprawdza, czy zmienną można się połączyć (gdzieś, na przykład do db). Zrób tak:
  1. <?php
  2. $db_link = mysql_connect($host, $login, $pass);
  3. mysql_select_db($name, $db_link);
  4. if(!is_resource($db_link)) {
  5. die("Połączenie z bazą danych nie udało się.")
  6. }
  7. ?>


Ten post edytował Asmox 23.07.2009, 12:29:30


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





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




@Asmox lektura obowiazkowa dla Ciebie:
http://pl.php.net/manual/pl/function.mysql-connect.php
Cytat
Zwraca identyfikator połączenia MySQL w przypadku sukcesu, lub FALSE w przypadku porażki.


ps: i skadżes wytrzasnal is_reference() ? Jak juz dajesz linka to spojrz chociac czy tam cos jest winksmiley.jpg


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

"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
Asmox
post
Post #9





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


OOPS, przepraszam. Chodziło mi o is_resource (już poprawiłem). Poza tym wiem o mysql, ale myślę, że sposób podłączenia do bazy autora nie jest najlepszy.


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





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




Cytat
Poza tym wiem o mysql, ale myślę, że sposób podłączenia do bazy autora nie jest najlepszy
Czemu? Czy dasz is_resource, czy uzyjesz sprawdzenia logicznego jakie tu mialo miejsce - wyjdzie na to samo.
Zmierzam do tego ze twoj post wbrew temu co napisales
Cytat
Chyba wiem w czym problem.
W zaden sposob nie rozwiązuje problemu smile.gif


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

"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

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: 20.08.2025 - 05:57